Qual é a melhor maneira de explicar problemas de armazenamento para desenvolvedores e outros usuários


40

Quando o armazenamento do servidor fica baixo, os desenvolvedores começam a gemer: "Posso obter uma unidade de 1 TB no Walmart por 100 dólares, qual é o problema".

Como as complexidades do armazenamento podem ser explicadas aos desenvolvedores para que eles entendam por que uma unidade de 1 TB do Walmart simplesmente não funciona.

ps Sou desenvolvedor e também quero saber:)


5
Ou "Posso obter armazenamento de US $ 0,15 por gigabyte no Amazon S3, qual é o problema?"
Chris Upchurch #

@ Chris Upchurch: Mas o problema é que talvez você precise escrever um relatório sobre a escolha do Amazon S3, do Google App Engine ou ... Puxa, isso pode ser muito bom. ;)
dance2die

6
Eu posso mudar isso para você. Meu trabalho está gerando receita e preciso de um pouco mais de armazenamento para fazer meu trabalho com eficiência. É um investimento sólido. Por que você não pode simplesmente comprar mais armazenamento?

11
@ Chris: É claro que sempre depende da situação em questão, mas eu descobri através da (cara) experiência que o uso do Amazon S3 para armazenamento de linha de base não é exatamente econômico. O S3 é muito melhor usado para lidar com picos de tráfego, para que você não precise investir em um sistema capaz de lidar com os raros cenários de pior caso - mas, se você começar a usá-lo para operações do dia a dia, poderá achar que está muito melhor custo de pagar o capital ...
Mihai Limbăşan

Respostas:


53

Algumas verdades domésticas sobre armazenamento, ou por que o armazenamento corporativo é tão caro?

Os discos rígidos de consumo oferecem grandes volumes de espaço, de modo que mesmo o usuário mais exigente da mídia de streaming * tosse * pode comprar o suficiente para armazenar uma coleção de vários terabytes. De fato, a capacidade do disco vem crescendo mais rapidamente do que o transistor conta com silício há algumas décadas.

O armazenamento "corporativo" é um problema um pouco mais complexo, pois os dados têm requisitos de desempenho e integridade que determinam uma abordagem um pouco mais pesada. Os dados devem ter alguma garantia de disponibilidade no caso de falhas de hardware e podem ser compartilhados com um grande número de usuários, o que gerará muito mais solicitações de leitura / gravação do que um único usuário.

As soluções técnicas para esse problema podem ser muitas vezes mais caras por gigabyte do que as soluções de armazenamento do consumidor. Eles também exigem manutenção física; os backups devem ser feitos e frequentemente armazenados fora do local, para que um incêndio não destrua os dados. Esse processo adiciona custos contínuos.

atuação

No seu consumidor de 1 TB ou até mesmo na unidade near-line corporativa, você tem apenas uma cabeça. O disco gira a 7200 RPM, ou 120 rotações por segundo. Isso significa que você pode obter no máximo 120 operações de E / S de acesso aleatório por segundo na teoria * e um pouco menos na prática. Portanto, copiar um arquivo grande em um único volume de 1 TB é relativamente lento.

Em uma matriz de disco com discos de 14 x 72 GB, você tem 14 discos sobre heads-up (digamos) 15.000 RPM ou aproximadamente 250 rotações por segundo. Isso fornece um máximo teórico de 3.500 operações aleatórias de E / S por segundo * (novamente, um pouco menos na prática). Todas as outras coisas iguais à cópia de um arquivo serão muitas, muitas vezes mais rápidas.

*Você pode obter mais de um acesso aleatório por rotação do disco se a geometria das leituras permitir que a unidade mova as cabeças e leia um setor que estava disponível dentro de uma revolução do disco. Se os acessos ao disco foram amplamente dispersos, você provavelmente terá em média menos de um. Onde uma matriz de disco formatada em um layout listrado (veja abaixo), você obtém no máximo uma faixa de leitura por rotação do disco na maioria das circunstâncias e (dependendo do controlador RAID) possivelmente menos que uma em média.

A unidade de 7200 RPM 1 TB provavelmente será razoavelmente rápida nas E / S sequenciais. Matrizes de disco formatadas em um esquema distribuído (RAID-0, RAID-5, RAID-10 etc.) geralmente podem ler no máximo uma faixa por rotação do disco. Com uma faixa de 64K, podemos ler 64Kx250 = 16MB ou mais de dados por segundo em um disco de 15.000 RPM. Isso fornece uma taxa de transferência seqüencial de cerca de 220 MB por segundo em uma matriz de 14 discos, o que não é muito mais rápido no papel do que os 150 MB / s ou mais citados para um disco SATA de 1 TB moderno.

Para transmissão de vídeo (por exemplo), uma matriz de 4 discos SATA em um RAID-0 com um tamanho de faixa grande (alguns controladores RAID suportam tamanhos de faixa de até 1 MB) possuem bastante rendimento sequencial. Teoricamente, este exemplo pode transmitir cerca de 480 MB / s, o que é confortável o suficiente para fazer edição de vídeo HD não compactada em tempo real. Assim, os proprietários de Mac Pros e hardware semelhante podem executar tarefas de composição de vídeo em HD que exigiriam uma máquina com uma matriz de fibra de conexão direta apenas alguns anos atrás.

O benefício real de uma matriz de disco está no trabalho de banco de dados, caracterizado por um grande número de solicitações de E / S pequenas e dispersas. Nesse tipo de carga de trabalho, o desempenho é limitado pela latência física de bits de metal no disco, girando e girando e voltando e voltando. Essa métrica é conhecida como IOPS (operações de E / S por segundo). Quanto mais discos físicos você tiver - independentemente da capacidade - mais IOPS poderá teoricamente fazer. Mais IOPS significa mais transações por segundo.

Integridade de dados

Além disso, a maioria das configurações de RAID fornece redundância de dados - o que requer mais de um disco físico por definição. A combinação de um esquema de armazenamento com essa redundância e um número maior de unidades oferece ao sistema a capacidade de atender de maneira confiável uma grande carga de trabalho transacional.

A infraestrutura para matrizes de disco (e SANs, no caso mais extremo) não é exatamente um item do mercado de massa. Além disso, é um dos bits que realmente, realmente não pode falhar. Essa combinação de padrão de construção e volumes menores de mercado não sai barata.

Custo total de armazenamento, incluindo backup

Na prática, é provável que o maior custo para manter 1 TB de dados seja backup e recuperação. Uma unidade de fita e 34 conjuntos de fitas SDLT ou ultrium para um ciclo completo de backup e recuperação custarão provavelmente mais do que uma matriz de disco de 1 TB. Adicione os custos de armazenamento externo e o salário de um único macaco e, de repente, seus 1 TB de dados não será tão barato.

O custo dos discos geralmente é um caminho justo para a hierarquia dos custos de armazenamento dominantes. Em um banco, tive a oportunidade de trabalhar para o armazenamento da SAN, que custava £ 900 / GB para um sistema de desenvolvimento e £ 5.000 / GB para um disco em um servidor de produção. Mesmo a preços de fornecedores corporativos, o custo físico dos discos era apenas uma pequena fração disso. Outro exemplo que eu conheço tem uma IBM Shark SAN (relativamente) modestamente configurada que custa em algum lugar mais de £ 1 milhão. Apenas o armazenamento físico é cobrado em torno de 9 libras / gigabyte, ou cerca de 9.000 libras por espaço equivalente ao seu HDD de consumidor de 1 TB.


40

Apenas diga: "Sim, e posso obter um programador Java no exterior por US $ 5 / hora".


8
Agora que bom!
317 John Dyer

3
Isto é bastante um comentário espirituoso, mas eu não consigo upvote-lo desde que ele realmente não responder à pergunta, o que eu estou ansioso para descobrir uma resposta para
dance2die

11
@ dance2die Acho que responde à pergunta com bastante clareza.
933 Joe Phillips

11
Eu acho que é uma resposta válida. A questão é que cada um de nós tem suas próprias áreas de especialização, e os membros de uma equipe precisam confiar um no outro. Voltar a pergunta para o desenvolvedor dessa maneira os ajudará a perceber como é inútil tentar adivinhar um ao outro.
Portman

2
Outra resposta válida seria que o cara do Geek Squad provavelmente poderia descobrir como fazê-lo, fazê-lo mais barato e ter uma atitude muito melhor em fazê-lo. Sério, por que essa é a resposta mais votada para essa pergunta? Eu tive uma boa risada enquanto lia, mas se for assim que os membros do site responderão a perguntas ingênuas, eu continuarei com o Google e o Experts Exchange.
Dfjacobs 5/05

14

Talvez faça algumas perguntas sobre a unidade do Walmart:

  • qual é o tempo médio para o fracasso?
  • o que acontecerá se falhar catastropicamente?
  • com que frequência é feito o backup?
  • Quanto armazenamento serão necessários 12 meses de backups?
  • como pode ser feito backup fora do local?
  • como poderia ser restaurado? (no conjunto? um único arquivo? alguns diretórios?)
  • Quanto custa armazenar os backups?
  • como ele garantirá que os backups sejam mantidos em segurança? seguro?
  • que seguro ele tem para cobrir a perda de dados vitais?

... Compare essas respostas com uma unidade que esteja sendo executada como parte de uma matriz RAID 5 em um centro de dados bem gerenciado.

(Divulgação: eu também sou desenvolvedor - estou supondo!)


11
+1 para uma boa abordagem abrangente do "porquê" da pergunta.
Avery Payne

4

Talvez você deva considerar armazenamento diferenciado.

Seu desenvolvedor pode precisar de mais espaço, mas talvez não seja o espaço em disco de "classe empresarial" que ele está buscando. Talvez ele só precise armazenar um arquivo .vhd e ISO, que é o caso de uma falha no disco, que pode ser baixado novamente no MSDN. Talvez as execuções de teste exijam grandes requisitos de espaço transitório que só precisam estar presentes durante a duração da execução do teste. Por tudo isso, uma unidade Wallmart de US $ 50 pode ser uma solução válida.


3

A principal coisa que as pessoas precisam entender sobre armazenamento é que há uma grande diferença entre capacidade e IOPS. Coisas como durabilidade, etc. geralmente são discutíveis, quase sempre se resume a IOPS vs. capacidade.


4
IOPS: Input / Output Operations Per Second
Sam Hasler

2

Depende do tipo de servidor que está perguntando. Para um servidor básico de desenvolvimento ou teste, as unidades de uma TB do Wallmart provavelmente são boas o suficiente. Se você estiver lidando com um servidor de ponta que não usa componentes de prateleira, pergunte se eles construiriam um carro de corrida e comprariam pneus em uma loja de autopeças para economizar alguns dólares.


11
Eu recomendaria não usar essa técnica em gerentes. A resposta pode muito bem ser sim."
213 Jason Baker

1

O jeito que eu explico é isso. Se o seu chefe assinar a compra. Vou colocar uma placa na unidade Wal-Mart que afirma ..

"o Sys Ad foi instruído a colocar isso aqui contra sua vontade e coragem". E quando a unidade acabar, entregarei a unidade e observarei o desenvolvedor e perguntarei a eles como fazer o meu trabalho desta vez.

Concordo com Portman ... confie na equipe ou vá embora.


0

Uma resposta simples de uma linha: as unidades de 1 TB são geralmente SATA, mas seu servidor é SCSI. (Mesmo que o servidor não seja SCSI, isso pode interromper a linha de consulta ... por enquanto.)

Uma unidade SCSI de 300 GB custa geralmente 4x o preço, então há o backup dos dados existentes, a organização do tempo de inatividade, a instalação, algo pode dar errado, as horas extras etc. etc. Em suma, uma simples atualização de armazenamento pode levar a todos tipos de dor - nenhum dos quais o desenvolvedor é diretamente responsável. Dizer que você pode comprar uma unidade pronta para atender às necessidades atuais é irremediavelmente simplista.

Mas você sabe que deveria ter colocado unidades maiores nos malditos servidores quando as comprou e está se preparando agora! Mas você queria que os servidores fossem instalados e eles teriam aumentado o custo inicial, e talvez fosse necessário uma rodada extra de aprovação ... bem-vindo ao mundo de dor do administrador de sistemas ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.