====== Ajout de disque dur sur FreeNAS avec ZFS ======
Il est possible d'agrandir la taille d'un pool ZFS mais pas de la diminuer. Nous utiliserons pour ce faire la commande zpool add, celle-ci a une contrepartie zpool remove qui ne s'applique que dans de rares cas.
Nous considérons que l'agrandissement d'un pool par un disque non redondant comme dans notre cas est un agrandissement définitif.
===== Contexte =====
Soit une machine dont le système d'exploitation est installé sur un système de fichier ZFS, nous allons ajouter un disque dur et étendre son espace de stockage. Il s'agit d'un disque non redondant.
La commande zpool status
donnera :
[dc@vertigo] ~% zpool status
pool: tank
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
scan: scrub repaired 0 in 0h38m with 0 errors on Thu Oct 8 01:38:51 2015
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
ada0p2 ONLINE 0 0 0
errors: No known data errors
On constate que le pool tank est bien connecté au vdev ada0p2.
On branche un disque dur amovible par un câble usb.
La commande dmesg
retourne ;
umass0: on usbus2
umass0: SCSI over Bulk-Only; quirks = 0x4100
umass0:4:0:-1: Attached to scbus4
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: Fixed Direct Access SCSI-2 device
da0: Serial Number 502CFFFFFFFF
da0: 40.000MB/s transfers
da0: 715404MB (1465149168 512 byte sectors: 255H 63S/T 91201C)
da0: quirks=0x2
le disque est reconnu comme le vdev da0
===== Commande d'ajout =====
La commande zpool add tank da0
permet d'agrandir l'espace de stockage du pool " tank ". Attention cette commande dans le cas d'un disque utilisé comme un
[dc@vertigo] ~% sudo zpool add tank da0
La commande zpool
status retournera alors :
[dc@vertigo] ~% zpool status
pool: tank
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
scan: scrub repaired 0 in 0h38m with 0 errors on Thu Oct 8 01:38:51 2015
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
ada0p2 ONLINE 0 0 0
da0 ONLINE 0 0 0
errors: No known data errors
Le disque da0 a bien été ajouté au pool "tank". La commande df -H
retourne :
[dc@vertigo] ~% df -H
Filesystem Size Used Avail Capacity Mounted on
tank/ROOT/10.1-RELEASE-p27-up-20151102_084225 757G 14G 742G 2% /
devfs 1.0k 1.0k 0B 100% /dev
procfs 4.1k 4.1k 0B 100% /proc
linprocfs 4.1k 4.1k 0B 100% /compat/linux/proc
tank/tmp 742G 3.4M 742G 0% /tmp
tank/usr/home 744G 1.7G 742G 0% /usr/home
tank/usr/home/admin 742G 21M 742G 0% /usr/home/admin
tank/usr/home/dc 772G 29G 742G 4% /usr/home/dc
tank/usr/home/domenge 742G 26k 742G 0% /usr/home/domenge
tank/usr/home/solr 743G 255M 742G 0% /usr/home/solr
tank/usr/jails 742G 35k 742G 0% /usr/jails
tank/usr/jails/.warden-template-10.1-RELEASE-amd64 743G 196M 742G 0% /usr/jails/.warden-template-10.1-RELEASE-amd64
tank/usr/jails/gabia 743G 227M 742G 0% /usr/jails/gabia
tank/usr/jails/test 742G 3.0M 742G 0% /usr/jails/test
tank/usr/obj 742G 26k 742G 0% /usr/obj
tank/usr/ports 742G 26k 742G 0% /usr/ports
tank/usr/src 742G 26k 742G 0% /usr/src
tank/var/audit 742G 28k 742G 0% /var/audit
tank/var/log 742G 1.7M 742G 0% /var/log
tank/var/tmp 742G 56M 742G 0% /var/tmp
map -hosts 0B 0B 0B 100% /net
/dev/fuse 0B 0B 0B 100% /usr/home/dc/.gvfs
nas 10G 197k 10G 0% /media/nas
===== zpool -h =====
création / destruction du pool
create [-fnd] [-o property=value] ...
[-O file-system-property=value] ...
[-m mountpoint] [-R root] ...
destroy [-f]
ajout / retrait d'un vdev sous certaines conditions
add [-fn] ...
remove ...
labelclear [-f]
supervision
list [-Hpv] [-o property[,...]] [-T d|u] [pool] ... [interval [count]]
iostat [-v] [-T d|u] [pool] ... [interval [count]]
status [-vx] [-T d|u] [pool] ... [interval [count]]
online [-e] ...
offline [-t] ...
clear [-nF] [device]
reopen
attach [-f]
detach
replace [-f] [new-device]
split [-n] [-R altroot] [-o mntopts]
[-o property=value] [ ...]
maintenance / vérification
scrub [-s] ...
déplacement / changement de machine, la commande export met le pool disponible pour un déplacement. La commande import retrouve le pôol sur le vdev déplacé et reconstitue le pool et le rend accessible.
import [-d dir] [-D]
import [-d dir | -c cachefile] [-F [-n]]
import [-o mntopts] [-o property=value] ...
[-d dir | -c cachefile] [-D] [-f] [-m] [-N] [-R root] [-F [-n]] -a
import [-o mntopts] [-o property=value] ...
[-d dir | -c cachefile] [-D] [-f] [-m] [-N] [-R root] [-F [-n]]
[newpool]
export [-f] ...
mise à jour de la version de ZFS
upgrade [-v]
upgrade [-V version] <-a | pool ...>
reguid
historique des commandes sur le pool (certaines sont automatiques)
history [-il] [] ...
configuration des options (quotas...) et tuning
get [-Hp] [-o "all" | field[,...]] <"all" | property[,...]> ...
set