Ivan Voras anunciou essa semana a disponibilidade de uma nova classe GEOM. A classe chama-se GEOM Virstor - gvirstor(8) - e foi projetada para oferecer um subsistema de Virtualização de Storage, similar em teoria à plexes de volumes como no GEOM Vinum Volume Manager, mas com características de virtualização de disco e independente do gvinum, podendo ser combinada com outras classes GEOM. Com essa classe é possível criar providers GEOM com alguns terabytes de espaço de armazenamento, com base em dispositivos de armazenamento de tamanho limitado, e ainda possibilitar adição de mais armazenamento - mais discos - a qualquer instante. Para manipular essa classe, a aplicação de userland chamada gvirstor(8) foi criada. Nós testamos essa classe e disponibilizamos agora um pequeno relatório do ambiente criado. Acompanhe.
Para criarmos um volume, por exemplo, composto do disco SATA ad4 e ad6 podemos usar: # gvirstor label -v volume1 /dev/ad4 /dev/ad6 E em seguida formatar o novo sistema de arquivos, que estará disponível sob /dev/virstor/<label criado> # newfs /dev/virstor/volume1 A partir desse instante o novo sistema de arquivos virtual passa a estar disponível nesse device. Podemos montá-lo com: # mount /dev/virtstor/volume1 /storage A qualquer momento podemos adicionar um novo dispositivo ao volume, aumentando seu tamanho: # gvirtor add volume1 ad8 Essa nova classe pode ser combinadas com classes GEOM existentes. Por eexemplo, é possível exportar o /dev/virstor/volume1 por Geom Gate: # umount /storage # echo "10.69.69.30/32 RW /dev/virtstor/volume1" >> /etc/gg.exports # ggated E em uma outra máquina, importar esse dispositivo: # ggatec create -o rw 10.69.69.2 /dev/virstor/volume1 ggate0 Se conveniente, apenas acessá-lo: # mount /dev/ggate0 /storageremoto Ou utilizar outra classe GEOM sobre a classe Geom Gate que usa a classe Geom Virstor. Por exemplo, podemos fazer RAID 0 com Geom Concat com um disco local e o enorme storage remoto: # umount /storageremoto # gstripe label raid0localremoto /dev/ggate0 /dev/ad1 # newfs /dev/stripe/raid0localremoto # mount /dev/stripe/raid0localremoto /usr/home Nesse caso o primeiro newfs seria dispensável. Se quiser segurança faça um sistema de arquivos criptografado com Geom ELI por exemplo, sobre /dev/stripe/raid0localremoto # umount /usr/home # geli init /dev/stripe/raid0localremoto Enter new passphrase Reenter new passphrase # geli attach /dev/stripe/raid0localremoto Enter passphrase # newfs /dev/stripe/raid0localremoto.eli # mount /dev/stripe/raid0localremoto.eli /usr/home Ah, você não está seguro quanto a performance disso? Use mais uma classe GEOM, a Geom Cache. Está com medo da integridade dos dados diante de um crash? Use o Geom Journal sobre /dev/stripe/raid0localremoto antes de criar o sistema de arquivos criptogrado com Geom ELI. O Geom Mirror pode também ser usado, mas é menos comum, afinal, temos um volume gvirstor composto de 3 discos SATA na primeira máquina, importado com Geom Gate na segunda máquina, concatenado (RAID 0) localmente na segunda máquina com outro disco local, com Geom Concat. Para fazer um RAID1 (Geom Mirror) disso tudo, você teria que ter outro provider local com tamanho equivalente a combinação dos três discos SATA na máquina 1 ou dos 4 discos que compõe o RAID0 local, e esse segundo dispositivo de armazenamento tão grande quanto o primeiro, deve existir localmente ou em uma terceira máquina remota, e eventualmente ser importado pela mesma segunda máquina, fazendo Geom Mirror em rede, sobre Geom Gate combinado com Geom Virstor + Geom Concat. Então devido ao tamanho do storage, é possível, mas não é trivial. Ivan Voras está realizado esse trabalho com Geom Virstor financiado pelo Google no programa Google Summer of Code 2006, e seu orientador, imaginem senão outro, é Pawel Jakun Dawidek - PJD. O Geom Virstor pode ser obtido em http://wiki.freebsd.org/gvirstor ou através de sincronia com o repositório Perforce se você usa FreeBSD 7.0-CURRENT. Ainda não há previsão para essa classe ir para o FreeBSD 6 -STABLE através de MFC, pois ainda está em Beta-3. Para fazer o MFC acontecer mais rápido, teste o Geom Virstor e informe Ivan Voras sobre seus testes, especialmente se encontrar problemas. A utlização de todas as classes Geom acima mencionadas, combinadas com gvirstor, foi implementada na prática em laboratório, na FreeBSD Brasil , e trata-se apenas de uma POC (Prova de Conceito), não é usual nem recomendado utilizar tantas classes GEOM assim ao mesmo tempo. Opções mais racionais podem ser conseguidas, ao invés de fazer RAID0 sobre um dispositivo que já é volume de dados, por exemplo. Há diversas variações que podem ser projetadas, mas o objetivo foi apenas testar diversas classes combinadas. Vamos agora esperar o ZFS ficar pronto e ver como essas soluções se relacionarão. |