“E / S de divisão” em uma VM Linux, alinhamento de disco

4

Estou tentando descobrir se há alguma maneira de saber se um sistema está sendo afetado negativamente pelo desalinhamento do disco - ou seja, quando eu faço uma operação de E / S de disco, ele realmente precisa solicitar blocos extras na parte de trás end storage (estamos usando uma SAN) porque o bloco de dados solicitado realmente mora em vários blocos no disco real.

Esse problema supostamente afeta ainda mais as VMs, pois os discos são abstraídos para que os blocos não sejam alinhados devido a deslocamentos impróprios do setor, fazendo com que IOPS adicionais sejam usados ao acessar o armazenamento de back-end da VM.

De qualquer forma, eu tenho procurado a saída do iostat, e parece que há dados lá que podem me dar uma pista disso, mas eu pareço ser lento em raciocinar através disso. Existe alguma pista para indicar com o iostat (ou alguma outra coisa) que a máquina pode estar realizando mais I / Os de disco que seja ideal?

(Eu não estou convencido de que o alinhamento do disco vale a pena o esforço para investigar / se preocupar, mas eu adoraria algumas opiniões sobre o assunto!)

    
por dmkmills 04.02.2011 / 00:41

1 resposta

3

O alinhamento de disco costumava ser bastante trivial para descobrir. Todas as faixas tinham o mesmo número de setores do mesmo tamanho. Unidades de alta densidade modernas usam números variáveis de setores por faixa, mantendo aproximadamente a mesma densidade de bits no prato. Eles ainda relatam as informações de dimensionamento antigas de cilindros, trilhas e setores. A geometria real do setor varia dependendo de onde o disco está sendo gravado.

O endereçamento real geralmente é feito no formato LBA (Logical Block Addressing). E realmente não se importa com a geometria do disco. É provável que as E / Ss divididas sejam feitas pelo software de controle de discos. Você pode obter E / Ss divididas onde você não as espera, e não onde você as espera.

Coloque esses discos em uma SAN e compartilhe-os, e a geometria fica oculta atrás de outra camada de geometria. Nesse momento, eu nem tentaria arriscar um palpite sobre quais E / Ss foram divididos quando. Eu estaria mais interessado na visão das SANs que provavelmente distribuiria os dados em algum tamanho, o que é uma potência de 2, provavelmente em algum lugar entre 4Kb e 4Mb. AE / S nesses limites será dividida em discos. Seu administrador da SAN deve poder informar o tamanho da alocação da SAN. Se o tamanho da alocação for pequeno, pode ser uma vantagem alinhar suas partições e tamanhos de bloco com os da SAN.

Eu geralmente vejo sar output para ver se o Disk I / O está se tornando um problema. Você verá o tamanho médio da fila e os tempos de serviço aumentando quando você tem um problema de E / S. Nesse ponto, você precisa começar a analisar por que a E / S é um problema. Com uma SAN, isso pode ocorrer em vários lugares. Existem várias soluções. Para máquinas virtuais, eu gostaria de separar discos SAN para cada máquina. Eles podem ser alocados como discos brutos para as máquinas virtuais em vez de um disco virtual em formatos de arquivo como o VMDK.

    
por 07.02.2011 / 00:12