Lidando com armazenamento compartilhado fragmentado de VM

1

Temos um pool Citrix XenServer com 3 hosts, usando um Repositório de Armazenamento NFS compartilhado para nossas VMs.

O SR está hospedado em um blade do Windows 2003 Storage Server, que foi incluído no nosso gabinete HP Blade da série 3000.

Acabei de dar uma olhada no Storage Server e percebi que o disco que contém o compartilhamento NFS está muito fragmentado.

Eu tenho algumas perguntas.

A execução da desfragmentação padrão do Windows será suficiente para lidar com isso?

Alguém mais está executando uma configuração semelhante, experimentou um problema semelhante e o que você fez? Estou planejando automatizar o processo e estou querendo saber se preciso suspender ou encerrar VMs enquanto a desfragmentação está em andamento.

Por que isso está ocorrendo e há coisas específicas que eu posso fazer no provisionamento de novas VMs para evitar que isso aconteça?

Quaisquer pensamentos seriam bem-vindos.

Obrigado,

Luke

    
por LukeR 23.07.2009 / 02:27

1 resposta

4

Deveria ser bom fazer uma desfragmentação da unidade on-line, já que as imagens de disco Xen são apenas arquivos como qualquer outro. Você deve tentar fazer isso fora das horas, pois o desempenho provavelmente sofrerá muito durante a desfragmentação.

A razão pela qual você está vendo alta fragmentação é que os VDIs são imagens de disco esparsas. Mesmo que você especifique que uma VM tem (por exemplo) 100 GB de espaço alocado, a imagem do disco alocará inicialmente apenas uma quantidade mínima de espaço. Em seguida, ele crescerá conforme necessário até o tamanho máximo alocado. O problema com essa abordagem é que, se você tiver muitas VMs no mesmo dispositivo de armazenamento e todas elas estiverem expandindo seus discos em momentos diferentes, não haverá como os arquivos de imagem de disco ficarem contíguos no disco e, assim, tornar-se muito fragmentado.

A solução para isso seria não usar imagens esparsas, mas infelizmente parece que a partir do XenServer 5.0 o único tipo de VDI que você pode fazer é esparso.

Você tem algumas opções que posso pensar de cara:  * Se possível, use dispositivos de bloco brutos com o formato LVM. Não estou familiarizado o suficiente com o Windows 2003 Storage Server para saber se isso é possível. Se permitir que você faça volumes e os exporte por meio de iSCSI ou FC, está tudo pronto. Caso contrário, talvez seja necessário mudar para outra configuração de armazenamento compartilhado ou qualquer outra coisa.  * Pré-aloque todo o espaço em disco no seu VHD. Essencialmente, isso significa apenas preencher todo o espaço disponível no volume antes de instalar seu sistema operacional. Você pode inicializar um LiveCD do Linux ou algo assim e usar dd para gravar zeros em todo o disco. Isso fará com que o XenServer aumente o tamanho máximo do arquivo de imagem de disco, e esperamos que a maior parte seja contígua, já que tudo está sendo feito de uma só vez.

O problema de fragmentação que você está vendo não é incomum para usar armazenamento baseado em arquivos esparsos para VMs, e é exatamente a razão pela qual eu prefiro usar LUNs em uma SAN para armazenamento em VM.

    
por 23.07.2009 / 02:59