Monte o volume iSCSI no sistema operacional Ubuntu

Saiba como montar um volume Block Storage for Classic em Ubuntu 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 um sistema operacional Ubuntu. Você criará duas conexões de uma interface de rede do seu host para dois endereços IP de destino da matriz de armazenamento.

Para obter mais informações sobre como o serviço de Iniciador de Serviços de Rede ( iSCSI ) funciona no sistema operacional Windows Server 2008 R2 ( Ubuntu ), consulte a documentação do iSCSI Initiator(ou Cliente). 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. Crie um servidor virtual para o Classic no console, a partir da CLI, com a API ou o Terraform.

  2. Solicite um volume de armazenamento em bloco no mesmo data center.

  3. Certifique-se de que o host esteja autorizado a acessar o volume Block Storage for Classic. Para mais informações, veja Autorizando o host no console Autorizando o host da CLI Autorizando o host com Terraform. Após a conclusão da autorização, anote o nome de usuário, a senha e as informações do IQN do host.

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 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.

Antes de começar a configurar o site iSCSI,, certifique-se de que as interfaces de rede estejam definidas e configuradas corretamente para que o pacote open-iscsi funcione corretamente, especialmente durante a inicialização. Nas versões mais recentes do Ubuntu, a principal ferramenta para definir informações de endereço de rede é o Netplan. Ele usa um arquivo de configuração YAML para definir as configurações de rede, substituindo métodos antigos como /etc/network/interfaces. O Netplan pode ser configurado com a linha de comando ou por meio do site NetworkManager em ambientes de desktop.

É 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.

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

Certifique-se de que seu sistema esteja atualizado e inclua os pacotes open-iscsi e multipath-tools. Use os comandos a seguir para instalar os pacotes.

  • Atualize o sistema operacional:

    apt-get update
    
  • Instale o open-iscsi.

    sudo apt install open-iscsi
    

    Quando o pacote é instalado, ele cria os dois arquivos a seguir.

    • /etc/iscsi/iscsid.conf
    • /etc/iscsi/initiatorname.iscsi
  • Inicie os serviços:

    systemctl enable open-iscsi
    
    systemctl enable iscsid
    
  • Instale o multipath-tools.

    sudo apt install multipath-tools
    

Configurar ISCSI

Atualização do nome do iniciador

  1. Verifique se o arquivo /etc/iscsi/initiatorname.iscsi existe e examine seu conteúdo.

    cat /etc/iscsi/initiatorname.iscsi
    
    root@vsi4classicubuntu:~# cat /etc/iscsi/initiatorname.iscsi
    GenerateName=yes
    
  2. Usando um editor de texto, atualize o arquivo /etc/iscsi/initiatorname.iscsi com o IQN do console IBM Cloud®. Insira o valor no formato a seguir.

    InitiatorName=<IQN-value-from-the-portal>
    

Configurando credenciais

  1. Certifique-se de que o iscsid.conf arquivo existe verificando seu conteúdo.

    cat /etc/iscsi/iscsid.conf
    
  2. Usando o editor de texto, descomente e edite as seguintes entradas. Você pode encontrar o nome de usuário e a senha no console IBM Cloud®.

    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.

  3. Reinicie o serviço iscsi para que as mudanças entrem em vigor.

    systemctl restart iscsid.service
    

Para obter mais informações, consulte os manuais Ubuntu- iscsid e Ubuntu- systemctl.

Configurar os caminhos múltiplos

  1. Depois de instalar o utilitário multipath, você pode verificar o conteúdo padrão do arquivo multipath.conf.

    cat /etc/multipath.conf
    
  2. Modifique os valores padrão de /etc/multipath.conf com um editor de texto, substituindo-os pelo conteúdo do seguinte trecho.

    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 "3 queue_if_no_path pg_init_retries 50"
    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/mpathn, em que mpathn é o número WWID (World Wide Identifier) do dispositivo. Para obter mais informações, consulte os manuais Ubuntu- multipath.conf.

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

  4. Inicie o serviço de caminhos múltiplos.

    service multipath-tools start
    
    1. Ative os serviços necessários.

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

    Para obter mais informações sobre como usar o recurso Device Mapper Multipath no Windows 20 Ubuntu, consulte Introdução ao multipathing do Device Mapper.

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 os manuais Ubuntu- iscsiadm. Nesta etapa, descubra o dispositivo usando o endereço IP de destino que foi obtido no console 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.

    root@vsi4classicubuntu:~# iscsiadm -m discovery -t sendtargets -p 161.26.114.197
    161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304
    161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304
    
  2. Configure o login automático.

    sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic
    sudo iscsiadm -m node --op=update -n node.startup -v automatic
    
  3. Efetue login na matriz iSCSI.

    sudo iscsiadm -m node --login
    

Verificando a configuração

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

    iscsiadm -m session -o show
    
    root@vsi4classicubuntu:~# iscsiadm -m session -o show
    tcp: [3] 161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304 (non-flash)
    tcp: [4] 161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304 (non-flash)
    
  2. Valide se existem caminhos múltiplos.

    multipath -ll
    

    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@vsi4classicubuntu:~# multipath -ll
     3600a0980383056666424506a33426478 dm-0 NETAPP,LUN C-Mode
     size=500G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua'
     wp=rw
     |-+- policy='service-time 0' prio=50 status=active
     | `- 3:0:0:0 sdb 8:16 active ready running
     `-+- policy='service-time 0' prio=10 status=enabled
       `- 2:0:0:0 sda 8:0    active ready 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.

    No exemplo,3600a0980383056666424506a33426478 é o WWID que permanece válido enquanto o volume existir. Recomenda-se que seu aplicativo utilize 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.

  3. Verifique dmesg para certificar-se de que os novos discos sejam detectados.

    dmesg
    

Criando uma partição e um sistema de arquivos (opcional)

Depois que o volume é montado e está acessível no host, é possível criar um sistema de arquivos. Siga essas etapas para criar um sistema de arquivos no volume recém-montado.

  1. Crie uma partição.

    $ sudo fdisk /dev/mapper/mpatha
    
    Welcome to fdisk (util-linux 2.34).
    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 0x92c0322a.
    
    Command (m for help): p
    Disk /dev/mapper/mpatha: 1 GiB, 1073741824 bytes, 2097152 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 65536 bytes
    Disklabel type: dos
    Disk identifier: 0x92c0322a
    
    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):
    First sector (2048-2097151, default 2048):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151):
    
    Created a new partition 1 of type 'Linux' and of size 1023 MiB.
    
    Command (m for help): w
    The partition table has been altered.
    
  2. Crie o sistema de arquivos.

    $ sudo mkfs.ext4 /dev/mapper/mpatha-part1
    mke2fs 1.45.5 (07-Jan-2020)
    Creating filesystem with 261888 4k blocks and 65536 inodes
    Filesystem UUID: cdb70b1e-c47c-47fd-9c4a-03db6f038988
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
  3. Monte o dispositivo de bloco.

    sudo mount /dev/mapper/mpatha-part1 /mnt
    
  4. Acesse os dados para confirmar se a nova partição e o sistema de arquivos estão prontos para uso.

    ls /mnt
    

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
    

    Para obter mais informações, consulte os manuais Ubuntu- umount.

  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 os manuais Ubuntu- iscsiadm.