ZFS, Solaris 10

Материал из sysadm
Перейти к навигации Перейти к поиску

В Solaris 10 файловые системы ZFS монтируются без использования /etc/vfstab.

В Solaris по умолчанию не создается файл устройства для диска, вместо этого создаются файлы всех возможных разделов (слайсов), даже если сами разделы не созданы. Тем не менее, пул можно создать, указав на несуществующий файл устройства диска, после чего этот файл будет создан. Необязательно создавать пул на устройстве диска, можно создавать пулы на отдельных разделах (слайсах).

В пуле можно создавать тома и файловые системы. При создании пула автоматически создается корневая файловая система пула. Создать пул без корневой файловой системы нельзя. Корневая файловая система пула обязана иметь точку монтирования. По умолчанию корневая файловая система пула монтируется в корень / с именем соответствующим имени пула.

Тома в пуле обычно создаются для swap разделов, но их можно использовать и для других целей, как обычные дисковые устройства.

На томе нельзя создать файловую систему ZFS, но можно создать пул ZFS в котором могут размещаться файловые системы.

Делить пул на тома и создавать на них вложенные пулы ZFS обычно не имеет смысла, т.к. ZFS позволяет создавать вложенные файловые системы ZFS в рамках одного пула, выделять для них нужные объемы и ограничивать размеры.

Пул ZFS может использоваться как альтернатива LVM, тома внутри пула не привязаны к физическому месту, на них можно создавать другие файловые системы.

Ограничение памяти

По умолчанию, ZFS может занять до 75% оперативной памяти, что может создавать проблему. Чтобы избежать проблем, необходимо установить лимит.

# проверка использования памяти
kstat -m zfs | grep size
echo "::arc" | mdb -k|grep size

# установка лимита на размер кэша (необходима перезагрузка)
vi /etc/system
set zfs:zfs_arc_max=<размер_в_байтах>


Работа с пулами

# список пулов
zpool list

# список файловых систем и внутренних томов всех пулов
zfs list

# по каждому пулу ведется отдельная история команд
zpool history

# создание пула, по умолчанию создается точка монтирования соответствующая имени пула в корне файловой системы
zpool create <pool_name> /dev/dsk/some_disk_device

# создание пула с указанием точки монтирования
zpool create -m /path/to/mount <pool_name> /dev/dsk/some_disk_device

# добавление в пул блочного устройства для расширения (если нужно зеркалирование или raid, то см. по ключевым словам mirror, zraid)
zpool add <pool_name> /dev/dsk/some_disk_device

# разрушение пула, каталог точки монтирования удаляется только если он был задан по умолчанию
zpool destroy <pool_name>

# вывод подробной информации о пулах, в том числе информация о физических дисках
zpool status
zpool status <pool_name>

# вывод всех опций пула
zpool get all <pool_name>

# вывод опции пула
zpool get <option> <pool_name>

# изменение опции пула
zpool set <option>=<value> <pool_name>

Работа с томами

# создание тома заданного размера в существующем пуле
zfs create -V 10G <pool_name>/<volume_name>

# удаление тома из пула
zfs destroy <pool_name>/<volume_name>

# переименование тома в пуле
zfs rename <pool_name>/<volume_name> <pool_name>/<new_volume_name>

Работа с файловыми системами

# создание файловой сисьемы в существующем пуле
zfs create <pool_name>/<fs_name>

# создание файловой системы с определением дополнительных опций
zfs create -o mountpoint=/mnt/myfs -o reservation=100G -o quota=100G mypool/myfs

# вывод всех опций для заданного тома
zfs get all

# задание дополнительных опций для существующей файловой системы
zfs set mountpoint=/mnt/myfs reservation=100G quota=100G mypool/myfs

Расширение пула

По умолчанию, при увеличении размера блочного устройства, размер созданного на нем пула не изменяется. Чтобы размер пула расширился на все блочное устройство, необходимо включить опцию autoexpand.

zpool set autoexpand=on <pool_name>

Необходимо учитывать, что пул может быть создан на любом блочном устройстве (раздел, слайс, диск, том). Соответственно, чтобы расширить пул, необходимо сначала расширить то блочное устройство на котором он был создан.