Ampliacion Filesystem de root en Solaris 11

En Solaris 10 ya se podía  pero en Solaris 11 es obligatorio la instalación de el filesystem de root con el sistema de ficheros ZFS. ZFS es un sistema de ficheros y gestor de volúmenes en un único software. Esto nos proporcionará múltiples ventajas y opciones de configuración: mirrors, stripes, Raid-Z, etc. El problema que tendremos si queremos ampliar dicho Filesystem y no existe espacio libre en el disco sin particionar es que no podemos añadirle un disco adicional al pool Rpool. La única opción de ampliación de dicho Filesystem pasa por asignar un disco de mayor capacidad, sincronizarlo, separar el mirror y arrancar con el nuevo disco.



Para conseguir ampliar el disco seguiremos los siguientes pasos:
1. Asignamos el nuevo disco (insertamos un disco mayor en un slot libre o asignamos nuevo disco virtual si se trata de una maquina virtual) y lo escaneamos desde Solaris:
root@solaris11:~# cfgadm -l
Ap_Id Type Receptacle Occupant Condition  
c4 scsi-bus connected configured unknown  
c4::dsk/c4t0d0 disk connected configured unknown  
c4::dsk/c4t1d0 disk connected configured unknown

2. En el nuevo disco creamos la partición Fdisk del disco completo. Para ello podemos ejecutar un format, seleccionar el disco y particionarlo con el menú de fdisk. A mi me gusta mas este comando, que nos permite crear el particionado fdiks en una línea:

root@solaris11:~# fdisk -B c4t1d0p0

Podemos verificar el particionado del disco de la siguiente manera:

root@solaris11:~# fdisk -W – c4t1d0p0
* /dev/rdsk/c4t1d0p0 default fdisk table 
* Dimensions: 
* 512 bytes/sector 
* 63 sectors/track 
* 255 tracks/cylinder 
* 5221 cylinders  
…  
…  
* Id Act Bhead Bsect Bcyl Ehead Esect Ecyl Rsect Numsect  
191 128 0 1 1 254 63 1023 16065 83859300  
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 

3. Crear las particiones de solaris (slices en adelante) en el nuevo disco. Para ello podemos copiar el particionado del disco original o con un format particionar el disco nuevo asignándole todos los cilindros al Slice 0. Con la primera opción nos mostrará un warning:

root@solaris11:~# prtvtoc /dev/rdsk/c4t0d0s2 | fmthard -s – /dev/rdsk/c4t1d0s2
fmthard: Partition 2 specifies the full disk and is not equal full size of disk.  
The full disk capacity is 83827170 sectors.  
fmthard: New volume table of contents now in place.

4. Ya estamos en disposición de asignar el disco al pool. Con este comando se ve lo fácil que es crear un mirror con ZFS, a diferencia de lo que ocurria con SVM. Primero verificamos que el pool esta correcto y no tiene fallos y a continuación asignamos el Slice 0 del nuevo disco:

root@solaris11:~# zpool status  
pool: rpool  
state: ONLINE  
scan: none requested  
config:  
    NAME STATE READ WRITE CKSUM  
  rpool ONLINE 0 0 0  
    c4t0d0s0 ONLINE 0 0 0

  errors: No known data errors  
root@solaris11:~# zpool attach -f rpool c4t0d0s0 c4t1d0s0
 
Make sure to wait until resilver is done before rebooting.
5. Con el comando ‘zpool status’ vamos comprobando el estado de la sincronización:

root@solaris11:~# zpool status  
pool: rpool  
state: ONLINE  
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.  
action: Wait for the resilver to complete.  
scan: resilver in progress since Wed Oct 31 17:39:29 2012 2,92G scanned out of 17,0G at 8,76M/s, 0h27m to go 2,92G resilvered, 17,14% done  
config:
  NAME STATE READ WRITE CKSUM
 rpool ONLINE 0 0 0
  mirror-0 ONLINE 0 0 0
   c4t0d0s0 ONLINE 0 0 0
   c4t1d0s0 ONLINE 0 0 0 (resilvering)
errors: No known data errors

6. Será necesario instalar el GRUB en el nuevo disco para asegurarnos que una vez hayamos quitado el disco original el sistema sea capaz de arrancar. Para ello, como hacíamos en Solaris 10, ejecutamos el siguiente comando: 

root@solaris11:~# installgrub -fm /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c4t1d0s0

7. Una vez haya terminado la sincronización separamos el pool. Al separar el pool en el nuevo disco se habrá creado un nuevo pool que posteriormente podremos importar:

root@solaris11:~# zpool split rpool rpool2 c4t1d0s0

8. A continuación apagamos el servidor, desconectamos el disco original y arrancamos el sistema con una imagen de Solaris 11, ya sea la versión Live o con el instalador y seleccionando la opción 3 para abrir una shell. Una vez tengamos el promt importaremos el pool que habíamos creado al separar el mirror y lo importaremos con el nombre rpool para que el GRUB sea capaz de encontrarlo:

# zpool import rpool2 rpool 
# zpool export rpool 

9. Una vez se haya exportado el rpool ya podemos reiniciar y debería arrancar ya con el nuevo disco. Es posible que el zpool aún vea el espacio original. Para ello hay que modificar la propiedad autoexpand para que crezca el espacio automáticamente:

root@solaris11:~# zpool set autoexpand=on rpool

10. Dependiendo de la opción elegida en el punto 3, es posible que sea necesario modificar la Slice 0 del disco para asignarle todos los cilindros disponibles.


Anuncio publicitario

Publicado por Julián García-Sotoca

Ingeniero de Telecomunicación y administrador de sistemas (GNU/Linux - UNIX). Entusiasta del Software libre y Open Source. Working behind the scenes

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: