A fim de resolver estes problemas, o vinum
implementa uma hierarquia de quatro níveis de objetos:
O objeto mais visível é o disco virtual, chamado volume. Os volumes têm essencialmente as mesmas propriedades de uma unidade de disco UNIX®, embora haja algumas pequenas diferenças. Por um lado, eles não têm limitações de tamanho.
Os volumes são compostos de plexes, cada um dos quais representa o espaço de endereço total de um volume. Este nível na hierarquia fornece redundância. Pense em plexes como discos individuais em uma matriz espelhada, cada um contendo os mesmos dados.
Como o vinum
existe dentro do framework de armazenamento em disco UNIX®, seria possível usar as partições UNIX® como bloco de construção para plexes de vários discos. Na verdade, isso acaba sendo muito inflexível, pois os discos UNIX® podem ter apenas um número limitado de partições. Em vez disso, o vinum
subdivide uma única partição UNIX®, a unidade, em áreas contíguas chamadas subdiscos , que são usados como blocos de construção para plexes.
Subdiscos residem em vinum
drives, atualmente partições UNIX®. Unidades vinum
podem conter qualquer número de subdiscos. Com exceção de uma pequena área no início da unidade, que é usada para armazenar informações de configuração e estado, a unidade inteira está disponível para armazenamento de dados.
As seções a seguir descrevem a maneira como esses objetos fornecem a funcionalidade necessária do vinum
.
Os plexes podem incluir vários subdiscos distribuídos por todas as unidades na configuração vinum
. Como resultado, o tamanho de uma unidade individual não limita o tamanho de um plex ou de um volume.
O vinum
implementa o espelhamento anexando vários plexes a um volume. Cada plex é uma representação dos dados em um volume. Um volume pode conter entre um e oito plexes.
Embora um plex represente os dados completos de um volume, é possível que partes da representação estejam fisicamente ausentes, seja por design (por não definir um subdisco para partes do plex) ou por acidente (como resultado da falha de representação). Contanto que pelo menos um plex possa fornecer os dados para o intervalo de endereços completo do volume, o volume estará totalmente funcional.
O vinum
implementa a concatenação e o striping no nível plex:
Um plex concatenado usa o espaço de endereço de cada subdisco um de cada vez. Plexes concatenados são os mais flexíveis, pois podem conter qualquer número de subdiscos e os subdiscos podem ser de tamanho diferente. O plex pode ser estendido adicionando subdiscos adicionais. Eles exigem menos tempo de CPU do que os plexes distribuídos, embora a diferença na sobrecarga de CPU não seja mensurável. Por outro lado, eles são mais suscetíveis a hot spots, nos quais um disco é muito ativo e outros ficam ociosos.
Um plex striped distribui os dados uniformemente entre cada subdisco. Os subdiscos devem ser todos do mesmo tamanho e deve haver pelo menos dois subdiscos para distingui-los de um plex concatenado. A maior vantagem dos plexes striped é que eles reduzem os hot spots. Ao escolher uma faixa de tamanho ideal, de cerca de 256 kB, a carga pode ser nivelada nas unidades de componentes. Estender um complexo adicionando novos subdiscos é algo tão complicado que o vinum
não o implementa.
Tabela 1, “Organizações Plex do vinum
” resume as vantagens e desvantagens de cada organização plex.
vinum
Tipo plex | Subdiscos mínimos | Pode adicionar subdiscos | Deve ser de tamanho igual | Aplicação |
---|---|---|---|---|
concatenado | 1 | sim | não | Armazenamento de dados grandes com flexibilidade máxima de posicionamento e desempenho moderado |
striped | 2 | não | sim | Alto desempenho em combinação com acesso altamente concorrente |
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.