virtualbox

Dia desses tive uma necessidade na minha máquina virtual.
Criei uma VM e instalei o Oracle Enterprise Linux 6.2, com o intuito de instalar depois o Oracle Grid Infrastructure, podendo assim usar ASM como sistema de arquivos do meu Oracle Database.

Para criar meus diskgroups ASM eu precisaria de novas unidades de disco disponíveis para minha VM. Mas minha VM já estava criada, com o sistema operacional instalado e redondo, e por isso eu não queria iniciar uma instalação do zero.

Resolvi portanto disponibilizar um novo disco virtual para esta VM, e particioná-lo de forma que simule vários discos, assim posso simular meu storage como se fossem várias unidades de disco, inclusive fazendo o espelhamento via ASM. Vamos ao que interessa!

 

 

Logado como root, verifiquei minha atual situação de discos disponíveis:

# df -h
# fdisk -l

Tenho portanto somente um disco (/dev/sda) com duas partições.
 
 


 
 Agora vou adicionar um novo disco virtual. Antes disso, DESLIGAR a máquina virtual.

Após clicar em Settings, ou Configurações, vá até a seção Armazenamento  
 
 


 
Selecione a controladora SATA, e depois clique no ícone Adicionar Disco Rígido, conforme a figura ao lado. 
 
 
 

A janela mostra uma mensagem muito estranha, dizendo que você vai “remover” a controladora. Não se preocupe, foi um erro de tradução e nenhuma controladora será removida. Clique em “Criar novo disco“.

 
 
 

 
 

Na nova janela, selecione VHD (Virtual Hard Disk) e clique em “Próximo”.
 
 
 

 
 

Escolha a opção “Dinamicamente alocado“, assim você economiza espaço real em disco da sua máquina hospedeira. Clique em “Próximo”.

 
 
 


 
Digite ou selecione o caminho completo do arquivo que conterá o disco virtual na sua máquina hospedeira. Digite também o tamanho do seu disco virtual. No meu caso, criei um disco virtual de 40GB. Clique em “Próximo”.

 
 
 

 
 

Confira o resumo dos dados e clique em “Criar“.
 
 
 

 
 

A janela anterior irá se fechar, e você voltará a essa tela de configuração – desta vez já está aparecendo seu novo disco virtual sob a controladora SATA. Clique em OK.

 
 
 

 
 
Agora selecione a máquina virtual correspondente, e clique em Start para ligar a VM.
 
 
 
 

 

Após ligar a VM, logado como root, conferi para ver se o novo disco já está disponível:

# fdisk -l

O disco foi mostrado (/dev/sdb), e uma mensagem avisou que esse disco não contém uma tabela válida de partições.

 

Portanto, vamos particionar este disco. Minha intenção é particioná-lo em 4 unidades, disponibilizando assim 2 pares de partições para meus diskgroups ASM. O tamanho total do disco é de 40GB, e eu irei particionar da seguinte forma:

/dev/sdb1 - 3GB
/dev/sdb2 - 3GB
/dev/sdb3 - 17GB
/dev/sdb4 - 17GB

As partições de 3GB serão para o diskgroup “FRA” (ou seja, serão usados para minha Flash Recovery Area do Oracle Database), enquanto as partições de 17GB serão para o diskgroup “DADOS”.

Como já sabemos, na maioria das vezes os espaços disponíveis em disco não batem com valores exatos – eu criei um disco de 40GB, mas não sei se a somatória das 4 partições acima terão exatamente o tamanho do disco. Portanto vou criar as 2 partições de 3GB primeiro, e o restante do espaço vou “dividir em dois”, considerando o número de cilindros físicos do disco, e não o tamanho – você verá mais adiante como fiz isso na prática.

 
Vamos para o particionamento:

# fdisk /dev/sdb
n
1
+3G

 
 

Esta parte merece uma explicação um pouco mais detalhada. Usei o utilitário fdisk para particionar o disco:

  # fdisk /dev/sdb

Com este comando, “entramos” na ferramenta, que fica aguardando comandos de forma interativa:

Command (m for help):

Digite n para criar uma nova partição.

Logo em seguida ele pergunta o tipo de partição: primária (p) ou extendida (e). Ele informa também que podem existir 4 partições primárias, numeradas de 1 a 4. No meu caso, eu quero criar exatamente 4 partições, conforme já informei no início do artigo, portanto não usarei partições extendidas, e vou criar 4 partições primárias. Por isso digitei: p e logo em seguida digitei o número da partição: 1.

O utilitário então pede o cilindro inicial, ou seja, a localização física do início desta partição no disco. Ele diz também que o default é 1, portanto apenas aperte ENTER e ele usará o default (que é sempre o primeiro cilindro disponível).

Logo após aparece o seguinte diálogo:

Last cylinder, +cylinders or +size{K,M,G} (1-5221, default 5221):

Aqui você define qual vai ser o tamanho da sua partição. Repare que é possível definir o número de cilindros ou então o tamanho da partição em KBytes, MBytes ou GBytes. No meu caso, quero criar a partição com 3GB, portanto digitei +3G (conforme a imagem acima). Caso você digite +3, sem o G, ele irá entender como 3 cilindros, e não 3 GB, portanto tome cuidado durante esta operação.

 
 Após criar a primeira partição, volta a aparecer o prompt do utilitário solicitando um novo comando. Basta repetir os mesmos comandos da partição anterior – obviamente alterando o número da partição a cada nova partição criada.

Após criar as duas partições de 3GB para o meu diskgroup +FRA, quero usar todo o restante do disco para dividir entre as duas partições que faltam e que serão usados para o meu diskgroup +DADOS. Mas eu não sei o tamanho exato que existe de espaço disponível no meu disco. Mas reparem que o utilitário informa o número do último cilindro do disco – 5221. Obviamente esse número vai variar aí na sua instalação, conforme o tamanho do seu disco.

Ao iniciar a criação da terceira partição, o utilitário informa que o primeiro cilindro disponível é o 787, e que o último é 5221. Usarei então essas informações para particionar o espaço restante em 2 partições do mesmo tamanho – basta apenas um pouco de aritmética básica:

5221 – 786 = 4435 (último cilindro – número de cilindros já usados = número de cilindros disponíveis)

4435 / 2 = 2217 (número de cilindros disponíveis dividido por 2 partições = número de cilindros para cada partição)

787 + 2217 = 3004 (número do primeiro cilindro disponivel + número de cilindros para cada partição = número do último cilindro da primeira partição a ser criada)

Portanto, cheguei ao número 3004 como o número do último cilindro da partição 3.

Para criar a última partição, ou seja, a partição 4, fica fácil: basta utilizar todo o espaço restante.

Ok, após criar a partição de número 4, precisamos confirmar estas alterações todas. Com isso digitamos o comando w, que é o comando para gravar as alterações na tabela de partições. É exibida então a mensagem que confirma que a tabela de partições foi gravada, e logo após a saída automática do utilitário.

 

Vamos conferir as partições criadas? Como root, mande listar as partições criadas:

# fdisk -l

 
 
 

É isso aí pessoal! Partições criadas. No próximo artigo veremos como Compartilhar pastas do Windows com o seu Linux no VirtualBox – e assim poder copiar os instaladores do Oracle Database para a sua VM.

Abraço!

Milton Bastos é DBA Oracle e Desenvolvedor PL/SQL, dividido entre Apucarana/PR e Curitiba/PR. Certificações: OCA (Oracle 11g DBA Certified Associate), Oracle Database 11g Data Warehousing Certified Implementation Specialist, Oracle Database 11g Sales Specialist Assessment, Oracle Database Appliance PreSales Specialist Assessment, Oracle Database Appliance Sales Specialist Assessment