Habilite o boot SAN de multicaminho com DS8000 e DMMP

Aprenda como fazer o boot de redes de área de armazenamento e aumente o desempenho geral do seu sistema

Servidores de boot de redes de área de armazenamento com diversos caminhos podem fornecer significativos benefícios para o complexo e moderno ambiente de datacenter – benefícios tais como melhorar a disponibilidade e aumentar o alcance quando se trata de gerenciamento e manutenção mais fáceis e ao fornecer confiabilidade. Para inicializar seu sistema Linux a partir de um dispositivo SAN, é necessário configurar um sistema operacional de boot SAN para o seu armazenamento com suporte de driver multicaminho; que é do que trata esse artigo. O autor levará você através da configuração de um sistema Linux SAN-boot no IBM System Storage DS8000 com a função multicaminho suportada por recurso DMPP (Device-Mapper MultiPath).

Compartilhe sua experiência:  Que meios você encontrou para melhorar a disponibilidade de seu datacenter? Inclua seus comentários abaixo.

Lei Jiang, Software Engineer, IBM

author photoLei Jiang works at IBM China Systems and Technology Lab in Shanghai as part of the Open Systems Interoperability Validation Lab storage testing team. He has three years of SAN storage heterogeneous support and testing experience; his current focus is on storage technologies and open system SAN and high availability solutions.



02/Nov/2009

Um requisito importante para os atuais e complexos ambientes de datacenter é poder entregar dados de missão crítica rapidamente, a qualquer momento, sem interrupções ou atrasos. Servidores de boot de uma rede de área de armazenamento (SAN) pode fornecer significativos benefícios nesse tipo de situação.

Um servidor tradicionalmente inicializa seu sistema operacional de um disco rígido, mas isso significa muito esforço quando um servidor físico está desativado, incluindo substituir o servidor recarregar o sistema operacional, reinstalar aplicativos e assim por diante. Fazer o boot do sistema operacional de um armazenamento SAN simplifica isso porque é necessário apenas substituir o servidor; seu SO e aplicativos são salvos na SAN.

Inicializar a partir da SAN também pode simplificar a administração do datacenter, aprimorar a tolerância a desastre e reduzir o custo total de propriedade (TCO) através de servidores sem disco.

Nesse artigo, mostrarei como configurar Linux para inicializar de um armazenamento SAN, nesse caso o IBM System Storage DS8000 com o recurso DMPP (Device-Mapper MultiPath) para gerenciar diversos caminhos. Abordarei procedimentos para Red Hat Enterprise Linux (RHEL) 4 e 5, e SUSE Linux Enterprise Server (SLES) 9 e 10.

Nesse artigo destaco a arquitetura SAN baseada em Fibre Channel, que é uma configuração típica para datacenters e suportada pelo DS8000.

O que é armazenamento SAN multicaminho?

Nos anos 1980, o armazenamento de discos e fitas era conectado diretamente ao servidor. Desde então, a quantidade de dados da qual dependemos cresceu, mas o armazenamento diretamente vinculado não acompanhou nossas necessidades de armazenamento. Cada vez mais, nos tornamos dependentes do compatilhamento de dados, de grandes capacidades de armazenamento e da necessidade de manter os dados seguros.

Um aspecto dessa necessidade de mudança é para que os dados fiquem mais disponíveis. Lidamos com isso ao adicionar mais caminhos entre hospedagem e armazenamento, daí o termo multicaminho. Com diversos multicaminhos para E/S, melhoramos a tolerância a falhas — se um subconjunto de caminhos falhar, os caminhos restantes funcionarão — e aumentamos o desempenho conforme E/S segue através de múltiplas rotas ao mesmo tempo.

Um exemplo simples de multicaminho e suas vantagens.

Um exemplo simples é o servidor conectado diretamente a duas portas de armazenamento SAN. Se uma única porta de armazenamento ou porta de servidor falhar, o servidor ainda tem outro caminho para transferência de dados. Essa configuração física de canal de E/S torna possível uma SAN multicaminho na camada física.

Além disso, precisamos de uma camada de software multicaminho para gerenciar os diversos caminhos de armazenamento, Essa camada deve deixar a solução de multicaminho transparente aos usuários ao mostrar a eles apenas um dispositivo e caminho. Sem isso, o sistema reconhecerá cada caminho como um dispositivo diferente e os aplicativos não poderão usar múltiplos caminhos ao mesmo tempo.

Camadas de software multicaminho podem usar caminhos redundantes para entregar melhorias de desempenho, tais como balanceamento de carga dinâmico, conformação de tráfego, gerenciamento automático de caminho e reconfiguração dinâmica.

A estrutura do DMMP

DMMP é uma implementação de multicaminho que fornece função de failover em uma configuração ativa/passiva: apenas metade dos caminhos nessa configuração são utilizados para E/S ao mesmo tempo. Se cada elemento de um caminho de E/S (cabo, comutador ou controlador) falhar, o DMMP alterna a E/S para um outro caminho.

O DMMP também pode ser configurado em modo ativo/passivo, no qual a E/S se estende por todos os caminhos em um modelo "round-robin". Em algumas configurações, o DMMP pode detectar carregamento nos caminhos de E/S e dinamicamente reequilibrar a carga. Para todos esses recursos é necessário suporte implícito do seu sistema de armazenamento.

A Figura 1 mostra uma configuração de multicaminho com dois caminhos de E/S a partir de um servidor para armazenamento (matriz RAID). Há dois adaptadores de barramento de host (HBAs) no servidor, dois comutadores SAN e dois controladores RAID na matriz RAID.

Figura 1. Configuração de multicaminho com um dispositivo RAID
Configuração de multicaminho com um dispositivo RAID

Nessa configuração, há um caminho de E/S que passa por hba1, SAN1 (Comutador X) e controlador 1 e um segundo caminho de E/S que passa por hba2, SAN2 (Comutador Y) e controlador 2. Com o DMMP configurado, qualquer simples ponto de falha entre esses dispositivos fará com que o DMMP alterne a E/S para um outro caminho. Portanto, seu sistema ainda estará funcional mesmo havendo um ponto de falha; esse ponto de falha pode ser reparado sem afetar o uso do sistema.

Para uma matriz RAID de armazenamento ativo/passivo, seu host pode apenas alcançar um única LUN a partir dessa matriz por um desses dois caminhos a qualquer momento. Geralmente utilizado um caminho escolhido para E/S; o DMPP alterna o caminho para espera se o caminho escolhido encontra essa falha. O DMMP também estende a E/S entre esses dois caminhos para aumentar desempenho de E/S para armazenamento ativo/passivo.

Se desejar, é possível adicionar mais caminhos entre seu servidor e sua matriz RAID para aumentar confiabilidade, como adicionar um caminho entre controlador 1 e SAN 2 ou um caminho entre controlador 2 e SAN 1. Teríamos então quatro caminhos entre o servidor e a matriz RAID de armazenamento, conforme Figura 2:

Figura 2. Configuração de multicaminho com um dispositivo RAID
Configuração de multicaminho com um dispositivo RAID

Fazendo o boot a partir de uma SAN ativada por multicaminho

Conforme dito anteriormente, o sistema operacional é tradicionalmente instalado no local do disco rígido do servidor, mas seria necessário recarregar o SO e reimplementar os aplicativos em caso de falha deste servidor, aumentando o tempo de manutenção. A Figura 3 mostra essa topologia.

Figura 3. Topologia SO tradicional
Topologia SO tradicional

Por outro lado, a Figura 4 mostra a vantagem de configurar um sistema onde é possível inicializar o SO a partir de uma SAN.

Figura 4. Boot simples de uma topologia SAN
Boot simples de uma topologia SAN

Se o servidor ativo falhar, seus serviços de negócios serão rapidamente alternados para o servidor passivo, como mostra a figura 5.

Figura 5. Failover de boot de SO de um ambiente SAN
Failover de boot de SO de um ambiente SAN

Também é possível usar o serviço de cópia remota do DS8000 para fazer o backup de seu SO e aplicativos para um local remoto, conforme mostra a Figura 6.

Figura 6. Failover remoto de SO de um ambiente SAN
Failover remoto de SO de um ambiente SAN

Destaquei a configuração de um boot de SO a partir de um servidor SAN ativo, mas o processo também pode ser utilizado para uma substituição ou servidor passivo. Não vamos discutir failover automático de SO neste artigo.


Estratégia para fazer o boot a partir de uma SAN.

Começarei apresentando a estratégia de configuração.

  • Do ponto de vista de armazenamento, não há diferença entre um boot local e um boot SAN.
  • Pelo lado do host, é necessário mudar algumas coisas para diferenciar o boot SAN do boot local.
    • Configurar HBA para ativar o BIOS e selecionar o dispositivo de boot do DS8000.
    • Desative o disco rígido local através do BIOS do servidor, ou remova o disco rígido fisicamente.
    • Defina o BIOS do servidor para manter o volume do SO SAN como primeiro boot candidate.
    • Habilite DMMP no Linux.

Após essas etapas, Linux na SAN será definido como principal disco de candidato para inicialização quando o servidor for ligado e executar através de sua autoverificação. Além disso, conforme DMMP carrega durante o boot de SO logo após o driver HBA, seu Linux terá um multicaminho ativado.


Configurando o dispositivo e armazenamento

O IBM System Storage DS8000 foi projetado para suportar E/S de multicaminho com processadores de armazenagem dupla no modo ativo/passivo. Isso significa que não há nada de especial a ser feito para configurar o boot de SO de uma SAN DS8000. O procedimento ocorre desta maneira:

  • Crie uma zona para seu servidor com DS8000.
  • Adicione um grupo de volume.
  • Crie uma conexão de host.
  • Faça um novo volume para o SO.

Mais detalhes sobre essas etapas:

Crie uma zona para seu servidor com DS8000
É necessário criar uma zona de comutação para cada caminho para que sua porta HBA de servidor possa alcançar a porta E/S DS8000. Como na Figura 1, é preciso criar uma zona hba1 e controlador1 (DS8000 porta 1) juntos em SAN1; e zona hba2 e controlador2 (DS8000 porta 2)juntos em SAN2. Se for usada uma zona soft, será similar a:

Zone 1:
50:05:07:63:07:03:07:7d (DS8000 port 1 WWPN);
21:00:00:1b:32:04:82:b7 (Your server HBA port 1 WWPN)

Zone 2:
50:05:07:63:07:08:07:7d (DS8000 port 2 WWPN);
21:01:00:1b:32:24:82:b7 (Your server HBA port 2 WWPN)

Adicione um grupo de volume
Vamos supor que seu administrador de armazenamento já ajudou a sua partição, seu DS8000 e criou um conjunto de extensões. Adicione um grupo de volume para seu servidor com os seguintes comandos executados em seu DS8000 por CLI:

dscli>mkvolgrp -hosttype LinuxSUSE myvolgrp

Aqui, você está configurando um grupo de volume chamado myvolgrp com tipo de host LinuxSUSE, o qual define a conexão de um SO SUSE Linux com base em Intel.

Crie uma conexão de host
Conexão de host é usada para direcionar HBA WWPN do seu servidor para um grupo de volume dedicado no DS8000 para que seu servidor possa acessar todos os volumes neste grupo de volume dedicado. O comando funciona assim:

dscli>mkhostconnect -wwname 2100001b3204b7ba -hosttype LinuxSUSE -volgrp v35 -ioport I0001 mysusehost

Criei aqui uma conexão de host para um caminho do meu servidor com WWPN 2100001b3204b7ba, o qual se conecta à porta I0001 E/S do DS8000 e direciona o grupo de volume v35 (myvolgrp) nessa conexão de host. Isso permite que essa porta de servidor acesse todos os volumes no grupo de volume myvolgrp.

Faça um novo volume para o SO
É preciso fazer um volume para manter seus dados de SO e também espaço suficiente para uma instalação Linux. É sempre uma boa ideia criar um espaço grande o suficiente para uso futuro:

dscli>mkfbvol -extpool p2 -cap 10 -volgrp v35 -name mysuseboot 9802

Nessa etapa, criei um volume chamado mysuseboot no conjunto de extensões p2 e o atribui ao grupo de volume v35. Esse volume será utilizado para carregar Linux.

Também se pode usar esse comando para adicionar mais volumes para dados ou aplicativos, mas é melhor manter o volume que se deseja usar como um disco de SO em primeiro lugar e com o ID mais baixo.

Agora que o dispositivo de armazenamento está configurado, configure o seu servidor e fique pronto para instalar Linux em SAN.


Preparar o servidor para instalação de SO SAN

Se você deseja instalar o SO para armazenamento SAN, é preciso desativar o disco rígido local do seu servidor e ativar o HBA BIOS para que reconheça o disco do DS8000 durante a verificação do dispositivo de boot do servidor.

As etapas são as seguintes:

  • Desative o disco local no servidor.
  • Habilite HBA BIOS para inicializar a partir de SAN.
  • Selecione o disco de boot do DS8000.

Mais detalhes sobre essas etapas:

Desative o disco local no servidor
Primeiro, é necessário inserir a página de configuração do BIOS do sistema; usarei o BIOS de servidor IBM System x para ilustrar essa etapa. Selecione Dispositivo e Portas E/S da página conforme Figura 7.

Figura 7. Página principal do BIOS de servidor do IBM System x
Página principal do BIOS de servidor do IBM System x

Em seguida, desative o disco rígido local no seu servidor (Planar SAS na Figura 8).

Figura 8. Página de configuração de dispositivos e portas E/S
Página de configuração de dispositivos e portas E/S

Se o seu servidor não suporta desativar o adaptador de disco rígido local diretamente, simplesmente retire o disco rígido local fisicamente.

Habilite o HBA BIOS para inicializar a partir de SAN
Usarei uma definição HBA BIOS Qlogic como exemplo. Ao utilizar um HBA de outro fornecedor, consulte a documentação para a definição correta.

Primeiro, pressione Ctrl-Q para selecionar a página do Adaptador de Host quando seu servidor postar o autoteste Qlogic. Você vai obter algo como esse da Figura 9.

Figura 9. Selecionar a página do Adaptador de Host
Selecionar a página do Adaptador de Host

Selecione primeiro a porta HBA que levará você para a página Opções Fast!UTIL conforme mostra a Figura 10.

Figura 10. Página de Opções Fast!UTIL
Página de Opções Fast!UTIL

Entre na página Definições de Configuração (Figura 11) e selecione Definições de Adaptador.

Figura 11. Definições de Configuração
Definições de Configuração

Na página Definições de Adaptadoré necessário habilitar o BIOS de Adaptador de Host conforme Figura 12.

Figura 11. Definições de Adaptador
Definições de Adaptador

Retorne para a página Definições de Adaptador (Figura 11) e insira a página Definições de Boot para Seleção conforme mostra a Figura 13.

Figura 13. Definições de boot para seleção
Definições de boot para seleção

Selecione o disco de boot do DS8000
Da página Definições de Boot para Seleção (Figura 13),selecione o Dispositivo de Boot Principal, que levará à página Selecionar Dispositivo Fibre Channel (conforme Figura 14).

Figura 14. Selecionar Dispositivo Fibre Channel
Selecionar Dispositivo Fibre Channel

Agora, é necessário selecionar o dispositivo de boot no qual será instalado o Linux. A página Definições de Boot para Seleção é mostrada na Figura 15.

Figura 15. Definições de boot elegíveis após seleção de dispositivo de boot
Definições de boot elegíveis após seleção de dispositivo de boot

Nesse estágio, é preciso configurar o dispositivo de boot no Qlogic BIOS. É como configurar uma outra porta HBA, portanto siga as mesmas etapas. Retorne para a página Selecionar Adaptador de Host quando sair da página Opções Fast!UTIL (Figura 10).

Após selecionar um dispositivo de boot para cada HBA ou porta HBA, você estará pronto para inserir uma mídia de instalação Linux e iniciar a instalação do SO.


Instalando Linux no dispositivo de armazenamento

É sempre uma boa ideia manter apenas um caminho livre entre seu servidor e o DS8000 antes de iniciar a instalação Linux no volume DS8000. Para isso, desative uma porta HBA do seu servidor por um desses meios:

  • Desativando a porta de comutação correspondente
  • Retirando o cabo HBA fisicamente, ou
  • Desativando todas as outras zonas entre o seu servidor e o DS8000

É melhor atribuir esse volume como volume de instalação de SO antes da instalação. Dessa maneira, sempre poderá ser encontrado o volume certo para instalação do Linux, desde que exista apenas um volume disponível no momento.

A instalação é muito parecida com as etapas que você seguiu para instalar Linux em um disco rígido local. No entanto, o RHEL5 é um caso especial. Você vai precisar da opção linux mpath durante a instalação inicial já que o RHEL5 suporta ativar DMMP durante a instalação (em outras palavras, é possível ter múltiplos caminhos ativados durante a instalação).

Demonstrarei alguns procedimentos de configuração em diferentes plataformas x86 (verificado em RHEL4 U7, RHEL5 U2, SLES9 SP4 e SLES10 SP2). Você pode precisar usar os pacotes correspondentes para sua arquitetura de servidor, tais como os pacotes i586/i386 para Linux x86 de 32 bits e pacotes x86_64 para 64-bit Linux x86 de 64 bits).


Instalando a ferramenta de multicaminho DMMP

Agora que o Linux está instalado no seu volume DS8000, é necessário instalar a ferramenta de multicaminho DMMP, caso isso não tenha sido feito no processo de instalação de SO. O DMMP contém dois pacotes:

  • mapeador de dispositivo
  • ferramenta de multicaminho

Normalmente, o pacote de mapeador de dispositivo é sempre instalado por padrão porque é necessário para outras ferramentas, como o LVM (Logical Volume Manager). Em SLES instale o pacote de ferramenta de multicaminho do disco de distribuição desta forma:

<Linux ~>#rpm -ivh multipath-tools-0.4.7-75.7.i586.rpm

No Red Hat

<Linux ~>#rpm -ivh device-mapper-multipath-0.4.5-31.el4.x86_64.rpm


Ativando DMMP no boot do sistema

Agora que está pronto todo o software necessário, configure o seu sistema conforme as duas etapas seguintes para ativar DMMP e adicionar suporte DS8000:

  • Ativar inicialização DMMP durante boot.
  • Configurar DMMP para suportar o dispositivo de armazenamento.

Ativar inicialização DMMP durante boot.

Adicionar os scripts de inicialização de ferramentas de multicaminho para a lista de inicialização, conforme o seguinte:

<linux:~>#chkconfig --level 35 multipathd on

Verifique se a configuração está correta:

<linux:~>#chkconfig --list | grep multipath multipathd 0:off 1:off 2:off 3:on 4:off 5:on 6:off

Configurar DMMP para suportar o dispositivo de armazenamento.

Edite o arquivo/etc/multipath.conf com os seguintes itens:

Listagem 1. Configurando DMMP para suportar DS8000
defaults {
        polling_interval    30 
        failback            immediate
        no_path_retry       5
        rr_min_io           100
        path_checker        tur
        user_friendly_names yes 
}
devices {
# DS8000
       device {
               vendor                      "IBM"
               product                     "2107900"
               path_grouping_policy     group_by_serial
       }
}
multipaths {
        multipath {
        wwid 36005076307ffc77d0000000000001050
        alias OSROOT
        }
}

Este arquivo de configuração está disponível para download.

Agora, configure um alias para o disco de root do SO Linux por WWID (World Wide Identifier) para poder usar um nome curto e fácil nas próximas etapas de configuração. Para obter um WWID para o seu disco SO, use o seguinte comando:

<linux:~>#scsi_id -g -u -s /block/sda 36005076307ffc77d0000000000001050

sda é o seu nome de dispositivo de disco SO sem DMMP.


Construindo módulos DMPP em uma imagem initrd

Nesta seção, mostrarei como construir módulos DMMP na imagem initrd — o disco virtual inicial, um sistema de arquivo temporário comumente utilizado no processo de boot do kernel Linux para fazer preparações antes que o verdadeiro sistema de arquivo de root possa ser montado — para SLES9, SLES10, RHEL4 e RHEL5. Escolha o seu SO e siga as etapas.

As etapas para SLES9

Por padrão, DMMP não está integrado à imagem initrd SLES9 para suportar um boot SLES9 habilitado por multicaminho a partir de uma SAN. Para que funcione, faça o seguinte:

Editar o arquivo /etc/sysconfig/kernel
Adicione ddm_mod dm_multipath dm_round_robin à linha para INITRD_MODULES:

INITRD_MODULES="ata_piix qla2400 dm_mod dm_multipath dm_round_robin reiserfs"

Fala uma nova imagem initrd com suporte DMMP

<linux:~>#mkinitrd -k /boot/vmlinuz -i initrdmp.gz -x 6000

Neste ponto, vou construir todos os módulos DMMP necessários (dm_mod, dm_multipath, dm_round_robin) à imagem initrd para que DMMP possa carregar esses módulos durante a inicialização do SLES9. Também vou adicionar 6000 bytes para a imagem para futuro espaço de edição.

As etapas para RHEL4/5

DMMP não é integrado à imagem initrd, portanto use os seguintes comandos para fazer isso:

<linux:~>#mkinitrd --with=dm-mod --with=dm-multipath --with=dm-round-robin initrdmp.gz `uname -r`

Aqui, initrdmp.gz é o nome da imagem initrd. Ao usar a opção linux mpath durante a instalação RHEL5, não é necessário executar essa etapa.

As etapas para SLES10

Um dos dois métodos a seguir podem ser usados para conseguir isso para SLES10.

Construir uma nova imagem initrd com DMMP embarcado
Execute o seguinte comando para construir uma nova imagem initrd com DMMP embarcado:

<linux:~>#mkinitrd -f mpath

Editar o arquivo /etc/sysconfig/kernel
Edite o arquivo /etc/sysconfig/kernel e adicione dm-multipath à linha para INITRD_MODULES como se segue:

INITRD_MODULES="ata_piix qla2400 reiserfs dm-multipath"

Execute o seguinte comando para construir DMMP na imagem initrd:

<linux:~>#mkinitrd


Editando a imagem initrd

Agora você precisa editar a imagem initrd. Escolha seu SO (SLES9, SLES10, RHEL4, ou RHEL5) e siga as etapas.

As etapas para SLES9

Descompacte a imagem initrd

<linux:~>#mkdir tmp;cd tmp
<linux:~/tmp#cp /boot/initrdmp.gz ./
<linux:~/tmp#gunzip ./initrdmp.gz

Esse nome de imagem initrd foi a que eu usei nas etapas anteriores; pode ser diferente da que você usou.

Monte a imagem initrd para um diretório temporário

<linux:~/tmp#mkdir temp
<linux:~/tmp#mount -t ext2 -o loop ./initrdmp temp

Copie multipath.conf na imagem initrd

<linux:~/tmp#cd temp
<linux:~/tmp/temp#cp /etc/multipath.conf temp/etc/

Copie o binário relativo a DMMP e biblioteca na imagem initrd

<linux:~/tmp/temp#cp /sbin/multipath sbin
<linux:~/tmp/temp#cp /sbin/dmsetup sbin/
<linux:~/tmp/temp#cp /sbin/kpartx sbin/
<linux:~/tmp/temp#cp /sbin/mpath_* sbin/
<linux:~/tmp/temp#cp /sbin/lvm sbin/
<linux:~/tmp/temp#cp /sbin/vgscan sbin/
<linux:~/tmp/temp#cp /sbin/vgchange sbin/
<linux:~/tmp/temp#cp /sbin/devmap_name sbin/
<linux:~/tmp/temp#cp /bin/awk bin/
<linux:~/tmp/temp#cp /lib/libdevmapper.so.1.01 lib/
<linux:~/tmp/temp#cp /lib/libsysfs.so.1 lib/
<linux:~/tmp/temp#mkdir lib/tls
<linux:~/tmp/temp#cp /lib/tls/libc.so.6 lib/tls
<linux:~/tmp/temp#cp /lib/libselinux.so.1 lib/
<linux:~/tmp/temp#cp /lib/libdl.so.2 lib/
<linux:~/tmp/temp#cp /lib/tls/libm.so.6 lib/tls
<linux:~/tmp/temp#cp /lib/tls/libc.so.6 lib/tls
<linux:~/tmp/temp#cp /lib/libsysfs.so.1 lib/

Nessa etapa, não querendo usar LVM para gerenciar sua partição de root, ignore copiar lvm, vgscan, vgchange e lib relacionado. Se estiver usando X86_64 SLES9, será necessário copiar bibliotecas relacionadas no diretório lib64.

Editar o arquivo linuxrc
Localize a última linha de carregamento de driver (como dm-round-robin.ko, no meu caso):

insmod /lib/modules/2.6.5-7.308-bigsmp/kernel/drivers/md/dm-round-robin.ko

Adicione o seguinte após a última linha de carregamento de drive:

Listagem 2. Adição a linuxrc
multipath -v2
for i in `dmsetup ls | awk {'print $1'}`; 
do
  kpartx -a -v /dev/mapper/$i
done

Se não quiser um resultado muito detalhado, remova o parâmetro -v para multipath ou kpartx.

Reempacote a imagem initrd

<linux:~/tmp#umount temp
<linux:~/tmp#gzip initrdmp
<linux:~/tmp#mv initrdmp.gz /boot/

As etapas para RHEL4

Extraia a imagem initrd para um diretório temporário

<linux host ~>#mkdir temp
<linux host ~>#cd temp
<linux host ~>#gzip -dc ../initrdmp.gz | cpio -id

Copie multipath.conf na imagem initrd

<linux host ~>#cp /etc/multipath.conf temp/etc/

Copie o binário DMMP na imagem initrd

<linux host ~>#cp /sbin/dmsetup.static sbin/
<linux host ~>#cp /sbin/multipath.static sbin/
<linux host ~>#cp /sbin/kpartx.static sbin/
<linux host ~>#cp /sbin/scsi_id.static sbin/
<linux host ~>#cp -a /etc/udev/rules.d/ etc/udev/

Editar o arquivo init
Adicione essas duas linhas somente após o carregamento de todos os drivers:

/sbin/multipath -v2
/sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a"

Reempacote a imagem initrd

<linux host ~>#find ./ | cpio -H newc -o > ../initrdmp
<linux host ~>#gzip initrdmp
<linux host ~>#cp initrdmp.gz /boot/

As etapas para RHEL5 e SLES10

Visto que RHEL5 e SLES10 suportam DMMP, será necessário apenas adicionar multicaminho.conf à imagem initrd para suportar DS8000.

Extraia a imagem initrd para um diretório temporário

<linux host ~>#mkdir temp
<linux host ~>#cd temp
<linux host ~>#gzip -dc ../initrdmp.gz | cpio -id

Copie multipath.conf na imagem initrd

<linux host ~>#cp /etc/multipath.conf temp/etc/

Reempacote a imagem initrd

<linux host ~>#find ./ | cpio -H newc -o > ../initrdmp
<linux host ~>#gzip initrdmp
<linux host ~>#cp initrdmp.gz /boot/


Adicionando suporte LVM2

Se Linux for instalado com LVM2 para gerenciar seu sistema de arquivo de root, será necessário configurar seu arquivo de configuração, lvm.conf, para suportar o dispositivo DMMP e copiar esse lvm.conf para a imagem initrd. Seu arquivo lvm.conf deve ter suas linhas parecidas com essas:

filter = [ "a|^/dev/mapper/.*|", "r|.*|" ]
types = [ "device-mapper", 253 ]


Editando a configuração GRUB

Algumas distribuições Linux não suportam nomes de dispositivo no diretório /dev/mapper, por isso usei /dev/disk/by-name. Dispositivos nesse diretório são direcionados para dispositivos no diretório /dev/mapper. Edite o arquivo /boot/grub/menu.lst e mude a seção de boot de kernel assim (tudo em uma linha):

kernel (hd0,1)/boot/vmlinuz root=/dev/disk/by-name/OSROOT2 vga=0x314 selinux=0
splash=silent resume=/dev/disk/by-name/OSROOT1 elevator=cfq showopts

Aqui, OSROOT2 significa sda2 original e OSROOT1 significa sda1 original. Se estiver usando SLES10, ele usa nomes como OSROOT-part2. Esse nome fácil pode mudar em diferentes versões do Linux, portanto é melhor obter seu exato formato de nome ao atribuir uma LUN adicional do DS8000 e particionar após DMMP adicioná-lo ao mapa de dispositivo. O motivo para a LUN adicional é que o sistema de arquivo de root está em uso no momento e DMMP não pode adicioná-lo ao mapa de dispositivo; portanto, você não pode obter tal nome para a partição de root.


Editando fstab

Edite o arquivo /etc/fstab para substituir o dispositivo original sdx por um dispositivo DMMP, assim:

/dev/mapper/OSROOT2 / reiserfs acl,user_xattr 1 1 /dev/mapper/OSROOT1 swap swap pri=42 0 0

Aqui, /dev/mapper/OSROOT2 substitui /dev/sda2 e /dev/mapper/OSROOT1 substitui /dev/sda1. Não use etiqueta aqui. O Linux encontrará etiquetas duplicadas porque há diversos caminhos para cada sistema de arquivo, o que evita que seus sistemas de arquivo sejam automaticamente montados.


Verificando o boot de DMMP

Quase pronto! Você terminou todas as etapas necessárias para configurar Linux para inicializar a partir de uma SAN de multicaminho. Agora você pode ativar todos os caminhos entre o seu servidor e o DS8000, para então reinicializar o Linux. Após a reinicialização do servidor, verifique se o DMMP funciona usando o comando multipath -ll. O resultado deve parecer com este:

OSROOT (36005076307ffc77d0000000000001050) dm-0 IBM,2107900
[size=10G][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=2][active]
\_ 2:0:0:0 sda 8:0 [active][ready]
\_ 3:0:0:0 sdb 8:16 [active][ready]

Se um caminho for desativado, ele mudará o status para mostrar que um caminho falhou:

OSROOT (36005076307ffc77d0000000000001050) dm-0 IBM,2107900
[size=10G][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=1][active]
\_ 2:0:0:0 sda 8:0 [failed][faulty]
\_ 3:0:0:0 sdb 8:16 [active][ready]

O caminho com falha volta para o status de pronto se for reativado.

Você também pode tentar desativar cada caminho e reinicializar o seu servidor para verificar se pode ser inicializado com apenas um caminho ativo. Se nada de errado acontecer, o seu servidor estará funcionando e o resultado multipath -ll será similar a:

OSROOT (36005076307ffc77d0000000000001050) dm-0 IBM,2107900
[size=10G][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=1][active]
\_ 3:0:0:0 sdb 8:16 [active][ready]

Após adicionar outra vez o caminho desativado, é necessário executar multipath -v0 para adicionar de volta à lista de caminho após seu driver HBA encontrar um novo caminho ativado.

podem ser adicionados mais volumes ao grupo de volume no DS8000 para uso de dados ou aplicativos. É possível estender um cabo Fibre Channel entre seus servidores e alternar para simular um cabo FC quebrado; desative uma porta de comutação de seu servidor/armazenamento para simular uma falha de comutação. Em ambos os casos, seu servidor E/S vai apenas congelar por alguns segundos, já que DMMP está cuidando do problema. Após restaurar o sistema ao seu estado funcional, DMMP restabelecerá uma conexão ao caminho anteriormente quebrado, reequilibrando a E/S a ele.

Finalmente, lembre-se que um caminho duplo não fornece confiabilidade, disponibilidade e desempenho suficientes, você pode adicionar mais caminhos.


Conclusão

Mostrei como configurar Linux para inicializar do armazenamento SAN DS8000 com suporte de multicaminho DMMP. Se você quiser aplicar essas técnicas a outros veículos de armazenamento (XIV, SAN Volume Controller, o DS6000, etc.), lembre-se que os arquivos de configuração vão ser diferentes do multipath.conf que usei neste artigo.

Recursos

Aprender

Obter produtos e tecnologias

  • IBM System Storage DS8000 é armazenamento de disco de alto desempenho para cargas de trabalho corporativas de negócios críticos.
  • O /etc/multipath.conf file está disponível na página de download armazenamento de sistema IBM DS8000 Subsystem Device Driver para Linux.
  • Com o IBM trial software, disponível para download diretamente do developerWorks, construa seu próximo projeto de desenvolvimento em Linux.

Discutir

  • Venha participar da My developerWorks community; com seu perfil pessoal e página inicial customizada, você pode adequar developerWorks a seus interesses e interagir com outros usuários developerWorks.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=442659
ArticleTitle=Habilite o boot SAN de multicaminho com DS8000 e DMMP
publish-date=11022009