Armazenamento Central sobre iSCSI

Marsupillami

Power Member
Boa tarde

Na empresa em que trabalho, estamos a considerar avançar para armazenamento central como forma de a médio / longo prazo reduzir o custo e tempo de implementação de servidores web. Os objectivos principais são: Segurança de Dados, Disponibilidade e Performance. Toda a solução será implementada em datacenter, no qual dispomos de alguns bastidores, e alguma liberdade de movimento. A considerar será o custo de implementação, pelo que se pretende utilizar a rede TCP/IP vulgar sem ter de recorrer a soluções mais específicas como Fibre Channel, Infiniband ou 10Gbe. Assim, a solução mais lógica aparenta ser o iSCSI sobre Gigabit.

Estou a considerar utilizar o seguinte equipamento:
- Switch HP Procurve 2824 (24 portas Gigabit, Layer 2, suporta Jumbo Frames e VLAN´s), como switch para a rede privada sobre o qual funcionará o iSCSI.
- Como target iSCSI estava a pensar no HP DL320s, já que tem um custo bastante "apetecível", ocupa apenas 2U´s, suporta 12 discos SAS/SATA, tem fonte redundante e funciona sobre single CPU. Um Quad Core e 8GB de RAM com ECC deverá ser suficiente para as funções que irá desempenhar.
- Como discos rígidos enveredaríamos por 12 discos SAS de 15000 RPM´s. Possivelmente optaríamos por RAID10 de forma a descarregar a controladora do cálculo da paridade. A quantidade de espaço não é de todo importante, pelo que os cerca de 800Gb que conseguiríamos em RAID10 deverão ser suficientes.
- Como iniciadores, seriam máquinas diversas, mas existiria o cuidado de utilizar adaptadores de rede com TOE (TCP Offloading). Pretende-se com tudo isto implementar um sistema completamente diskless, utilizando capacidades de remote boot a partir do target.

O problema que encontro é sobretudo ao nível de rede. Até que ponto uma implementação sobre Gigabit será suficiente para, por exemplo, 15 máquinas que não requerem muito mais que a largura de banda conseguida em RAID1 com discos SATA de 10000RPM. Iriamos utilizar a capacidade de "Link Aggregation" existente no Switch, para agregar dois links Gigabit e assim aumentar um pouco mais a capacidade do target de fornecer dados para a rede, no entanto, mesmo assim, até que ponto seria suficiente? A considerar seria aumentar a quantidade de links agregados, utilizando, por exemplo aqueles NIC´s da Intel com quatro portas.

Estive a fazer uns testes em casa, com uma Asus P5K Premium e um portatil HP, criei uma array RAID0 no Windows Vista do desktop e instalei o StarWind para fornecer capacidade de target. Target e Iniciador estavam ligados por Gigabit directamente, sem switch. Utilizando o HDTach no desktop, a performance rondava os 100MB/s, no entanto no iniciador, conseguia apenas 30MB/s, evidenciando aqui um Bottleneck. De referir que durante os testes, o CPU Load aumentou bastante, certamente devido à controladora de rede não suportar TOE. Vou aproveitar amanhã para testar nuns servidores que temos no escritório, e determinar se será exequível quando dispomos de TOE nos NIC´s.

De qualquer das formas, alguém neste fórum tem experiência com este tipo de redes que implicam o posicionamento do armazenamento fora da máquina? Seja NAS, SAN, etc... que me possa talvez transmitir a sua opinião pessoal e experiências? É que abdicar de 10 ou 15 mil euros para fazer experiências e eventualmente chegar à conclusão que não é viável, não é propriamente uma boa ideia.

Obrigado desde já.
 
Para começar... pq usar um sistema e não uma SAN low end tipo uma MSA?
Claro que se quiseres tu construir uma SAN não recomendo NADA utilizarem windows como SO de base, e de preferência teras de fazer balanceamento entre duas ou mais SAN's.
Lembra-te sempre do re-sync a ser efectuado por uma interface de backplane e não pelos inter-connects que servem os sistemas.
Em relação ao diskless recomendo-te ter um servidor de bootp para SO dos clients e não efectuares boot directamente da SAN.

Em relação á rede, gigabit é suficiente só que o que te atrofia a rede é a latência das ligações em cobre. por isso é que normalmente em ambientes SAN high-end é utilizada fibra....

É questão de experimentares.... se tiveres duvidas apita ou manda o teu msn por mail :009:
 
xupetas, desde já agradeço a tua resposta.

O problema em adoptar uma SAN seria exactamente a infra-estrutura em Fibre Channel, o que me iria obrigar a utilizar um adaptador Fibre Channel em cada servidor que fizesse uso da SAN. Obviamente tem vantagens, mas a rede em cobre é bastante mais acessível, e o tipo de aplicação que iria dar não justifica o gasto inerente à utilização de SAN´s. Daí ver apenas o iSCSI como solução, ou então, simplesmente manter o storage "espalhado" pelos servidores.
 
em todo o caso o load que iras ter nao deverá ser algo absurdo. que irás correr em cima dos volumes exportados?
lembra-te sempre que mais importante que o método de transporte será sempre a fiabilidade e a performance da SAN... afasta-te de coisas windows e afins...
 
Correrá sobretudo software relacionado com alojamentos web.
- Web Servers
- Mail Servers
- DB Servers
...

Ou seja, software que exige bastantes seeks, e não tanto leituras sequenciais com quantidades muito elevadas de MB. Este tipo de solução ser-me-ia especialmente útil no caso das bases de dados, mas o load causado por estas também deve ser bastante substancial.

O software sobre o qual correria a SAN ainda não decidi. Queria primeiro saber se é viável ou não do ponto do hardware, para depois, caso fosse, começar a pensar em software.

Por acaso vejo muitas soluções bastante bem referenciadas baseadas em Windows 2003 Server. Desde o FalconStor iSCSI Storage Server (julgo que também tem versão para Linux), SANMelody, e até o próprio Windows 2003 Storage Server que se não me engano é uma espécie de integração do WinTarget com o Windows 2003 Server comercializado apenas para HP e Dell. Em Linux, gostei bastante do Open-E, que dispõe de um sistema operativo próprio que poderá correr através de uma Pen-Drive.
 
cuidado com os DB servers em iscsi por cobre...

em relacao ao SAN em si... sempre em linux/unix.... nunca em windows.
a maior parte das distros suporta iscsi-target of the box.... e a estabilidade ....

outra coisa lembra-te de por sempre... se a SAN cair... cai tudo... pensa em redundância....
 
Obrigado pela ajuda xupetas.

Sim, provavelmente não será boa ideia avançar para armazenamento central sobre rede de cobre. Estive a procurar um pouco e parece que a SoftLayer tentou o mesmo há pouco tempo atrás e as coisas não correram muito bem, tendo mesmo abandonado esse projecto e voltando ao alojamento local, deixando a NAS/SAN apenas para alojamento de backups e ficheiros desse género, onde as latências não são tão importantes.

Vou avaliar os custos de integração de uma rede em fibra óptica, de forma a determinar se será compatível com o orçamento disponibilizado para este projecto.

Uma vez mais, um grande obrigado pela tua disponibilidade ;)
 
Um pequeno update. Realizei uns testes de forma a averiguar o real impacto de um NIC com TOE, quando comparado com um NIC sem TOE.

Montei 4 discos SATA de 7200RPM num servidor Asus RS120-E4, cujos NICs dispõe de TOE. Como CPU utilizei um C2D E6400 e 2GB de RAM. Instalei o Windows Vista e o Starwind como software responsável por criar os target iSCSI. Os 4 discos estavam configurados através da controladora Onboard (Intel ICH7R) em RAID0. Criei dois targets, um em disco, de 80GB, e um em RAM, de 512MB. A partir do portátil corri alguns testes utilizando o Sandra e o HDTach para ter alguns resultados, enquanto analisava o load nos CPU´s do servidor. As duas máquinas estavam ligadas directamente por Gigabit. Aqui ficam alguns resultados.

[SANDRA - Physical Disks]

Local:
sandra_local.png


HD´s através de iSCSI:
sandra_hds.png


RAM através de iSCSI:
sandra_ram.png


[SANDRA - File System]

Local:
sandra_local_read.png


HD´s através de iSCSI:
sandra_read_hds.png


RAM através de iSCSI:
sandra_read_ram.png


Os testes ao RAMDrive foram colocados de forma a determinar a real influência e capacidade do link e do protocolo iSCSI, já que beneficia de um seek time diminuto e uma largura de banda enormemente superior aos buses por onde passa. Os benchmarks realizados ao RAMDrive evidenciam bem o limite do Gigabit. Provavelmente juntando dois links notar-se-ia um aumento bastante consideravel no throughoutput deste teste. Permitiram-me também olhar um pouco para os efeitos no load do CPU, que não foram muito elevados (nunca passou dos 40% nos dois CPU´s estando grande parte do tempo abaixo dos 5%.

A grande diferença nota-se na largura de banda conseguida entre o local e o remoto, bem como os tempos de acesso que, incompreensivelmente, são consideravelmente baixos quando se corria através de iSCSI. De frisar que mesmo no HDTach, os tempos de acesso eram inferiores quando corria através de iSCSI, quando comparado com o teste a correr localmente.

Um factor que poderá estar a influenciar é a dimensão da partição. Localmente estava a correr cerca de 1.2TB, enquanto o target iSCSI para o disco era de apenas 80GB e o da RAM de 512MB.

Conclusão: Nota-se uma enorme diferença quando fiz o teste entre uma Asus P5K Premium sobre o seu controlador Realtek que não dispõe de TOE, e agora com uma board de servidor Asus sobre o seu NIC Broadcom que dispõe de TOE. Na P5K o load no CPU chegou praticamente a 80% tendo mesmo tocado nos 100. Neste servidor, raramente passou dos 5% (tendo como máximos 40%) num CPU inferior.
 
Estive agora a testar com dois portateis a fazer os benchmarks em simultâneo, de forma a ver se o load nos cpu´s subia astronomicamente. Subiu um pouco, a rondar os 15% com máximos nos 50%. Os resultados foram satisfatorios, num ficou-se pelos 75MB/s noutro pelos 60MB/s. O tempo de acesso obviamente subiu bastante, 8ms num e 10ms noutro.

Vou testar o Open-E a ver como se comporta. Pareceu-me um produto bastante interessante, e tem base em BSD.
 
Aqui ficam resultados com o Open-E. Por questões de licenciamento, tive de retirar um dos discos, já que o máximo suportado pelo Open-E Free é 1TB.

[SANDRA - Physical Disks]

HD´s através de iSCSI:
sandra_opene.png


[SANDRA - File System]

HD´s através de iSCSI:
sandra_opene_read.png


Começa-me a deliciar... se 3/4 SATA´s de 7200RPM fazem isto, 12 SAS de 15K devem ter resultados bastante bons e devem suster bastante bem em ambientes multi-user.
 
Back
Topo