Atualização do subsistema de disco de um servidor antigo com barramento PCIe 1.0 — 2.0

Atualização do subsistema de disco de um servidor antigo com barramento PCIe 1.0 — 2.0Por que o tema deste artigo é a atualização do subsistema de discoÉ claro que, em primeiro lugar, você geralmente precisa:

  1. Aumentar a memória RAM. Essa é uma medida tão óbvia que eu nem considerei necessário escrever sobre isso no artigo principal.
  2. 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.

Artigo sobre cache em SSD no Habré (controladores e SO).

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 outros experimentos, 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

Fusion-io ioDrive II DUO MLC
2.4
32.5
2.0 x8
480
490
3000
2500

SANDISK FUSION IOMEMORY SX350-1300
1.3
4
2.0 x8
225
345
2800
1300

SANDISK FUSION IOMEMORY PX600-1300
1.3
16
2.0 x8
235
375
2700
1700

SANDISK FUSION IOMEMORY SX350-1600
1.6
5.5
2.0 x8
270
375
2800
1700

SanDisk Fusion ioMemory SX300-3200
3.2
11
2.0 x8
345
385
2700
2200

SanDisk Fusion ioMemory SX350-3200
3.2
11
2.0 x8
345
385
2800
2200

SANDISK FUSION IOMEMORY PX600
2.6
32
2.0 x8
350
385
2700
2200

Huawei ES3000 V2
1,6
8,76
2.0 x8
395
270
1550
1100

Huawei ES3000 V2
3,2
17,52
2.0 x8
770
230
3100
2200

EMC XtremSF
2,2
 
2.0 x8
340
110
2700
1000

HGST Virident FlashMAX II
2,2
33
2.0 x8
350
103
2700
1000

HGST Virident SSD FlashMAX II
4,8
10.1
2.0 x8
269
51
2600
900

HGST Virident FlashMAX III
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

Micron P420M
1.4
9.2
2.0 x8
750
95
3300
630

HGST SN260
1.6
25.10
3.0 x8
1200
200
6170
2200

HGST SN260
3,2
17,52
3.0 x8
1200
200
6170
2200

Intel P3608
3,2
17,5
3.0 x8
850
80
4500
2600

Kingston DCP1000
3,2
2,78
3.0 x8
1000
180
6800
6000

Oracle F320
3.2
29
3.0 x8
750
120
5500
1800

Samsung PM1725
3.2
29
3.0 x8
1000
120
6000
2000

Samsung PM1725a
3.2
29
3.0 x8
1000
180
6200
2600

Samsung PM1725b
3.2
18
3.0 x8
980
180
6200
2600

Atualização do subsistema de disco de um servidor antigo com barramento PCIe 1.0 — 2.0Entre esses SSDs, os Fusion ioMemory se destacam. O diretor científico Fusion era Steve Wozniak. 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:

  1. Eles não podem ser inicializáveis.
  2. 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.
  3. O tamanho de setor ideal para eles é de 4096 bytes. (512 também é suportado)
  4. O driver, no pior cenário, pode consumir uma quantidade considerável de RAM (com tamanho de setor de 512 bytes).
  5. 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.
  6. Requer um bom resfriamento. Isso não deve ser um problema para servidores.
  7. 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.
  8. 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

Atualização do subsistema de disco de um servidor antigo com barramento PCIe 1.0 — 2.0
Atualização do subsistema de disco de um servidor antigo com barramento PCIe 1.0 — 2.0

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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster