ZFS: Criando ZVOL – Parte 10

Até agora não trabalhamos com dispositivos em bloco(block device).

trabalhando com dispositivos em blocos temos a opção de formatar e instalar no dispositivo em bloco qualquer sistema de arquivos que desejarmos, como ext4, ntfs, xfs etc.

Com ZVOL se refere à z volume. Logicamente que o “z” é uma referência ao zfs.

ZVOL é um dispositivo em bloco do ZFS e reside dentro do pool. Então podemos ter sistema de arquivos ext4 ou xfs… dentro do nosso pool? Sim. E qualquer um desses sistemas de arquivos se beneficiará do que ZFS oferece: copy-on-write, scrubbing,  raidz, compressão, deduplicação de dados. Ainda veremos muitas dessas opções.

Quando criamos o zvol ele fica dentro de /dev/zvol/nome_do_pool/

Nosso Ambiente Atual

tenho o pool meuPool que criei com o seguinte comando

sudo zpool create meuPool mirror sdb sdc mirror sdd sde  spare sdf
elder@server01:~$ sudo zpool status
  pool: meuPool
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	meuPool     ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0
	  mirror-1  ONLINE       0     0     0
	    sdd     ONLINE       0     0     0
	    sde     ONLINE       0     0     0
	spares
	  sdf       AVAIL   

errors: No known data errors

vendo o tamanho do pool. Conforme abaixo temos 160 MB para trabalhar.

elder@server01:~$ sudo zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
meuPool   160M   110K   160M        -         -     1%     0%  1.00x    ONLINE  -

Criando um ZVOL

Para criar um zvol é muito fácil, basta  acrescentar “-V n”, onde o n é o tamanho do volume. Por exemplo “-V 1G” para um volume em bloco de  1 Giga Byte.

Vamos criar  um dataset do tipo zvol(dispositivo em bloco) com 50 MB

elder@server01:~$ sudo zfs create -V 50M meuPool/musicas

veja o resultado

elder@server01:~$ sudo zfs list
NAME              USED  AVAIL     REFER  MOUNTPOINT
meuPool          53,8M  26,1M       24K  /meuPool
meuPool/musicas  53,8M  79,9M       12K  -

Se executarmos “df -h” veremos que o zvol não é montado automaticamete como os datasets que criamos anteriormente. Abaixo temos apenas o pool “meupool”, não temos /meuPool/musicas.

elder@server01:~$ df
Sist. Arq.     Blocos de 1K   Usado Disponível Uso% Montado em
.....
meuPool               26880     128      26752   1% /meuPool

Visualize a pasta /dev/zvol/meuPool/ e veja que o zvol “musicas”  foi criado e é um link para /dev/zd0.

Então tanto faz trabalharmos com “/dev/zvol/meuPool/musicas”  ou com “/dev/zd0”

elder@server01:~$ ls -l /dev/zvol/meuPool/
total 0
lrwxrwxrwx 1 root root 9 fev  5 18:13 musicas -> ../../zd0

Vamos formatar como ext4

elder@server01:~$ sudo mkfs.ext4 /dev/zd0

vamos criar uma pasta e montar o zvol nela.
Dei o nome de zvolExt4 à pasta:

elder@server01:~$ sudo mkdir /zvolExt4

Monte o zvol

elder@server01:~$ sudo mount /dev/zd0 /zvolExt4/

visualize com “df -hT”. Veja que o tipo do sistema de arquivos não é zfs e sim ext4.

elder@server01:~$ df -hT
Sist. Arq.     Tipo      Tam. Usado Disp. Uso% Montado em
......
meuPool        zfs        27M  128K   27M   1% /meuPool
/dev/zd0       ext4       45M  1,1M   40M   3% /zvolExt4

Vamos criar alguns arquivos dentro de /zvolExt4

elder@server01:~$ sudo touch /zvolExt4/textos{1..5}.txt
elder@server01:~$ ls /zvolExt4/ 
textos1.txt  textos2.txt  textos3.txt  textos4.txt  textos5.txt

 

Conclusão

É bom saber que zfs pode lidar com outros sistemas de arquivos e estes desfrutará dos benefícios do zfs.  Em meus laboratórios de testes, porém, todos os snapshots criados de zvol em ext4 não deram certos, sempre ficavam  vazios.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *