Por que o tema deste artigo é a atualização do subsistema de discoÉ claro que, em primeiro lugar, você geralmente precisa:
- Aumentar a memória RAM. Essa é uma medida tão óbvia que eu nem considerei necessário escrever sobre isso no artigo principal.
- Instalar processadores adicionais ou substituir ambos os processadores por versões de alto desempenho que sejam suportadas pelos soquetes do servidor.
Para servidores antigos, tanto a memória quanto os processadores podem ser encontrados a preços muito baixos.
Em determinado momento, todo proprietário de um servidor se depara com a questão — atualizar ou comprar um servidor novo.
Uma vez que o preço de um servidor novo pode atingir milhões de rublos, muitos optam pelo caminho da atualização.
Para uma atualização bem-sucedida, é muito importante utilizar compromissos, para que, por um custo insignificante (em relação ao preço de um servidor novo), possamos obter um ganho significativo de desempenho.
O artigo apresenta uma lista de SSDs servidores PCI-E 2.0 x8, que estão muito mais baratos agora, mencionando controladores RAID que suportam cache SSD e testando SSD SATA III na interface SATA II.
A maneira mais óbvia de atualizar o subsistema de disco é a migração de HDD para SSD. Isso é válido tanto para laptops quanto para servidores. Nos servidores, a única diferença é que o SSD pode ser facilmente configurado em RAID.
No entanto, há nuances relacionadas ao fato de que pode não haver portas SATA III em um servidor antigo, e nesse caso será necessário substituir ou instalar um controlador correspondente.
Claro que também existem métodos intermediários.
Cache em SSD.
De maneira geral, esse método é bastante adequado para bancos de dados, 1C, ou qualquer acesso aleatório. A velocidade realmente aumenta. Para arquivos enormes e videovigilância, esse método é inútil.
Controladores RAID LSI (IBM, DELL, CISCO, Fujitsu)
A partir da série 92xx, a LSI possui a tecnologia CacheCade 2.0, que permite usar quase qualquer SSD SATA como cache para o array RAID. Tanto para leitura quanto para gravação. E até mesmo criar um espelho a partir de SSDs de cache.
Com controladores com marca, as coisas são mais complicadas. Isso se aplica especialmente à IBM. As chaves e SSDs para CacheCade terão que ser comprados da IBM por preços exorbitantes, então é mais simples trocar o controlador por um LSI e comprar uma chave de hardware a um preço mais acessível. As chaves de software custam consideravelmente mais do que as de hardware.
Controladores RAID Adaptec
Os controladores Adaptec possuem a tecnologia MaxCache, que também permite usar SSDs como cache. Estamos interessados nas versões dos controladores que terminam com a letra Q.
Controladores Q conseguem utilizar quase qualquer SSD, e não apenas os SSDs fornecidos pela Adaptec.
- A partir do 5xxx, todos os controladores têm suporte para RAID Híbrido. A essência dessa tecnologia é que a leitura sempre é feita a partir do SSD, quando existe um espelho em um dos discos que contém o SSD.
- 5xxxQ, por exemplo, 5805ZQ. Esses controladores suportam o MaxCache 1.0. Apenas cache de leitura.
- 6xxQ, por exemplo, 6805Q. MaxCache 2.0. Cache de leitura e gravação.
- 7xxQ, por exemplo, 7805Q. MaxCache 3.0. Cache de leitura e gravação.
- 8xxQ quase não faz sentido usar para upgrade devido aos preços altos.
Tecnologias de software para cache em SSD
Não vou abordar essas tecnologias. Quase todos os sistemas operacionais atualmente as suportam. Eu me lembro que ao usar btrfs, ele automaticamente redireciona os pedidos de leitura para o dispositivo com a fila mais curta — SSD.
SSD SATA III em uma interface SATA II
Como nem sempre há possibilidade e dinheiro para um novo controlador, surge a questão de quão bem os SSDs SATA III funcionam na interface desatualizada SATA II.
Vamos realizar um pequeno teste. O sujeito do teste será um SSD SATA III Intel S3710 de 400GB.
Leitura aleatória, iops
Latência média de leitura, mS
Gravação aleatória, iops
Latência média de gravação, mS
Leitura linear, MB/s
Gravação linear, MB/s
SATA II
21241
2
13580
4
282
235
SATA III
68073
0.468
61392
0.52
514
462
Comandos usados para testar a velocidade
fio --name LinRead --eta-newline=5s --filename=/dev/sda --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name LinWrite --eta-newline=5s --filename=/dev/sda --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name RandRead --eta-newline=5s --filename=/dev/sda --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
fio --name RandWrite --eta-newline=5s --filename=/dev/sda --rw=randwrite --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
Como se pode ver, a diferença em termos de velocidade linear, IOPS e latências é bastante significativa, portanto, faz sentido usar apenas a interface SATA III; caso contrário, é necessário usar um controlador.
Para ser justo, posso dizer que, em a diferença na velocidade de leitura e gravação aleatória foi insignificante. É possível que a grande diferença em IOPS entre SATA II e SATA III tenha ocorrido porque eu tinha um controlador SATA II bastante problemático ou um driver com alguns bugs.
No entanto, o fato é que é preciso verificar a velocidade do SATA II — talvez você tenha um controlador tão lento quanto. Nesse caso, é obrigatória a transição para um controlador SATA III.
SSD PCIe na linha PCI-e 2.0 ou 1.0
Como sabemos, os SSDs mais rápidos são os PCI-e NVMe, que não são limitados pelos protocolos SAS ou SATA.
No entanto, ao instalar SSDs PCI-e modernos, é necessário considerar que a maioria deles utiliza apenas 4 linhas PCI-e, geralmente PCI-e 3.0 ou 3.1.
Agora vejamos a tabela de velocidades da linha PCI-e.
Capacidade de transferência PCI Express, GB/s
Ano
de lançamento
Versão
PCI Express
Codificação
Velocidade
transferência
Capacidade de transferência em x linhas
×4
×8
×16
2002
1.0
8b/10b
0.50 GB/s
1.0 GB/s
2.0 GB/s
4.0 GB/s
2007
2.0
8b/10b
1.0 GB/s
2.0 GB/s
4.0 GB/s
8.0 GB/s
2010
3.0
128b/130b
1.97 GB/s
3.94 GB/s
7.88 GB/s
15.8 GB/s
Ao instalar um SSD PCI 3.0 x4 na linha PCI-e 2.0, ele funcionará com o mesmo número de linhas, mas a uma velocidade significativamente menor. O problema é que as velocidades lineares dos SSDs PCI-e modernos superam a capacidade de transferência da linha PCI-e 2.0 e ainda mais da PCI-e 1.0.
SSD M.2 e adaptador PCI-e
Existem boas opções de upgrade, como comprar um adaptador por 10 dólares e instalar um SSD M.2 no servidor, mas novamente para SSDs de boa qualidade haverá uma redução na velocidade (especialmente na PCI-e 1.0), e os SSDs M.2 nem sempre são projetados para cargas de servidor: com alta resistência ao desgaste, proteção de energia e estabilidade nas características de velocidade devido ao preenchimento do cache SLC em modelos mais baratos.
Assim, esse método pode ser adequado apenas para um servidor com linha PCI-e 2.0 e carregando trabalho não crítico.
SSD PCI-E 2.0 x8
O upgrade mais economicamente viável é o uso de SSDs PCI-E 2.0 x8 para servidores com linha PCI-e 1.0 (capacidade de até 2 GB/s) e PCI-e 2.0 (até 4 GB/s).
Atualmente, é possível comprar SSDs desse tipo para servidor de forma bastante barata, tanto em diversos marketplaces quanto em leilões online, incluindo na Rússia.
Eu compilei uma tabela de SSDs que estão moralmente obsoletos, mas que podem dar um ótimo impulso ao seu antigo servidor. No final da tabela, adicionei alguns SSDs com interface PCI-E 3.0 x8. Quem sabe você consegue encontrá-los a um preço razoável.
Nome
TB
PBW
PCI-E
4k read iops, K
4k write iops, K
leitura, MB/s
escrita, MB/s
2.4
32.5
2.0 x8
480
490
3000
2500
1.3
4
2.0 x8
225
345
2800
1300
1.3
16
2.0 x8
235
375
2700
1700
1.6
5.5
2.0 x8
270
375
2800
1700
3.2
11
2.0 x8
345
385
2700
2200
3.2
11
2.0 x8
345
385
2800
2200
2.6
32
2.0 x8
350
385
2700
2200
1,6
8,76
2.0 x8
395
270
1550
1100
3,2
17,52
2.0 x8
770
230
3100
2200
2,2
2.0 x8
340
110
2700
1000
2,2
33
2.0 x8
350
103
2700
1000
4,8
10.1
2.0 x8
269
51
2600
900
2,2
7.1
2.0 x8
531
59
2700
1400
Dell Micron P420M
1.4
9.2
2.0 x8
750
95
3300
630
1.4
9.2
2.0 x8
750
95
3300
630
1.6
25.10
3.0 x8
1200
200
6170
2200
3,2
17,52
3.0 x8
1200
200
6170
2200
3,2
17,5
3.0 x8
850
80
4500
2600
3,2
2,78
3.0 x8
1000
180
6800
6000
3.2
29
3.0 x8
750
120
5500
1800
3.2
29
3.0 x8
1000
120
6000
2000
3.2
29
3.0 x8
1000
180
6200
2600
3.2
18
3.0 x8
980
180
6200
2600
Entre esses SSDs, os Fusion ioMemory se destacam. O diretor científico era . Depois, essa empresa foi comprada pela SanDisk por 1,2 bilhões de dólares. Na época, custavam a partir de $50.000 cada. Atualmente, podem ser adquiridos por algumas centenas de dólares em estado novo, com capacidade a partir de 1TB e mais.
Se você observar a tabela, verá que eles têm um número bastante alto de IOPS de gravação, praticamente igual ao número de IOPS de leitura. Considerando seu preço atual, na minha opinião, vale a pena prestar atenção nesses SSDs.
No entanto, eles têm algumas particularidades:
- Eles não podem ser inicializáveis.
- Um driver é necessário para utilização. Existem drivers praticamente para tudo, mas para as versões mais recentes do Linux, será necessário compilar.
- O tamanho de setor ideal para eles é de 4096 bytes. (512 também é suportado)
- O driver, no pior cenário, pode consumir uma quantidade considerável de RAM (com tamanho de setor de 512 bytes).
- O desempenho depende da velocidade do processador, portanto, tecnologias de economia de energia devem ser desativadas. Isso é tanto uma vantagem quanto uma desvantagem, já que com um processador potente, o dispositivo pode operar até mais rápido do que especificado nas especificações.
- Requer um bom resfriamento. Isso não deve ser um problema para servidores.
- Não é recomendado para ESXi, pois o ESXi prefere discos com setor 512N, o que pode levar a um grande consumo de memória pelo driver.
- Versões de marca desses SSDs geralmente não são suportadas por fornecedores até o nível do último driver da SanDisk (março de 2019).
Eu realizei testes com o Fusion ioMemory em comparação com um SSD servidor Intel P3700 PCI-E 3.0 x8 bastante moderno (o último custa cerca de 4 vezes mais do que o Fusion de capacidade similar). Além disso, também é possível ver o quanto a velocidade é reduzida devido à conexão x4.
Fusion PX600 1.3TB PCI-E 2.0 x8
Intel P3700 1.6TB PCI-E 3.0 x4


Sim, a velocidade linear de leitura do Intel P3700 é claramente limitada. No documento especifica que deve ser 2800 MB/s, mas estamos obtendo apenas 1469 MB/s. No entanto, de forma geral, pode-se afirmar que, com um barramento PCI-e 2.0, é possível utilizar SSDs PCI-E 3.0 x4, se consegui-los a um preço razoável.
Como resultado, obtemos um serviço de "monitoramento como serviço", automatizado na linha de produção de integração contínua. O desenvolvedor ou testador precisa apenas definir a lista de métricas em um arquivo JSON, e tudo o mais acontece automaticamente. Obtemos um controle de qualidade transparente dos lançamentos: todas as notificações sobre desempenho, consumo de recursos ou regressões arquitetônicas.
O subsistema de disco do servidor antigo com barramento PCI-E 1.0 ou 2.0 pode ser melhorado utilizando SSDs que conseguem aproveitar 8 linhas PCI-E, entregando uma capacidade de até 4GB/s (PCI-E 2.0) ou 2GB/s (PCI-E 1.0). A opção mais econômica é usar SSDs PCI-E 2.0 que já estão um pouco obsoletos.
Alternativas de compromisso também são simples de implementar, como a compra da chave CacheCade para controladores LSI ou a troca do controlador Adaptec por uma versão Q.
E uma maneira completamente simples é comprar um controlador RAID SATA III para que os SSDs funcionem em plena velocidade, aproveitando todo o potencial deles.
Fonte: habr.com
