Live Chat Software by Kayako |
Trocando o disco do sistema - Proapps / FreeBSD com ZFS
Postado por Anderson Nunes Aguiar on 20/Mar 13:44
|
|
Troca do disco Este artigo tem como objetivo a troca de um disco saudável do pool do sistema. A troca de um disco com problemas tem outro comportamento. Identificando discos e pool's Para alterar o disco é necessário identificar os discos e quais os pool's estão criados, para evitar erros no procedimento. Neste caso podemos notar com os comandos abaixo, que temos dois discos e que eles têm o mesmo tamanho, mas o procedimento também funciona para discos com tamanhos superiores ao já existente. (root@server) ~# sysctl kern.disks (root@server) /usr/home/staffproapps# geom disk list Geom name: ada1 Para identificar o pool e qual disco está em utilização utilizamos o comando descrito abaixo. Note que temos apenas um pool, caso tenha mais de um é necessário identificação do pool e seus pontos de montagem. (root@server) /usr/home/staffproapps# zpool status NAME STATE READ WRITE CKSUM errors: No known data errors (root@server) /usr/home/staffproapps# df -h Partições GPT Feito a identificação, entendemos que no caso em questão o novo disco é o ada1 e o disco antigo é o ada0. O primeiro passo a ser realizado é replicar a tabela de partições GPT e escrever a partição de boot. No comando abaixo podemos verificar que o novo disco já possui uma tabela de particionamento que deve ser sobrescrita. (root@server) /usr/home/staffproapps# gpart show => 63 62533233 ada1 MBR (30G)
=> 63 62533233 diskid/DISK-D781910408 MBR (30G) Com o comando abaixo já vamos realizar o backup das partições do disco ada0 e restaurar no disco ada1 apagando a tabela de particionamento já existente neste disco. (root@server) ~# gpart backup ada0 |gpart restore -F ada1 Obs. Somente a tabela de partição é restaurada, após a restauração é necessário escrever o bootcode. Nenhum backup de dados é executado neste procedimento. Para adicionar o bootcode no novo disco identifique a partição responsável pelo boot e utilize o comando abaixo: (root@server) ~# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 Agora devemos remover a partição freebsd-zfs do novo disco e cria-la novamente à fim de adicionarmos um label à ela e também para que haja a incorporação de todo o espaço em disco que esteja sobrando caso o novo disco tenha um tamanho maior que o que está em produção. (root@server) ~# gpart delete -i 3 ada1 (root@server) ~# gpart add -t freebsd-zfs -l disk1 ada1 Agora o particionamento do novo disco tem que estar idêntico ao do disco em produção. (root@server) /usr/home/staffproapps# gpart show ada0 Adicionando o novo disco no pool Vamos adicionar o novo disco no pool do sistema ao invés de utilizar o comando replace para evitarmos erros durante o procedimento que possam inutilizar todo o sistema. Portanto será incluído o novo disco e após todo o procedimento iremos realizar a remoção do disco antigo. Adicionando o novo disco: (root@server) ~# zpool attach zroot gpt/disk0 gpt/disk1 Aguardo o tempo de sincronização dos discos, é possível acompanhar o procedimento com o comando abaixo: FALTA PRINT Ao finalizar o procedimento a saída do comando ficará parecida com a mostrada abaixo: (root@server) ~# zpool status NAME STATE READ WRITE CKSUM Obs. É recomendado que seja realizado testes de inicialização com o novo disco antes de realizar a remoção do antigo do pool. Pois caso haja algum erro com o novo disco, ainda é possível bootar com o disco antigo. Realizado os testes e certo da confiabilidade do novo disco remova o disco antigo do pool. Como durante os testes provavelmente ocorreu o reboot a nomenclatura dos discos podem ter sido alteradas, é necessário se certificar da identificação dos discos novamente antes de prosseguir. Caso a maquina suporte Hot swapping o reboot não é necessário, porém é recomendado para testar a partição de boot que foi escrita afim de identificar quaisquer erros. Após todos os testes, verifique qual o disco deve ser removido: (root@server) ~# zpool status NAME STATE READ WRITE CKSUM errors: No known data errors Neste caso vamos remover o disco que se encontra fora do sistema: (root@server) ~# zpool detach zroot gpt/disk0 NAME STATE READ WRITE CKSUM errors: No known data errors Troubleshooting Caso a partição GPT não tenha abrangido todo o espaço disponível do disco tente utilizar os comandos abaixo para realocar o espaço: gpart resize -i 3 da0 zpool online -e zroot gpt/disk0 Documentação https://www.freebsd.org/cgi/man.cgi?gpart(8)#content https://docs.oracle.com/cd/E19253-01/819-5461/gcfhe/index.html | |
|