ZFS sous Solaris / Open Solaris
Les commandes de base
| Lister les pool | zpool list |
| Lister les zfs | zfs list |
| Etat du pool | zpool status |
| Lister les disques | format < /dev/null |
| Statistiques | zpool iostat 1 |
Créer un pool ZFS en mirroir
On liste d'abord les disques disponible avec la commande
format < /dev/null
AVAILABLE DISK SELECTIONS:
0. c1t0d0
/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,1060@1/sd@0,0
1. c1t2d0
/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,1060@1/sd@2,0
2. c1t3d0
/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,1060@1/sd@3,0
3. c1t4d0
/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,1060@1/sd@4,0
4. c1t5d0
/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,1060@1/sd@5,0
Nous vérifions ensuite le ou les disque(s) déjà utilisés par le root pool avec la commande
zpool status :
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c1t0d0s0 ONLINE 0 0 0
Le disque c1t0d0 est déjà utilisé, nous pouvons donc utiliser les autres disques pour créer un autre pool.
Pour créer un Raid 0 (striping sans parités) :
zpool create testpool c1t2d0 c1t3d0 c1t4d0 c1t5d0
On utilise
zpool status testpool pour vérifier la création du pool :
zpool status testpool
pool: testpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0
c1t5d0 ONLINE 0 0 0
Si le point de montage n'est pas spécifié dans la commande de création, le point de montage par défaut est le nom du pool. Ex : /testpool
Pour un Raid 1 (mirroring sans parités) :
zpool create testpool mirror c1t2d0 c1t3d0 c1t4d0 c1t5d0
zpool status testpool
pool: testpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0
c1t5d0 ONLINE 0 0 0
Créer un pool ZFS en raidz (parités)
zpool create testpool raidz1 c1t2d0 c1t3d0 c1t4d0
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0
Backup avec ZFS send / ZFS receive
Pour vos backups, ZFS permet d'envoyer un flux d'instantané d'un filesystem soit en local soit à distance via SSH.
En local :
On commence par créer un snapshot du filesystem et des descendances :
zfs snapshot -r users@today
zfs list
NAME USED AVAIL REFER MOUNTPOINT
users 187K 33.2G 22K /users
users@today 0 - 22K -
users/user1 18K 33.2G 18K /users/user1
users/user1@today 0 - 18K -
users/user2 18K 33.2G 18K /users/user2
users/user2@today 0 - 18K -
users/user3 18K 33.2G 18K /users/user3
users/user3@today 0 - 18K -
On effectue le backup :
zfs send -R users@today > /snaps/users-R
On détruit le zfs d'origine :
zfs destroy -r users
On restaure :
zfs receive -F -d users < /snaps/users-R
zfs list
NAME USED AVAIL REFER MOUNTPOINT
users 196K 33.2G 22K /users
users@today 0 - 22K -
users/user1 18K 33.2G 18K /users/user1
users/user1@today 0 - 18K -
users/user2 18K 33.2G 18K /users/user2
users/user2@today 0 - 18K -
users/user3 18K 33.2G 18K /users/user3
users/user3@today 0 - 18K -
A distance :
zfs send users/user1@today | ssh hote_distant zfs recv backup/user1@today
Cette commande envoie les données de l'instantané
users/user1@today, le reçoit dans le système de fichiers
backup/user1 et crée également un instantané
user1@today sur le système hote_distant. Il faut que ssh soit correctement configuré entre les 2 hôtes (droits, clés, etc...).