Montar o volume " iSCSI " no disco " Red Hat Enterprise Linux 9"

Saiba como montar um volume Block Storage for Classic no RHEL 9 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 virtual com o sistema operacional Red Hat Enterprise Linux® 9. 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

  1. Certifique-se de que o host que irá acessar o volume Block Storage for Classic esteja autorizado. Para obter mais informações, consulte Autorizando o host no consoleAutorizandoo host a partir do CLIAutorizando o host com o Terraform.

  2. É necessária uma conexão VPN ativa para acessar a rede privada do site IBM Cloud e interagir com vários serviços.

  3. Estabeleça uma conexão SSH com o seu servidor. O endereço IP, o nome de usuário e a senha podem ser encontrados no console. No site menu Ícone do menu, clique em Infraestrutura Ícone de VPC > Infraestrutura clássica > Devices. Em seguida, localize seu servidor na lista e clique em seu nome para exibir seus detalhes.

Se vários hosts montarem o mesmo volume Block Storage for Classic sem serem gerenciados de forma cooperativa, seus dados correm o risco de serem corrompidos. A corrupção do volume pode ocorrer se forem feitas alterações no volume por vários hosts ao mesmo tempo. Você precisa de um sistema de arquivos de disco compartilhado e 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.

Atualize o sistema operacional e instale os utilitários iSCSI e multipath

Certifique-se de que seu sistema esteja atualizado e inclua os pacotes iscsi-initiator-utils e device-mapper-multipath. Use os comandos a seguir para instalar os pacotes.

  1. Atualize o sistema operacional.

    sudo dnf update
    
  2. Instalar o utilitário multipath

    sudo dnf -y install device-mapper-multipath
    

    Quando o pacote estiver instalado, digite o comando mpathconf --enable --user_friendly_names n para ativá-lo.

  3. Instalar o utilitário ISCSI

    sudo dnf -y install iscsi-initiator-utils
    

    Quando o pacote estiver instalado, inicie-o com o comando systemctl start iscsid.

Atualizar os arquivos de configuração do iSCSI

  1. Atualize o arquivo /etc/iscsi/initiatorname.iscsi com o IQN do console IBM Cloud®.

    1. O exemplo a seguir mostra como verificar o nome do iniciador atual.
    [root@vsi4classic ~]# cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.1994-05.com.redhat:7acdadcdc20
    
    1. Abra o arquivo em um editor de texto:
    vi /etc/iscsi/initiatorname.iscsi
    
    1. Digite o IQN no seguinte formato InitiatorName=<value-from-the-Portal>, como você pode ver no exemplo a seguir. Substitua o valor IQN pelo seu próprio valor.
    InitiatorName=iqn.2025-11.com.ibm:sl02su1414935-v154455886
    
    1. Salve o arquivo (:w) e saia (:x).
  2. Descomente e atualize as seguintes entradas 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>
    

    Não altere as demais configurações do CHAP. O armazenamento do protocolo IBM Cloud® (IPv4) utiliza apenas autenticação unidirecional. Não ative o CHAP Mútuo.

  3. Reinicie o serviço iscsid.

    systemctl restart iscsid
    
  4. Valide se a configuração está correta executando a descoberta na 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 TARGET IP
    

    Se as informações do endereço IP e os detalhes de acesso forem exibidos, a detecção foi bem-sucedida.

    [root@vsi4classic ~]# iscsiadm -m discovery -t sendtargets -p 161.26.99.113
     161.26.99.113:3260,1034 iqn.1992-08.com.netapp:stfdal1006
     161.26.99.110:3260,1030 iqn.1992-08.com.netapp:stfdal1006
    

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``. Para obter mais informações sobre o utilitário mpathconf, consulte a página de manual mpathconf(8).

  1. Se ainda não tiver feito isso, digite o comando mpathconf com a opção --enable.

    mpathconf --enable --user_friendly_names n
    
  2. Edite o arquivo /etc/multipath.conf com nano, vi, ou outro editor de sua preferência.

    sudo vi /etc/multipath.conf
    
  3. Adicione a seguinte configuração mínima.

    defaults {
    user_friendly_names no
    find_multipaths on
    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 padrões iniciais 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.

  4. Salve o arquivo de configuração e saia do editor.

  5. Emita o seguinte comando.

    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.

Descobrir o dispositivo de armazenamento e o login

O utilitário iscsiadm é uma ferramenta de linha de comando utilizada para a detecção e o login em destinos do tipo “ iSCSI ”, além do acesso e gerenciamento do banco de dados do open-iscsi. Para obter mais informações, consulte a página de manual do iscsiadm(8). 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.

    iscsiadm -m discovery -t sendtargets -p TARGET IP
    

    Se as informações do endereço IP e os detalhes de acesso forem exibidos, a detecção foi bem-sucedida.

  2. Efetue login na matriz iSCSI.

    iscsiadm -m node --login
    
    [root@vsi4classic ~]# iscsiadm -m node --login
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.110,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.113,3260] successful.
    

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.

    [root@vsi4classic ~]# multipath -l
    3600a0980383056716724514550666270 dm-0 NETAPP,LUN C-Mode
    size=20G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='round-robin 0' prio=0 status=active
    | `- 2:0:0:0 sda 8:0  active undef running
    `-+- policy='round-robin 0' prio=0 status=enabled
      `- 3:0:0:0 sdb 8:16 active undef running
    

    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.

    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    

    No exemplo, a string 3600a0980383056716724514550666270 é o WWID. 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. Para obter mais informações, consulte a página de manual do comando 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
    
    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    
    [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 65536 bytes
    
  2. Crie uma partição no disco. O exemplo a seguir mostra a criação da partição com valores padrão.

    [root@vsi4classic ~]# fdisk /dev/mapper/3600a0980383056716724514550666270
    
    Welcome to fdisk (util-linux 2.37.4).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x2aa2e16c.
    
    Command (m for help): n
    Partition type
      p   primary (0 primary, 0 extended, 4 free)
      e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-41943039, default 2048): 2048
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 41943039
    
    Created a new partition 1 of type 'Linux' and of size 20 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Invalid argument
    
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
    
  3. Crie um sistema de arquivos na nova partição.

    • A nova partição é listada com o disco, semelhante a XXXp1, seguida pelo tamanho, Tipo (83) e Linux®. Anote o nome da partição, pois você precisará dele na próxima etapa. (O XXXp1 representa o nome de partição).

      [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
      Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes
      I/O size (minimum/optimal): 4096 bytes / 65536 bytes
      Disklabel type: dos
      Disk identifier: 0x2aa2e16c
      
      Device                                           Boot Start      End  Sectors Size Id Type
      /dev/mapper/3600a0980383056716724514550666270p1        2048 41943039 41940992  20G 83 Linu
      
    • Crie o sistema de arquivos:

      mkfs.ext3 /dev/mapper/XXXp1
      
      [root@vsi4classic ~]# mkfs.ext3 /dev/mapper/3600a0980383056716724514550666270p1
      mke2fs 1.46.5 (30-Dec-2021)
      Discarding device blocks: done
      Creating filesystem with 5242624 4k blocks and 1310720 inodes
      Filesystem UUID: 09e7f833-32b7-4c7f-ab68-8c6083cb8a63
      Superblock backups stored on blocks:
          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
          4096000
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
      
  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
      
      [root@vsi4classic ~]# mkdir /PerfDisk
      [root@vsi4classic ~]# mount /dev/mapper/3600a0980383056716724514550666270p1 /PerfDisk
      [root@vsi4classic ~]# df -h
      Filesystem                                       Size  Used Avail Use% Mounted on
      devtmpfs                                         4.0M     0  4.0M   0% /dev
      tmpfs                                            469M     0  469M   0% /dev/shm
      tmpfs                                            188M   11M  177M   6% /run
      /dev/xvda2                                        24G  2.0G   21G   9% /
      /dev/xvda1                                       974M  320M  588M  36% /boot
      tmpfs                                             94M     0   94M   0% /run/user/0
      /dev/mapper/3600a0980383056716724514550666270p1   20G  156K   19G   1% /PerfDisk
      
  5. Para ativar a montagem automática na inicialização, adicione o novo sistema de arquivos ao arquivo /etc/fstab do sistema.

    • 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
    

    Para obter mais informações, consulte Uma introdução ao arquivo Linux /etc/fstab.

Criando um sistema de arquivos com parted

No Red Hat Enterprise Linux® 9, o parted vem pré-instalado. No entanto, se for 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.

    1. A menos que seja especificado o contrário, o utilitário parted utiliza sua unidade principal, que, na maioria dos casos, é a unidade /dev/sda . Alterne para o disco que você deseja particionar usando o comando select. Substitua XXX pelo seu novo nome do dispositivo.

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

      print
      
    3. Criar uma tabela de partição.

      mklabel gpt
      
    4. 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, o utilitário utiliza o comando mkpart``. É possível fornecer outros parâmetros a ele, como primary ou logical, dependendo do tipo de partição que você deseja criar.

      mkpart
      

      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.

    5. 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 o 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 montagem automática na inicialização, adicione o novo sistema de arquivos ao 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
    

    Para obter mais informações, consulte Uma introdução ao arquivo Linux /etc/fstab.

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 o tutorial de Red Hat: Como gerenciar as permissões do Linux para usuários, grupos e outros.

Verificando a configuração do MPIO

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.

  • Para verificar se os caminhos múltiplos estão selecionando os dispositivos, liste a configuração atual. Se estiver configurado corretamente, existirá um único grupo para cada volume, com um número de caminhos igual ao número de sessões iSCSI.

    multipath -l
    
    root@server:~# multipath -l
    3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode
    size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=-1 status=active
    | `6:0:0:101 sdd 8:48 active ready running
    `-+- policy='round-robin 0' prio=-1 status=enabled
     `- 7:0:0:101 sde 8:64 active ready running
    

    A sequência de caracteres 3600a09803830304f3124457a45757067 no exemplo é o WWID exclusivo do volume. Cada volume é identificado por seu WWID exclusivo, que permanece válido enquanto o volume existir.

  • Confirme que todos os discos estão presentes. Em uma configuração correta, é possível esperar que dois discos sejam mostrados na saída com o mesmo identificador e uma listagem /dev/mapper do mesmo tamanho com o mesmo identificador. O dispositivo /dev/mapper é aquele que os caminhos múltiplos configuram.

    fdisk -l | grep Disk
    
    • Saída de exemplo de uma configuração correta.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    

    O ID universal é incluído no nome do dispositivo criado pelos caminhos múltiplos. Recomenda-se que o WWID seja usado pelo seu aplicativo.

    • Saída de exemplo de uma configuração incorreta. Não existe nenhum disco /dev/mapper.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    
  • Para confirmar se não há discos locais na lista de dispositivos multipath, exiba a configuração atual com o nível de detalhamento 3. A saída do comando a seguir exibe os dispositivos e também mostra quais foram incluídos na lista de bloqueios.

    multipath -l -v 3 | grep sd <date and time>
    
  • Se um volume for provisionado e anexado enquanto o segundo caminho estiver inativo, o host poderá ver um único caminho quando a varredura de descoberta for executada pela primeira vez. Se você encontrar esse fenômeno raro, verifique a página de status IBM Cloud® para ver se um evento que afeta a capacidade do host de acessar o armazenamento está em andamento. Se nenhum evento for relatado, execute a varredura de descoberta novamente para garantir que todos os caminhos sejam detectados corretamente. Se um evento estiver em andamento, o armazenamento poderá ser anexado com um único caminho. No entanto, é essencial que os caminhos sejam varridos novamente após a conclusão do evento. Se nenhum dos caminhos for identificado após a nova verificação, abra um ticket de suporte para que o problema possa ser devidamente investigado.

Desmontando volumes do Block Storage for Classic

  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>
    
    Para obter mais informações, consulte o manual do iscsiadm.