Como obter RAID recentemente expandido para mostrar o tamanho correto em Debian

6

Recentemente, expandi minha unidade virtual de armazenamento RAID 5 de 6 TB para 9 TB. O Dell OMSA e o BIOS para o controlador RAID mostram que estou com 8382 GB. O que é bom.

Mas quando você entra no Debian e olha em volta, ele só vê os 6 TB.

Quando eu faço um fdisk -l eu entendo isso:

Disk /dev/sda: 9000.1 GB, 9000103968768 bytes
255 heads, 63 sectors/track, 1094200 cylinders, total 17578328064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT

Então, agora é 9 TB. Mas a partição sda1 não. Como faço para expandir isso para refletir a mudança de tamanho .... SEM PERDER DADOS!

Obrigado

    
por Matt Winer 16.02.2015 / 16:52

2 respostas

1

Como @duskwuff já mencionado, esta é uma tabela de partições GPT , portanto, fdisk mostra apenas o conteúdo protetor de MBR. Use gdisk -l /dev/sda em vez disso. Você pode ter mais de uma partição e, nesse caso, só será possível redimensionar a última.

A solução alternativa (não recomendada) pode ser o software RAID0 (chamado mdraid no Linux) abrangendo a partição que você deseja expandir e uma criada no novo espaço, visível como um grande espaço para o sistema operacional. Para evitar a perda de dados, você deve usar uma variante de mdraid sem metadados ( mdadm --build ... , não mdadm --create ... ), verifique man mdadm . Isso, no entanto, degradará o desempenho, apresentará outras dificuldades se aplicado à partição do sistema de arquivos raiz e terá o potencial de apagar seus dados em qualquer erro.

Possivelmente há outra solução não destrutiva - se você tiver uma única partição no disco e encontrar o deslocamento do seu sistema de arquivos, você pode excluir a partição e montar todo o disco sem partição, fornecendo deslocamento = valor na montagem. Não tenho certeza se funciona com um dispositivo de bloco adequado (usado somente com um loop e arquivos de imagem). Se funcionar com partições ainda em vigor, também funcionará sem elas, para que possa experimentar o mount & deslocado antes de tocar no layout da partição. A desvantagem é que tal layout pode confundir o software de recuperação de dados se você precisar dele algum dia.

Para evitar esse tipo de problema, sempre tento usar grupos de volumes diferentes para boot / rootfs - disco particionado e para disco de dados sem partição (expandi-lo on-line é fácil, apenas o redimensionamento do sistema de arquivos - resize2fs /dev/sda , assumindo que é um EXT {2..4}). Esta é a solução para o futuro.

    
por 16.02.2015 / 22:34
3

Não existe uma maneira fácil de fazer isso, se você não estiver usando o LVM.

Aqui está um procedimento que você pode seguir com segurança, se você for muito muito cuidadoso. A melhor maneira de ter cuidado seria fazer backup de seus dados antes, obviamente.

Felizmente, sua partição começa no primeiro setor, então você não precisa se preocupar com isso. Seu problema está no fim, que não é seu (novo) último setor. Então você precisa atualizá-lo. Então você precisa destruir sua partição e criar uma nova (sem formatá-la!).

fdisk -u /dev/sda

Então, no utilitário fdisk:

  • d para excluir a partição 1
  • p para se certificar de que não tem mais partições
  • n para criar uma nova partição:
    • p para torná-lo uma partição primária
    • 1 para torná-lo a primeira partição
    • 1 para começar no setor 1 (como era)
    • torna o último setor seu 'Fim' de sua partição (deve ser a resposta padrão)

Optionnal (para tornar sua partição inicializável):

  • a para o sinalizador do Google, e o 1 para especificar a partição

Agora você tem que escrever suas alterações:

  • w

Agora você pode sair do fdisk e reiniciar seu servidor. Uma vez feito, estenda sua partição no nível do sistema de arquivos ( resize2fs /dev/sda1 )

    
por 16.02.2015 / 17:23