lunes, 9 de diciembre de 2013

Storage Clusters sobre VirtualBox

La gran mayoría de los clusters desarrollados por compañías privadas son diseñados como clusters de almacenamiento compartido, esto quiere decir que hay acoplamiento de unidades de almacenamiento o en palabras simples se requiere hardware SAN, para el funcionamiento del cluster (HBA, Switch SAN, Cabina de discos), algunos de estos clusters son Oracle RAC, HP Service Guard, VMWare HA Cluster, RedHat Cluster Suite y varios más.

Cuando queremos hacer un laboratorio y probar estas tecnologías en casa, sobre VirtualBox en este caso requiere compartir los discos del entorno en cluster, entre dos o mas nodos, y en este articulo describo como hacerlo con VirtualBox.

Creación del disco

Se debe crear un disco, de tamaño fijo debido a que no funciona con el modo almacenamiento variable.

VBoxManage createhd --filename /virtualbox/nodo1/disco_cluster_01.vdi --size 10240 --format VDI --variant Fixed

Asignación del disco a una maquina virtual.

Como recomendación es bueno crear los discos en el directorio del nodo principal, y luego se debe asignar respetando la secuencia de discos con --port X, debido a que ya están asignados los puertos 0 y 1, por tanto el siguiente puerto sería el 2.

VBoxManage storageattach nodo1 --storagectl "SATA" --port 2 --device 0 --type hdd --medium /virtualbox/nodo1/disco_cluster_01.vdi --mtype shareable

Luego se asigna a los siguientes nodos modificando los nombre de los nodos correspondientes:

VBoxManage storageattach nodo2 --storagectl "SATA" --port 2 --device 0 --type hdd --medium /virtualbox/nodo1/disco_cluster_01.vdi --mtype shareable

Ejemplos

Este ejemplo de storage para un RAC oracle, hecho sobre windows:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --size 102400 --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --size 51200  --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --size 51200  --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --size 10240  --format VDI --variant Fixed


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 5 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 6 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --mtype shareable


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 5 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 6 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --mtype shareable

Nota:

Al momento de hacer esto en modo CLI no sabia que mediante el GUI se puede hacer con facilidad, los pasos son:
  1. Crear los discos en modo fixed.
  2. Quitarlo de la VM donde se han creado.
  3. Ir al menu superior File > Virtual Media Manager.
  4. Seleccionar el disco y clickear en modificar.
  5. Marcar como Shareable.
  6. Asignar a las VM del cluester.