Montar o volume " iSCSI " no disco " CloudLinux 8"

Saiba como montar um volume Block Storage for Classic em CloudLinux 8 com E/S multipath para acesso redundante e de alto desempenho ao armazenamento.

Siga o tutorial para montar um volume IBM Cloud® Block Storage for Classic em um servidor com o sistema operacional CloudLinux 8. Você criará duas conexões de uma interface de rede do seu host para dois endereços IP de destino da matriz de armazenamento.

Se você estiver usando outro sistema operacional Linux®, consulte a documentação da sua distribuição específica e certifique-se de que o multipath seja compatível com o Asymmetric Logical Unit Access (ALUA) para priorização de caminhos.

Antes de Iniciar

Se vários hosts montarem o mesmo volume Block Storage for Classic sem serem gerenciados de forma cooperativa, seus dados correm risco de distorção. A corrupção de volume pode ocorrer se mudanças forem feitas no volume por vários hosts ao mesmo tempo. Você precisa de um sistema de arquivos de disco compartilhado com reconhecimento de cluster para evitar a perda de dados, como o Microsoft Cluster Shared Volumes ( CSV ), Red Hat Global File System ( GFS2 ), VMware® VMFS e outros. Para obter mais informações, consulte a documentação do seu sistema operacional.

É melhor executar o tráfego de armazenamento em uma VLAN, que efetua bypass do firewall. A execução do tráfego de armazenamento por meio de firewalls de software aumenta a latência e afeta negativamente o desempenho do armazenamento. Para obter mais informações sobre o roteamento do tráfego de armazenamento para a sua própria interface de VLAN, consulte as Perguntas mais frequentes.

Antes de começar, certifique-se de que o host que irá acessar o volume Block Storage for Classic esteja autorizado. Para mais informações, veja Autorizando o host no console Autorizando o host da CLI Autorizando o host com Terraform.

Instalar os utilitários iSCSI e de caminhos múltiplos

Certifique-se de que seu sistema esteja atualizado e inclua os pacotes iscsi-initiator-utils e device-mapper-multipath.

  1. Use o comando a seguir para instalar os pacotes.

    dnf install iscsi-initiator-utils device-mapper-multipath
    
  2. Inicie os serviços.

    chkconfig multipathd on
    
    chkconfig iscsid on
    

Configurar os caminhos múltiplos

Você configura o DM Multipath com o utilitário mpathconf , que cria o arquivo de configuração do multipath /etc/multipath.conf``.

  • Se o arquivo /etc/multipath.conf existir, o utilitário mpathconf poderá editá-lo.
  • Se o arquivo /etc/multipath.conf não existir, o utilitário mpathconf criará o arquivo /etc/multipath.conf do início.
  1. Digite o comando mpathconf com a opção --enable .

    # mpathconf --enable --user_friendly_names n
    
  2. Edite o arquivo /etc/multipath.conf com a seguinte configuração mínima.

    defaults {
    user_friendly_names no
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    # All data in the following section must be specific to your system.
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "2 pg_init_retries 50"
    no_path_retry queue
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    

A seção de configurações padrão do arquivo de configuração configura o sistema de forma que os nomes dos dispositivos multipath tenham o formato /dev/mapper/mpath n, em que mpath n é o WWID (World Wide Identifier) do dispositivo.

  1. Salve o arquivo de configuração e saia do editor, se necessário.

  2. Execute o comando a seguir:

    # systemctl start multipathd.service
    

    Se for necessário editar o arquivo de configuração do multipath após ter iniciado o daemon do multipath, é preciso executar o comando systemctl reload multipathd.service para que as alterações entrem em vigor.

Atualizar o arquivo /etc/iscsi/initiatorname.iscsi

Atualize o arquivo /etc/iscsi/initiatorname.iscsi com o IQN do console IBM Cloud®. Insira o valor como lowercase.

InitiatorName=<value-from-the-Portal>

Configurar credenciais

Edite as seguintes configurações em /etc/iscsi/iscsid.conf usando o nome de usuário e a senha do console IBM Cloud®. Use letras maiúsculas para nomes CHAP (Challenge-Handshake Authentication Protocol).

node.session.auth.authmethod = CHAP
node.session.auth.username = <Username-value-from-Portal>
node.session.auth.password = <Password-value-from-Portal>
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <Username-value-from-Portal>
discovery.sendtargets.auth.password = <Password-value-from-Portal>

Mantenha as demais configurações do CHAP comentadas. O armazenamento do IBM Cloud&reg; utiliza apenas autenticação unidirecional. Não ative o CHAP Mútuo.

Descobrir o dispositivo de armazenamento e o login

O utilitário iscsiadm é uma ferramenta de linha de comando que auxilia na detecção e no login em destinos do tipo “ iSCSI ”, além de permitir o acesso e o gerenciamento do banco de dados do open-iscsi. Nessa etapa, descubra o dispositivo usando o endereço IP de destino obtido do console da IBM Cloud®.

  1. Execute a descoberta com relação à matriz iSCSI.

    Block Storage for Classic requer a descoberta dinâmica de destinos que utilize o método SendTargets. Não utilize a configuração estática de nós, pois ela não é escalável e pode causar problemas de conectividade quando são feitas alterações no armazenamento (como autorizar ou desautorizar hosts para LUNs). A descoberta dinâmica garante que seu host detecte automaticamente qualquer alteração nos portais de destino.

    iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
    

    Se as informações de IP e detalhes de acesso forem exibidas, a descoberta será bem-sucedida.

  2. Efetue login na matriz iSCSI.

    iscsiadm -m node --login
    

Verificando a configuração

  1. Valide se a sessão iSCSI foi estabelecida.

    iscsiadm -m session -o show
    
  2. Valide se existem caminhos múltiplos.

    multipath -l
    

    Esse comando relata os caminhos. Se estiver configurado corretamente, cada volume terá um único grupo, com um número de caminhos igual ao número de sessões do iSCSI. É possível conectar um volume usando um único caminho, mas é importante que as conexões sejam estabelecidas em ambos os caminhos para evitar interrupções no serviço.

    Se o MPIO não estiver configurado corretamente, o seu dispositivo de armazenamento poderá se desconectar e aparecer off-line quando uma indisponibilidade de rede ocorrer ou quando as equipes do IBM Cloud® executarem a manutenção. O MPIO oferece um nível adicional de conectividade durante esses eventos e mantém uma sessão estabelecida com o volume, com operações ativas de leitura e gravação.

  3. Liste as tabelas de partição do dispositivo conectado.

    fdisk -l | grep /dev/mapper
    

    Por padrão, o dispositivo de armazenamento se conecta ao /dev/mapper/<wwid>. O ID universal é persistente enquanto o volume existe. O comando relata algo semelhante ao exemplo a seguir.

    Disk /dev/mapper/3600a0980383030523424457a4a695266: 73.0 GB, 73023881216 bytes
    

    No exemplo, a sequência de caracteres 3600a0980383030523424457a4a695266 é o WWID. O seu aplicativo deve usar o WWID. Também é possível atribuir nomes mais fáceis de ler usando as palavras-chave "user_friendly_names" ou "alias" em multipath.conf.

    O volume agora está montado e acessível no host. É possível criar um sistema de arquivos em seguida.

Criando um sistema de arquivos (opcional)

Siga essas etapas para criar um sistema de arquivos no volume recém-montado. Um sistema de arquivos é necessário para que a maioria dos aplicativos use o volume. Use fdisk para unidades com menos de 2 TB e parted para um disco com mais de 2 TB.

Criando um sistema de arquivos com fdisk

  1. Obtenha o nome do disco.

    fdisk -l | grep /dev/mapper
    

    O nome do disco retornado é semelhante a /dev/mapper/XXX.

  2. Crie uma partição no disco.

    fdisk /dev/mapper/XXX
    

    O XXX representa o nome do disco que é retornado na Etapa 1.

    Role a página para baixo para ver os códigos de comando listados na tabela de comandos do fdisk .

  3. Crie um sistema de arquivos na nova partição.

    fdisk –l /dev/mapper/XXX
    
    • A nova partição aparece listada junto com o disco, semelhante a “ XXXp1 ”, seguida do tamanho, do tipo (83) e de “ Linux® ”.
    • Anote o nome da partição, ele será necessário na próxima etapa. (O XXXp1 representa o nome de partição).
    • Crie o sistema de arquivos:
    mkfs.ext3 /dev/mapper/XXXp1
    
  4. Crie um ponto de montagem para o sistema de arquivos e monte-o.

    • Crie um nome de partição PerfDisk ou o local em que você deseja montar o sistema de arquivos.
    mkdir /PerfDisk
    
    • Monte o armazenamento com o nome de partição.
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • Verifique se você vê seu novo sistema de arquivos listado.
    df -h
    
  5. Inclua o novo sistema de arquivos no arquivo /etc/fstab do sistema para ativar a montagem automática na inicialização.

    • Anexe a linha a seguir ao término de /etc/fstab (com o nome da partição da Etapa 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

Criando um sistema de arquivos com parted

Em muitas distribuições do Linux®, o parted já vem pré-instalado. No entanto, se necessário, você pode instalá-lo executando o seguinte comando.

# dnf install parted

Para criar um sistema de arquivos com parted, siga estas etapas.

  1. Inicie o shell interativo do parted .

    parted
    
  2. Crie uma partição no disco.

    • A menos que seja especificado de outra forma, o parted usará sua unidade primária A unidade primária é /dev/sda na maioria dos casos.. Alterne para o disco que você deseja particionar usando o comando select. Substitua XXX pelo seu novo nome do dispositivo.

      select /dev/mapper/XXX
      
    • Execute o comando print para confirmar se você está no disco correto.

      print
      
    • Criar uma tabela de partição.

      mklabel gpt
      
    • Parted pode ser usado para criar partições de disco primárias e lógicas; as etapas envolvidas são as mesmas. Para criar uma partição, parted usa mkpart. É possível fornecer outros parâmetros a ele, como primary ou logical, dependendo do tipo de partição que você deseja criar. As unidades listadas padrão para megabytes (MB). Para criar uma partição de 10 GB, inicie em 1 e termine em 10000. Também é possível mudar as unidades de dimensionamento para terabytes inserindo unit TB se desejar.

      mkpart
      
    • Encerre parted com quit.

      quit
      
  3. Crie um sistema de arquivos na nova partição.

    mkfs.ext3 /dev/mapper/XXXp1
    

    É importante selecionar o disco e a partição corretos ao executar este comando. Verifique o resultado por imprimir a tabela de partição. Na coluna do sistema de arquivos, você pode ver “ ext3 ”.

  4. Crie um ponto de montagem para o sistema de arquivos e monte-o.

    • Crie um nome de partição PerfDisk ou o local em que você deseja montar o sistema de arquivos.
    mkdir /PerfDisk
    
    • Monte o armazenamento com o nome de partição.
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • Verifique se você vê seu novo sistema de arquivos listado.
    df -h
    
  5. Para ativar a inicialização de montagem automática, inclua o novo sistema de arquivos no arquivo /etc/fstab do sistema.

    • Anexe a linha a seguir ao término de /etc/fstab (usando o nome da partição da Etapa 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

Gerenciamento de permissões de usuário para o conteúdo do volume montado

Como administrador do sistema, você pode gerenciar o acesso aos dados no volume montado. Depois que o sistema de arquivos estiver pronto, você poderá refinar o controle de acesso usando os comandos chown e chmod para atribuir permissões de leitura, gravação e execução a usuários e grupos individuais. Para obter mais informações, consulte a documentação do produto CloudLinux.

Desmontando volumes do Block Storage for Classic

Quando você não precisar mais do volume, desmonte-o antes de excluí-lo.

  1. Desmonte o sistema de arquivos.
    umount /dev/mapper/XXXp1 /PerfDisk
    
  2. Se você não tiver nenhum outro volume nesse portal de destino, será possível efetuar logout do destino.
    iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. Se você não tiver nenhum outro volume nesse portal de destino, exclua o registro do portal de destino para evitar futuras tentativas de login.
    iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>