Boas.
Em edição de video, é comum utilizar-se os discos num nivel de RAID como forma de aumentar o desempenho de leitura/gravação em relação a um só disco. Com a cada vez maior produção de conteúdos visuais em HD, mais necessário se torna o agrupamento de discos em RAID, normalmente de nivel 0 e 5, uma vez que um só disco não tem uma taxa de transferência sustentada suficiente para tão grande volume de dados requeridos pelo HD, nomeadamente HD não comprimido. Para além disso, um nivel RAID tem como função a segurança dos dados neles gravados, de forma que a avaria de um dos discos não signifique a perda de informaçôes. E mais ainda, permitir que o sistema se mantenha em funcionamento, mesmo após a avaria de um ou mais discos, sem que com isso exista perca de dados, quer na leitura quer na gravação, e sem que seja necessário desligar o PC para se proceder a substituição do disco ou discos defeituosos. Lógicamente, esta substituição deve ser feita assim que tal seja possivel.
Qual a teoria por detrás de um nivel RAID?
Se tivermos um disco a gravar um determinado ficheiro, ele vai demorar x tempo a concluir a gravação. Se em vez de um disco utilizarmos dois, o ficheiro é dividido em duas partes, em que um disco grava uma das partes e o outro disco grava a outra parte. Na leitura, os dois ficheiros são juntos outra vez para formar o original. O software e/ou hardware se encarrega de dividir e juntar as partes do ficheiro, como se nada estivesse a acontecer. Com este processo a gravação demora metade do tempo a ser concluida. O mesmo se passa depois na leitura: as duas metades do ficheiro são lidas ão mesmo tempo, significando isto que a taxa de transferência é superior á de um só disco, logo uma leitura mais rápida. Se em vez de dois discos utilizarmos 3, 4 ou mais discos, o desempenho é proporcional ão numero de discos agrupados num nivel RAID. É esta a teoria.
O video, e principalmente o video HD não comprimido, é um grande beneficiado com um nivel RAID. Um só disco é incapaz de dar conta da alta taxa de dados requerido pelo HD, pelo que um agrupamento de discos é benéfico para editores video. E mesmo os novos discos SSD, em que alguns conseguem ser mais rápidos que os "convencionais", não conseguem sustentar a alta taxa de dados do sinal video HD não comprimido.
Existem três factores principais que determinam o desempenho de um nivel RAID:
Cache
Striping
Chunk size
Cache: cache é a memória RAM existente no circuito de dados ou no disk array. A gravação/leitura de dados é muito mais rápida em RAM que num disco, mesmo nos discos de 15.000 RPM. Assim, quanto maior a RAM atribuida ão disk array, melhor o desempenho.
Striping: é a divisão do ficheiro original pelo numero de discos existentes no RAID. O SO (sistema operativo) vê todos estes discos como apenas um disco, com a capacidade total de todos os discos (descontando a capacidade necessária para a paridade dos dados, se fôr caso disso). O software ou a controladora por hardware tem a função de controlar todos estes aspectos, independentemente do SO utilizado: windows, linux, mac, solaris ou qualquer outro.
A vantagem do Striping é que em vez de se ter o desempenho de apenas um único disco, tem-se o desempenho de vários discos a trabalhar para o mesmo efeito. Em vez de se ter a taxa de transferência de um só disco na leitura/gravação, tem-se a taxa de transferência de um disco, multiplicada pelo número de discos existentes no RAID. Por exemplo, se um disco consegue ler/gravar 100 MB/s, 5 discos em RAID 0 conseguem ler/gravar 500 MB/s (na prática os valores são um pouco inferiores, pois depende de vários factores).
Existe ainda uma outra vantagem: o número de IOPS. IOPS é o nº de pedidos de informação que o sistema faz ão disco e que este consegue satisfazer, num segundo. Se um disco rigido conseguir por exemplo, 100 IOPS, 4 discos podem atingir o valor de 400 IOPS.
Chunk size: é o tamanho em que cada ficheiro é dividido para ser gravado nos discos
Cada ficheiro é dividido em x partes e gravado em cada um dos discos existentes no RAID. O tamanho destes ficheiros "partidos" depende do nº de IOPS necessários, que varia de aplicação para aplicação.
Num servidor web ou banco de dados, os ficheiros são de tamanhos muito pequenos. Nestes casos o que interessa é o nº de IOPS que se consegue obter e não tanto a taxa de transferência. Se o Chunk size fôr muito pequeno, será enviádo um I/O a cada disco, diminuindo assim o nº de IOPS que o RAID consegue satisfazer. Trabalhando os servidores web/bancos de dados com requesitos elevados a nivel de IOPS, é de todo o interesse ter um Chunk size maior, de forma que um só I/O possa satisfazer o pedido. Se um I/O der conta do "recado", mais I/Os ficam disponiveis nos outros discos.
Pelo contrario, se os ficheiros são grandes, como os de video ou de fotografia profissional, já tem mais interesse a taxa de transferência e não tanto o nº de IOPS. Assim, é de todo o interesse que cada disco seja capaz de partilhar a carga de trabalho exigida. Ter um Chunk size pequeno faz com que seja enviado um pedido I/O a cada um dos discos, aumentado assim a taxa de transferência dos dados.
Pelo que tentei expôr, a solução de armazenamento óptima para um determinado tipo de dados poderá não ser a melhor para outro tipo de dados. Saber qual o tipo e tamanho de dados que se vai maioritáriamente lidar é fundamental para se poder fazer opçôes a nivel da configuração do RAID. Pois uma má opção pode levar-nos a escolhas errádas e com isso obter fracos desempenhos no que a edição video diz respeito, quando se utiliza niveis RAID. Boas.