Desvie dessas perguntas feitas anteriormente
Como obter espaço livre da unidade montada Redhat 7
A atualização do crypttab solicita a senha do fstrim
Temos um HP 3PAR StoreServ 7400 com 170 VMs distribuídas em 38 hosts.
Aqui está o problema como eu o entendo: (Além disso, recebi algumas informações que não tenho certeza se são verdadeiras ou não, li o whitepaper HP 3PAR StoreServ 7400 e realmente não consigo encontrar nada que faça backup do que meu armazenamento é me dizendo. Então, ao longo do abaixo, se alguém notar algo que não seja verdade, por favor me avise.)
O 3 PAR é dividido em 3 seções,
Camada 1: SSD usado para armazenar em cache e acesso rápido a arquivos comumente acessados.
Camada 2: e Camada 3: Algum tipo de disco giratório, o que e por que existem 2 camadas adicionais não tenho certeza, mas minha suposição é que a Camada 2 é usada para dados que não são acessados com mais frequência, mas acessam um pouco e a Camada 3 é usada para armazenamento do restante.
Dentro da parte SSD, como li em muitos artigos, quando os dados são gravados em um bloco SSD e, em seguida, excluídos, esse bloco não é zerado até que novos dados sejam gravados nele. Portanto, quando os dados dentro do bloco são excluídos, a tabela que armazena o mapeamento info é atualizado, quando novos dados são gravados no mesmo bloco, o bloco primeiro precisa ser zerado e, em seguida, pode ser gravado. Este processo dentro do SSD se a periodicidade da unidade não for cortada pode levar a velocidades w/r mais baixas.
O 3PAR LUN é provisionado thin, as VMs são provisionadas Eager Thick.
De acordo com meu cara de armazenamento, o 3PAR possui um recurso especial integrado que permite que o armazenamento SSD não esteja sendo usado para estar disponível para as outras VMs conforme necessário, o que não faz sentido.
Verificação de fato:
Uma VM de provisionamento espesso é um arquivo VMDK, quando a VM é criada, você especifica o tamanho da VM e isso cria um arquivo VMDK. Na minha opinião, isso me diz que, se a VM estiver sendo acessada regularmente, todo o arquivo VMDK é movido para SDD, e o que eles estão me dizendo é que, mesmo que o VMDK esteja configurado para usar 40 GB, alguns desses 40 GB podem ser usados em outras VMs? Isso soa mais para mim como uma VM de provisionamento fino e não grossa.
Ok, chegando ao problema.
Em nossos sistemas Windows, usamos sdelete para localizar e zerar blocos não utilizados.
Em nosso sistema Linux Fedora, tenho tentado descobrir como fazer o fstrim funcionar.
Eu tentei o comando dd=write-big-file delete-big-file e isso enviou a E/S do disco através do telhado, o que foi notado, e me disseram para não fazer isso novamente.
Fazendo uma pequena pesquisa, parece-me que sdelete faz praticamente a mesma coisa que dd=write-big-file delete-big-file, então por que a E/S do disco não ultrapassa o teto nos sistemas Windows?
Então, acho que reduzi a duas soluções. Nenhum dos quais eu sei fazer.
- De alguma forma, sem v-motion das VMs para uma matriz de armazenamento diferente, seja capaz de executar uma função semelhante a fstrim em toda a parte SSD da SAN.
Nota lateral: Se eu entender tudo o que li, o fstrim examina cada bloco para ver se os dados estão lá e se são necessários, se não forem necessários, zerará o bloco, onde, como sdelete, grava um arquivo enorme e o exclui. É por isso que estou procurando uma opção fstrim em toda a parte SSD do 3PAR.
- Longshot, mas o erro que recebo com o fstrim é:
[root@rhtest ~]# fstrim -v / fstrim: /: a operação de descarte não é suportada
Eu li que a opção de descarte precisa ser definida no sistema operacional e no armazenamento de dados, mas não consigo descobrir onde ou como definir uma opção de descarte no 3PAR. Tenho acesso SSH e GUI ao 3PAR.
Já passei por inúmeras orientações sobre como configurar descartes no sistema operacional e, não importa quantas maneiras diferentes eu gire, sempre recebo o mesmo erro.
Sim, eu também examinei outras opções zerofree era uma, e algumas outras que não me vêm à mente, no entanto, elas funcionaram como zdelete ou li que eram muito perigosas, examinei o hdparam etc.
Abaixo vou colocar algumas saídas sobre o SO em questão são todos iguais.
[root@rhtest ~]# hostnamectl
Static hostname: rhtest.domain.com
Icon name: computer-vm
Chassis: vm
Machine ID: f52e8e75ae704c579e2fbdf8e7a1d5ac
Boot ID: 98ba6a02443d41cba9cf457acf5ed194
Virtualization: vmware
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
[root@rhtest ~]# blkid
/dev/block/8:2: UUID="2OHGU8-ir1w-LLGB-6v72-zZqN-CIaX-FjGImJ" TYPE="LVM2_member"
/dev/block/253:1: UUID="ad872f09-5147-4252-af56-aa6244219515" TYPE="xfs"
/dev/block/8:1: UUID="83aac355-a443-4ff9-90fa-9f6da8e31cc2" TYPE="xfs"
/dev/block/253:0: UUID="dbe56f6a-2a4a-42da-82e2-bef9a73caafb" TYPE="swap"
[root@rhtest ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
ââsda1 8:1 0 500M 0 part /boot
ââsda2 8:2 0 49.5G 0 part
âârhel_-rhtest-swap 253:0 0 2G 0 lvm [SWAP]
âârhel_-rhtest-root 253:1 0 47.5G 0 lvm /
sdb 8:16 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
[root@rhtest ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel_-rhtest-root 48G 883M 47G 2% /
devtmpfs 991M 0 991M 0% /dev
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 1001M 8.5M 993M 1% /run
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/sda1 497M 124M 374M 25% /boot
tmpfs 201M 0 201M 0% /run/user/0
Ser capaz de executar o fstrim nas partições / seria a melhor solução, no entanto, com a forma como o seu ESXi está configurado, não seria possível.
Você precisa habilitar descartes na VM e no dispositivo de armazenamento.
Tentar reduzir o tamanho de uma partição ou volume lógico com o sistema de arquivos xfs não pode ser feito, isso é um bug conhecido do fedora. Se você estiver interessado nesta funcionalidade, entre em contato com o suporte da Red Hat e faça referência ao bugzilla 1062667 da Red Hat e forneça seu caso de uso para a necessidade de redução/redução de XFS.
Como possível solução alternativa em alguns ambientes, os volumes LVM de provisionamento fino podem ser considerados como uma camada adicional abaixo do sistema de arquivos XFS.
Se as VMs forem VMDK com provisionamento espesso, o que significa que não há nada para recuperar quando você está tentando cortar (falando tecnicamente; SCSI UNMAP) seus volumes.
Se o armazenamento de back-end estiver executando o provisionamento thin, você também precisará usar arquivos VMDK zerados preguiçosamente para reduzir o armazenamento e possibilitar que o back-end armazene em cache/desative os dados mornos.
Duas opções possíveis:
Pelo que posso dizer, isso faz a mesma coisa que sdelete, mas pode causar um pico na E/S do disco, bem como demorar um pouco para ser executado.
Algo para tentar durante a noite
Qualquer uma das opções não é a melhor, mas reformatar todas as VMs para obter ext3 ou ext4 não parece viável.
O que você pode fazer é configurar uma regra de afinidade para todas as VMs Linux e usar a opção 1 acima.
Você está usando VMDK de provisionamento grosso antecipado, o que significa que não há nada para recuperar quando você está tentando cortar (falando tecnicamente; SCSI UNMAP) seus volumes.
Se o armazenamento de back-end estiver executando o provisionamento thin, você também precisará usar arquivos VMDK zerados preguiçosamente para reduzir o armazenamento e possibilitar que o back-end armazene em cache/desative os dados mornos.