divendres, 31 d’octubre de 2014

Virtualbox Linked Clones

Introducció:

En el següent article testejarem la funcionalitat de crear linked clones amb virtualbox. Aquesta funcionalitat va ser inttroduïda a partir de la versio 4.1. La versió de Virtualbox que utilitzarem es 4.3.10_Ubuntu r93012. Per a la configuració de les maquines virtuales utilitzarem Linux CentOS 7.0

Configuració del disc template:

La primera tasca a realitzar sera la creació d'un disc template, aquest disc sera la plantilla immutable que utilitzarem despres en els clons.

Pas 1: Crearem una màquina virtual base amb la següent configuració:
  • 768MB de RAM
  • 8Gb de Disc (Dinàmic)
Pas 2. Instalar el S.O. E.g. CentOS 7.0, devices → mount CD/DVD-ROM → elegir la imagen .iso o el DVD amb CentOS per a instal·lar-lo. S'instal·la com a qualsevol PC.

Pas 3: Busquem el disc dur i el detachem de la màquina virtual. Busquem el disc dur amb la següent comanda:
vboxmanage showvminfo "Centos Xymon" |  grep vdi

SATA (0, 0): /home/user/VirtualBox VMs/CentOS7/CentOS7.vdi 
   (UUID: 0e395175-0152-4f2c-88b1-6917f99b4388)

Mostrem les propietats del disc amb la següent ocmanda una volta sabem el seu path.
vboxmanage showhdinfo /home/user/VirtualBox\ VMs/CentOS7/CentOS7.vdi 
UUID:           0e395175-0152-4f2c-88b1-6917f99b4388
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/CentOS7/CentOS7.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   1061 MBytes
In use by VMs:  CentOS7 (UUID: ce273a51-c903-4f8f-b52c-cf714e10e0ff)
Per a la creacio de clons necessitem desassociar el disc de la maquina virtual. La següent comanda realitza aquesta tasca.
vboxmanage -q storageattach "CentOS7"  --storagectl \
          "SATA" --port 0 --device 0 --medium "none"
Pas 4: Marquem el disc com a immutable. En aquest moment configurem el disc com a immutable.
vboxmanage modifyhd /home/user/VirtualBox\ VMs/CentOS7/CentOS7.vdi \
     --type immutable 

Creació dels clons:

En aquesta secció creem una maquina amb el disc immutable associat i la configurem per a que el disc dur diferencial que tinga associat no es resetege cada volta que la apaguem.

Pas 1:Creem una nova màquina (Clone1) i li afegim el disc immutable. Cliquem en l'opcio "Use existing disk drive". Amb la següent comanda obtenim informacio del disc.
VBoxManage showvminfo Clone1 | grep .vdi
Ací podem veure el disc del clon.
...
-rw------- 1 user user 114294784 oct 30 16:34 {9163b056-58d8-4f37-8ed9-32343207d3fb}.vdi
Pas 2: Configurem el clon per a que no s'inicialitze cada volta. La següent comanda te aquesta funció.
VBoxManage modifyhd 9163b056-58d8-4f37-8ed9-32343207d3fb --autoreset off
Si revisem les característiques del disc veiem que el autoreset ara esta configurat a off.
VBoxManage showhdinfo 9163b056-58d8-4f37-8ed9-32343207d3fb 
UUID:           9163b056-58d8-4f37-8ed9-32343207d3fb
Parent UUID:    0e395175-0152-4f2c-88b1-6917f99b4388
State:          created
Type:           normal (differencing)
Auto-Reset:     off
Location:       /home/userr/VirtualBox VMs/Clone1/Snapshots/{9163b056-58d8-4f37-8ed9-32343207d3fb}.vdi
Storage format: VDI
Format variant: differencing default
Capacity:       8192 MBytes
Size on disk:   119 MBytes
In use by VMs:  Clone1 (UUID: 07270891-06a3-4e7c-b99c-8a1df46f44a6)

Altres alternatives:

Podem realitzar exactament els mateixos passos directament amb la interficie d'usuari de Virtulbox amb l'opcio clonar i la maquina apagada però no disposarem del disc inmutable i l'autoreset estara configurat a on.

Enllaços


https://sandilands.info/sgordon/creating-a-virtual-network-of-linux-guests-using-virtualbox
http://wdb.ugr.es/~jorgenavarro/docencia/practicas-de-redes-de-ordenadores-con-virtualbox/
http://www.sysprobs.com/linked-clone-virtualbox-how-to-clone-virtual-machine

dimarts, 7 d’octubre de 2014

Bash useful combination: tr + cut

Si necessitem parsejar l'output d'un programa sovint son molt útils els programes tr i curl. 

free -g | grep ^Mem: | tr -s " " % | cut -d% -f2
Amb tr es pot subustituir un número il·limitat de caracters per un sol caracter i despres podem utilitzar cut per a seleccionar la columna que necessitem. En aquest exemple obtenim la RAM total de la màquina.

dimecres, 1 d’octubre de 2014

Extending Oracle Tablespaces

Un problema corrent que sol apareixer quan es gestiona una base de dades Oracle es l'ampliació d'un tablespace. Per ampliar el tablespace el primer que hem de fer es conectar-nos al sistema i accedir a la base de dades.
[user@homedb ~]$ sudo su -
[root@homedb ~]# su - oracle
==============================================================
Choose and load a profile:
Run asm -- For GRID PROFILE --
Run db -- For DB PROFILE --
==============================================================
[oracle@homedb ~]$ db
[oracle@homedb ~]$ sqlplus '/as sysdba'
Una volta veiem quin es el tablespace que presenta problemes consultem el seu estat.
SQL> select file_name, tablespace_name, \
bytes/1024/1024 MB, autoextensible, maxbytes, \
increment_by from dba_data_files \
where tablespace_name='PERFSTAT';

FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME MB AUT MAXBYTES INCREMENT_BY
------------------------------ ---------- --- ---------- ------------
/opt/oradata/db01test/perfstat_01.dbf
PERFSTAT 1500 NO 0 0
La següent taula ens mostra que el tablespace te 1500MB i que no es autoincrementable. Una volta tenim aquesta informació consultem l'espai disponble a la partició.
SQL> !df -h /opt/oradata/db01test/perfstat_01.dbf
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup1-u02
                       94G 57G 33G 64% /opt
Com es pot veure la partició on esta el tablespace disposa d'espai lliure, llavors podem ampliar el seu espai. El pròxim que farem serà duplicar l'espai del tablespace amb la següent comanda:
SQL> alter database datafile '/opt/oradata/db0101test/perfstat_01.dbf' \
resize 3000M;

Database altered.
Si tornem a revisar el tablespace veurem com ha sigut ampliat.
SQL> select file_name, tablespace_name, \
bytes/1024/1024 MB, autoextensible, maxbytes, \
increment_by from dba_data_files \
where tablespace_name='PERFSTAT';

FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME MB AUT MAXBYTES INCREMENT_BY
------------------------------ ---------- --- ---------- ------------
/opt/oradata/db01test/perfstat_01.dbf
PERFSTAT 3000 NO 0 0
Si revisem tots els tablespaces veurem que tornem a tenir espai disponible.
SQL> select * from dba_tablespace_usage_metrics;


TABLESPACE_NAME USED_SPACE TABLESPACE_SIZE USED_PERCENT
------------------------------ ---------- --------------- ------------
...
PERFSTAT 175200 384000 45.625
...

21 rows selected.