A configuração é a seguinte:
- HP Proliant DL380 G7
- 6 unidades Sata de 3 TB (nível de vigilância) configuradas com hardware RAID 1 + 0 com o controlador SATA integrado. Modelo é o Seagate SV35
- 192 GB de RAM
VMware ESXi 6.0
- Um convidado da VM executando o Centos 6.7 (Kernel 2.6.32-573)
O armazenamento de dados é composto de todo o espaço restante em disco após a instalação do ESXi (pouco menos de 8 TB)
- 1 arquivo VMDK para a partição do sistema em 100 GB
- 1 arquivo VMDK para a partição de dados em torno de 7.7TB
No guest CentOS, a partição do sistema é LVM ext4
A partição de dados é um LVM com um único PV, LV e VG ext4
Agora, o problema que tenho é que as velocidades de transferência de dados no disco são extremamente lentas. Tentar copiar um arquivo semi-grande (10-30 GB) de um lugar no LVM para outro no LVM começa com uma taxa de transferência de cerca de 240MB / s, que é a velocidade que eu esperava que ele tivesse, mas apenas depois de alguns segundos (normalmente 30ish) ele cai para 1-4 MB / s, e a visualização iotop me diz que um processo começa a rodar chamado flush-253: 2, o que parece atrasar tudo.
Eu tenho usado
rsync --progress
para obter uma melhor imagem das velocidades de transferência em tempo real, mas estou vendo o mesmo resultado com um
cp
operação.
Quando finalmente terminar, tentei executar o mesmo procedimento novamente, com o mesmo arquivo no mesmo local. A segunda vez que a velocidade de transferência indicada do rsync se mantém estável em torno de 240MB / s durante toda a transferência, mas quando o rsync indicou que a transferência do arquivo está completa, ele fica paralisado nesse tempo pelo tempo necessário para concluir o primeiro procedimento de cópia. Eu posso ver o processo flush-253: 2 trabalhando tão duro para ambos os procedimentos.
Agora eu sei que a configuração não é ideal, e eu preferiria ter um disco separado para o sistema ESXi, mas não acho que isso deva ser a causa dessas taxas de transferência extremamente baixas.
Eu procurei informações sobre o processo de flush e, até onde sei, ele basicamente grava dados da memória nos discos reais, mas não encontrei ninguém dizendo que eles experimentaram esse nível de flush. taxas de transferência lentas. O sistema ainda não está em produção e a CPU praticamente não está funcionando, e tem cerca de 100 GB de memória livre para usar quando os procedimentos de cópia são executados.
Alguém tem alguma ideia do que tentar? Eu vi resultados semelhantes em um sistema diferente que é basicamente configurado da mesma maneira, exceto em um hardware completamente diferente (um pouco menor). Eu também tenho um terceiro sistema executando o CentOS 5 e ext3 no LVM, que não tem nenhum problema como este.
EDIT 1:
Eu percebo agora tinha lembrado incorretamente, ea partição do sistema também é lvm, mas ainda um volume separado da partição de dados
[root@server /]# mount
/dev/mapper/vg1-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg1-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vg_8tb-lv_8tb on /datavolume type ext4 (rw,nobarrier)
[root@server /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_1-lv_root<br>
50G 9.7G 37G 21% /
tmpfs 91G 0 91G 0% /dev/shm
/dev/sda1 477M 52M 400M 12% /boot
/dev/mapper/vg_1-lv_home
45G 52M 43G 1% /home
/dev/mapper/vg_8tb-lv_8tb
7.9T 439G 7.1T 6% /datavolume
Atualização 1: Eu tentei aumentar o dirty_ratio até 90, e ainda não vi melhorias. Eu também tentei montá-lo com -o nobarriers, e ainda o mesmo resultado
Atualização 2:
Desculpe a todos que estão tentando me ajudar sobre a confusão, agora que eu mesmo já vi, o hardware é na verdade um HP Proliant 380 G7, não sei se isso faz alguma diferença.
Eu também dei uma olhada na configuração do RAID, e parece que estamos usando um controlador RAID P410, e quando eu estou iniciando o gerenciamento do RAID, ele diz
HP Smart array (I think) P410 "SOMETHING", with 0MB in parenthesis
Suponho que isso possa significar que temos 0MB em cache de gravação?
Estou um pouco fora da minha profundidade aqui quando se trata de hardware, você pode adicionar um módulo de cache de gravação (?) para este controlador RAID se um já não existir?
Ou você precisa de um novo controlador / mover para uma SAN?
Como posso saber se tem um cache de gravação, mas talvez a bateria esteja esgotada?
Atualização 3:
Graças às suas sugestões e mais algumas pesquisas, vou agora tentar instalar o arquivo VH do driver de matriz inteligente da HP no ESXi, e espero obter uma imagem mais clara do que tenho. Eu também encontrei a opção no BIOS do sistema para ativar o cache da unidade, então eu posso ter um último recurso, caso aconteça que não temos cache de gravação no controlador.
Atualização 4 (resolvida):
Obrigado a todos que sugeriram soluções e, sim, descobriu-se que não havia nenhum módulo de cache presente no controlador de disco.
Para qualquer um que tenha problemas semelhantes, instalei o utilitário hpssacli VIB para ESXi, e poderia com a seguinte saída confirmar o que havia sido sugerido nas respostas.
Placa de Cache Presente: Falso
Smart Array P410i in Slot 0 (Embedded)
Bus Interface: PCI
Slot: 0
Serial Number:
Controller Status: OK
Hardware Revision: C
Firmware Version: 6.62
Rebuild Priority: Medium
Surface Scan Delay: 15 secs
Surface Scan Mode: Idle
Parallel Surface Scan Supported: No
Wait for Cache Room: Disabled
Surface Analysis Inconsistency Notification: Disabled
Post Prompt Timeout: 0 secs
Cache Board Present: False
Drive Write Cache: Disabled
Total Cache Size: 0 MB
SATA NCQ Supported: True
Number of Ports: 2 Internal only
Driver Name: HP HPSA
Driver Version: 5.5.0
PCI Address (Domain:Bus:Device.Function): 0000:05:00.0
Host Serial Number:
Sanitize Erase Supported: False
Primary Boot Volume: logicaldrive 1
Secondary Boot Volume: None