02 — Сервер на флешке. ZFS

Размечаем дисковое пространство и создаем зеркало ZFS

Я использую для этого формат размещения таблицы разделов GUID Partition Table (GPT).

Для разметки с использованием GPT применяется утилита gpart.

1. Убираем старую схему разметки:

gpart destroy -F ada0
gpart destroy -F ada1

2. Создадим схему GPT на диске:

gpart create -s gpt ada0
ada0 created
gpart create -s gpt ada1
ada1 created

3. Создаем партиции с ZFS:

gpart add -t freebsd-zfs -l disk0 -a 4k ada0
ada0p1 added
gpart add -t freebsd-zfs -l disk1 -a 4k ada1
ada1p1 added

4. Создаем zpool mirror:

zpool create -f tank mirror /dev/gpt/disk0 /dev/gpt/disk1
zpool list

NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank   928G   124K   928G     0%  1.00x  ONLINE  -
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
 gpt/disk0 ONLINE 0 0 0
 gpt/disk1 ONLINE 0 0 0

errors: No known data errors

5. Создаем файловые системы:

zfs create -o mountpoint=/usr/obj tank/obj
zfs create -o mountpoint=/usr/ports tank/ports
zfs create -o mountpoint=/usr/src tank/src
zfs create -o mountpoint=/usr/sup tank/sup
zfs create -o mountpoint=/var/db/portsnap tank/portsnap
zfs list

NAME            USED  AVAIL  REFER  MOUNTPOINT
tank            366K   913G    31K  /tank
tank/obj         31K   913G    31K  /usr/obj
tank/ports       31K   913G    31K  /usr/ports
tank/portsnap    31K   913G    31K  /var/db/portsnap
tank/src         31K   913G    31K  /usr/src
tank/sup         31K   913G    31K  /usr/sup