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 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.