sexta-feira, 19 de junho de 2009

Como criar um outro disco para maquinas virtuais Xen

Tenho um servidor web linux rodando em um servidor de maquinas virtuais Xen.
O espaço em disco do meu servidor web encheu! Precisei criar outro disco para o servidor web utilizar.
Fiz os passos abaixo:

[Criando arquivo/disco]
- Precisamos criar um novo arquivo para servir como disco rígido:
dd if=/dev/zero of=/xen/SRV-WEB1.disk2 bs=1M seek=10000 count=1
Nota: estou criando um arquivo/disco de 10000MB.

- Formatando arquivo/disco com sistema ext3:
mkfs.ext3 /xen/SRV-WEB1.disk2
Nota: será alertado que o arquivo não é de bloco, apenas confirme que quer continuar.


[Adicionando arquivo/disco à maquina virtual]
- Recuperando configurações da máquina virtual Xen:
virsh dumpxml SRV-WEB1 > /tmp/SRV-WEB1.xml

- Edite as configurações:
vim /tmp/SRV-WEB1.xml

- Adicione o novo arquivo/disco. No exemplo abaixo temos um pedaço do arquivo /tmp/SRV-WEB1.xml com configuração do primeiro e segundo disco.
Preste atenção que também foi informado o device 'xvdb' no segundo disco:
.
.
.
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/xen/SRV-WEB1.disk1'/>
<target dev='xvda' bus='xen'/>
</disk>

<disk type='file' device='disk'>
<driver name='file'/>
<source file='/xen/SRV-WEB1.disk2'/>
<target dev='xvdb' bus='xen'/>
</disk>

.
.
.

- Desligue a maquina virtual:
xm shutdown SRV-WEB1

- Remova as configurações da máquina:
virsh undefine SRV-WEB1

- Adicione as novas configurações inseridas no arquivo /tmp/SRV-WEB1.xml:
virsh define /tmp/SRV-WEB1.xml

- Inicie novamente a máquina:
xm start SRV-WEB1

- Por fim, monte o novo HD em seu sistema:
mount /dev/xvdb1 /novohd
Nota: Se o disco não estiver formatado e particionado não aparecerá xvdb1 somente xvdb.

quinta-feira, 18 de junho de 2009

Como montar um device ISCSI, cliente ISCSI

Um servidor ISCSI permite que você crie um servidor de discos scsi. Deste modo, um servidor A com 500GB pode compartilha-los para que outros servidores utilizem esse espaço como um disco scsi local.
Veja como montar um servidor ISCSI em http://www.1bit.com.br/content.1bit/weblog/iscsi_cluster.
Nesse post ensinarei como montar um disco ISCSI existente em um servidor, isso não foi comentado no artigo do 1bit.

A seguinte instalação foi realizada no unbuntu 9.

- Baixe o pacote que permite a conexão com o servidor:
apt-get install open-iscsi

- Edite o arquivo que indica o modo de autenticação, login e senha do servidor
vim /etc/iscsi/iscsid.conf

informe as seguintes linhas:
.
.
.
node.session.auth.authmethod = CHAP
node.session.auth.username = USUARIO
node.session.auth.password = SENHA

.
.
.

- Reinicie o serviço cliente para que as configurações tenham efeito
/etc/init.d/open-iscsi restart

- Conecte ao servidor ISCSI:
iscsiadm -m discovery -t sendtargets --login -p IP_DO_SERVIDOR_ISCSI

Nota:
Esse comando faz login no servidor ISCSI com as credenciais informadas em /etc/iscsi/iscsid.conf.
Após a execução desse comando será criado um novo device scsi. Ex.: /dev/sdb


[Possíveis Erros]
- "iscsiadm: automatic login after discovery is not fully implemented yet."
Se está utilizando o debian etch, baixe os pacotes do open-iscsi da versão lenny. Pelo que se pode ver, na versão etch não é suportado o login para os servidores.


[Dúvidas]
Ainda não sei como criar vários devices de servidores ISCSI diferentes. Pois o arquivo /etc/iscsi/iscsid.conf não permite informar diferentes logins para diferentes servidores. Se alguém sabe a solução, por favor comente-a aqui.