13.6. Alguns exemplos

Vinum mantém uma base de dados de configuração onde descreve os objetos conhecidos por um sistema individual. Inicialmente, o usuário cria o banco de dados de configuração a partir de um ou mais arquivos de configuração com a ajuda do utilitário vinum(8). Vinum guarda uma cópia das configurações de seu banco de dados em cada slice de disco (a qual Vinum chama de dispositivo) sobre seu controle. Essa base de dados é atualizada em cada mudança de estado, então, precisamente recupera o estado de cada objeto do Vinum.

13.6.1. O Arquivo de Configuração

O arquivo de configuração descreve os objetos individuais do Vinum. A definção de um simples volume poderia ser:

    drive a device /dev/da3h
    volume myvol
      plex org concat
        sd length 512m drive a

Esse arquivo descreve quatro objetos do Vinum:

Depois de processar esse arquivo, vinum(8) gera a seguinte saida:

      # vinum -> create config1
      Configuration summary
      Drives:         1 (4 configured)
      Volumes:        1 (4 configured)
      Plexes:         1 (8 configured)
      Subdisks:       1 (16 configured)
     
    D a                     State: up       Device /dev/da3h        Avail: 2061/2573 MB (80%)
    
    V myvol                 State: up       Plexes:       1 Size:        512 MB
    
    P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
    
    S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB

Essa saída mostra um pequeno formato de listagem do vinum(8). É representado graficamente na Figura 13-4.

Figura 13-4. Um Volume Simples de Vinum



Essa figura, e as outras que seguem, representam um volume, que contém plexes, e estes, por sua vez possuem subdiscos. Nesse exemplo trivial, o volume contém um plex, e o plex contém um subdisco.

Esse volume em particular não tem nenhuma vantagem específica sobre uma partição de um disco convencional. Contém um único plex, então, não é redundante. O plex contém um único subdisco, então a alocação de dados não se difere de uma partição de disco convencional. As sessões seguintes exemplificam diversos métodos de configuração mais interessantes.

13.6.2. Crescimento na Confiança: Espelhamento

A confiança em um volume pode ser aumentada com espelhamento. Quando planejando um espelhamento de volume, é importante se assegurar que o subdisco de cada plex esta em partições diferentes, para que uma falha de disco não derrube os dois plexes. A seguinte configuração espelha um volume:

   drive b device /dev/da4h
    volume mirror
      plex org concat
        sd length 512m drive a
      plex org concat
        sd length 512m drive b

Nesse exemplo, não foi necessário especificar uma definição de uma partição a novamente, a partir do momento que o vinum armazena todos os objetos em sua base de dados de configuração. Depois de processar essa definição, a configuração se parece com:

   Drives:         2 (4 configured)
    Volumes:        2 (4 configured)
    Plexes:         3 (8 configured)
    Subdisks:       3 (16 configured)
    
    D a                     State: up       Device /dev/da3h        Avail: 1549/2573 MB (60%)
    D b                     State: up       Device /dev/da4h        Avail: 2061/2573 MB (80%)

    V myvol                 State: up       Plexes:       1 Size:        512 MB
    V mirror                State: up       Plexes:       2 Size:        512 MB
  
    P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB
  
    S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
    S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB

Figura 13-5 mostra a estrutura graficamente.

Figura 13-5. Um Volume de Vinum Espelhado



Nesse esemplo, cada plex contém os 512 MB de espaço de endereço. E como no exemplo anterior, cada plex contém um único subdisco.

13.6.3. Otimizando a Performance

O espelhamento do volume no exemplo anterior é mais resistente a falhas do que o volume não espelhado, mas sua performance é menor: cada escrita no volume requer a escrita em dois discos, usando assim mais largura de banda de disco. Quando se quer considerar a peformance é indicado uma abordagem diferente: ao invés de espelhar, os dados são segmentados dentre o maior numero de partições possível. A configuração seguinte mostra um volume com um plex striped entre quatro partições:

   drive c device /dev/da5h
    drive d device /dev/da6h
    volume stripe
    plex org striped 512k
      sd length 128m drive a
      sd length 128m drive b
      sd length 128m drive c
      sd length 128m drive d

Como antes, não é necessário definir as partições que já são conhecidas pelo vinum. Depois de processar essa definição, a configuração se parece com:

   Drives:         4 (4 configured)
    Volumes:        3 (4 configured)
    Plexes:         4 (8 configured)
    Subdisks:       7 (16 configured)
  
    D a                     State: up       Device /dev/da3h        Avail: 1421/2573 MB (55%)
    D b                     State: up       Device /dev/da4h        Avail: 1933/2573 MB (75%)
    D c                     State: up       Device /dev/da5h        Avail: 2445/2573 MB (95%)
    D d                     State: up       Device /dev/da6h        Avail: 2445/2573 MB (95%)
  
    V myvol                 State: up       Plexes:       1 Size:        512 MB
    V mirror                State: up       Plexes:       2 Size:        512 MB
    V striped               State: up       Plexes:       1 Size:        512 MB
  
    P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB
    P striped.p1            State: up       Subdisks:     1 Size:        512 MB
  
    S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
    S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB
    S striped.p0.s0         State: up       PO:        0  B Size:        128 MB
    S striped.p0.s1         State: up       PO:      512 kB Size:        128 MB
    S striped.p0.s2         State: up       PO:     1024 kB Size:        128 MB
    S striped.p0.s3         State: up       PO:     1536 kB Size:        128 MB

Figura 13-6. Um volume Vinum Striped



Esse volume é representado em Figura 13-6. O sombreado dos stripes indica a porção junto ao espaço endereçado do plex: os stripes mais claros vem primeiro, os mais escuros por último.

13.6.4. Estabilidade e Performance

Com o hardware necessário, é possível construir volumes que apresentam tanto acréscimo de performance quanto de estabilidade quando comparados às partições UNIX® comuns. Um arquivo de configuração típico pode ser:

   volume raid10
      plex org striped 512k
        sd length 102480k drive a
        sd length 102480k drive b
        sd length 102480k drive c
        sd length 102480k drive d
        sd length 102480k drive e
      plex org striped 512k
        sd length 102480k drive c
        sd length 102480k drive d
        sd length 102480k drive e
        sd length 102480k drive a
        sd length 102480k drive b

Os subdiscos do segundo plex estão deslocados por dois discos em relação ao primeiro plex: isso ajuda a garantir que não acontecerá escrita no mesmo subdisco, mesmo que a transferência aconteça sobre dois discos.

Figura 13-7 representa a estrutura desse volume.

Figura 13-7. Um Volume Vinum Striped e Espelhado



Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.