For at installere ZFS support for linux er der flere muligheder, jeg vil derfor vise hvordan i ubuntu.
$ apt-get install zfs-fuse zfsutils
For at oprette en zfs disk skal du bruge zool create komandoen. Jeg starter med en simple eksemple som vist her. For at oprette disk systemer bruges komandoen zpool create For at oprette en disk som normal med ext3/4 bruges skal du skrive.
$ zpool create zfsdisk sdb
sdb er som vist her den disk som du vil bruge og der må ikke være partiioner på disken. Disse diske kan også være filer på andre diske. kaldet VDEV i zfs. Der er flere typer af VDEV i ZFS:
- disk (default)- Den fysiske harddisk i dit system.
- file- The absolute path of pre-allocated files/images.
- mirror- Standart software RAID-1 mirror.
- raidz1/2/3- Ikke standart mirror parity-based software RAID level.
- spare- Harddisk som er makeret spare a “hot spare” for ZFS software RAID.
- cache- Device som bliver brugt til cache level 2 adaptive read cache (L2ARC).
- log- Intern log system til ZFS (SLOG) called the “ZFS Intent Log” or ZIL.
Nested VDEVs.
$ zpool create tank mirror sde sdf mirror sdg sdh
Et perfect eksemple er standard RAID 1+0 eller RAID-10 med mirror på.
$ zpool status pool: tank state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sde ONLINE 0 0 0 sdf ONLINE 0 0 0 mirror-1 ONLINE 0 0 0
en meget simple pool.
sdg ONLINE 0 0 0 sdh ONLINE 0 0 0 errors: No known data errors
Hybrid pools. Her er det muligt at sammen sætte diske samt filer til fil systemer.
$zpool create tank mirror /tmp/file1 /tmp/file2 mirror /tmp/file3 /tmp/file4 log mirror sde sdf cache sdg sdh $ zpool status tank pool: tank state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 /tmp/file1 ONLINE 0 0 0 /tmp/file2 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 /tmp/file3 ONLINE 0 0 0 /tmp/file4 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 sde ONLINE 0 0 0 sdf ONLINE 0 0 0 cache sdg ONLINE 0 0 0 sdh ONLINE 0 0 0 errors: No known data errors
Her sker der mange ting. Først opretter vi en RAID 1+0 ved brug af image filerne /tmp/file*. Som nummer 2 opretter vi en 3 VDEV med navnet mirror-2 som ikke bliver brugt til at gemme data, men bruges af ZFS intern log system. Jeg vil beskrive ZIL en anden gang. Når vi oprette disse bruges de som cache på disk sdg samt sdh Det er standard diske.
$ zpool status zfsdisk pool: zfsdisk state: ONLINE scan: scrub repaired 0 in 0h0m with 0 errors on Sun Nov 16 12:28:44 2014 config: NAME STATE READ WRITE CKSUM zfsdisk ONLINE 0 0 0 sdb ONLINE 0 0 0 errors: No known data errors
Her vises hvordan du køre scrub på volumen. Det bevirker at alle sektore bliver checked mod checksum. Scrub er en kommando hvor du køre en test af disken for at se om der er fejl.
$ zpool scrub <zfsdisk>
Du kan se status på scrub processen med status komandoen.
$ zfs snapshot zfsdisk@today
Med snapshot er det muligt at gemme en kopi af den aktive disk som et image.
$ zfs rollback zfsdisk@today
Det er muligt at lave roolback på snapshots igen.
Mere info her pthree.org/2012/12/04/zfs-administration-part-i-vdevs