Основы управления устройствами хранения данных в Linux

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

Примечание: Чтобы научиться создавать дисковые разделы и форматировать устройства и диски, читайте предыдущее руководство. Ознакомиться с общими понятиями и подходами к управлению устройствами в Linux можно в этой статье.

Анализ дискового пространства

Очень часто возникает необходимость узнать объём свободного и использованного места на диске. Для этого существует утилита df.

По умолчанию она выводит результат в блоках, что не всегда удобно. Чтобы получить удобочитаемый вывод, добавьте флаг -h:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            238M     0  238M   0% /dev
tmpfs            49M  624K   49M   2% /run
/dev/vda1        20G  1.1G   18G   6% /
tmpfs           245M     0  245M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           245M     0  245M   0% /sys/fs/cgroup
tmpfs            49M     0   49M   0% /run/user/1000
/dev/sda1        99G   60M   94G   1% /mnt/data

Как видите, раздел /dev/vda1 (смонтированный в каталоге /) заполнен на 6%, в нём осталось ещё 18G свободного пространства, а раздел /dev/sda1, смонтированный в /mnt/data, пуст и предоставляет 94G свободного пространства. Другие записи используют файловые системы tmpfs и devtmpfs; они относятся к энергозависимой памяти. Их можно исключить с помощью флага –х:

df -h -x tmpfs -x devtmpfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   18G   6% /
/dev/sda1        99G   60M   94G   1% /mnt/data

Такой вывод сфокусирован на анализе текущего диска.

Данные о блочных устройствах

Блочное устройство – это общий термин для обозначения устройства хранения данных, которое считывает или записывает данные в блоках определенного размера. Этот термин относится почти к каждому типу энергонезависимой памяти, в том числе к жестким дискам (HDD), твердотельным накопителям (SSD), флэш-памяти и т.д. Блочное устройство – это физическое устройство, на котором записывается файловая система. Файловая система, в свою очередь, определяет схему (разметку), согласно которой сохраняются данные и файлы.

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

Без аргументов lsblk выведет имя устройства, его размер, права доступа, тип (диск или раздел), точку монтирования и сообщит, является ли устройство съемным (столбец RM).

sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
vda    253:0    0   20G  0 disk
└─vda1 253:1    0   20G  0 part /

Примечание: В некоторых системах команду нужно запускать с sudo.

Как правило, самыми важными данными являются имя, размер, тип и точка монтирования устройства. Как видите, в данном случае в системе есть один диск /dev/vda) с одним разделом (/dev/vda1), который используется как раздел /, и второй диск (/dev/sda) без разделов.

Чтобы получить более актуальную информацию о диске и разделах, добавьте флаг –fs:

sudo lsblk --fs
NAME   FSTYPE LABEL  UUID                                 MOUNTPOINT
sda
vda
└─vda1 ext4   DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /

Некоторые версии lsblk не поддерживают флага –fs. В таком случае нужно запросить данные вручную с помощью флага –о (используйте -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT).

Чтобы получить информацию о топологии диска, введите:

sudo lsblk -t
NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED    RQ-SIZE  RA WSAME
sda            0    512      0     512     512    1 deadline     128 128    2G
vda            0    512      0     512     512    1              128 128    0B
└─vda1         0    512      0     512     512    1              128 128    0B

Есть много других флагов и опций для отображения данных о дисках и разделах. Флаг –О позволяет вывести все доступные столбцы, а флаг –о задаёт столбцы, которые нужно отобразить. Флаг -h выводит список доступных столбцов:

lsblk -h
. . .
Available columns (for --output):
NAME  device name
KNAME  internal kernel device name
. . .
SUBSYSTEMS  de-duplicated chain of subsystems
REV  device revision
VENDOR  device vendor
For more details see lsblk(8).

Монтирование файловой системы

Как правило, прежде чем использовать диск, его нужно разделить, отформатировать и смонтировать устройство или разделы. Разделение и форматирование обычно выполняется всего однажды, чего нельзя сказать о монтировании – как правило, эту процедуру нужно выполнять часто. Монтирование файловой системы позволяет получить к ней доступ на сервере в выбранной точке монтирования.

Точка монтирования – это просто каталог, в котором будет смонтирована файловая система.

Обычно для управления монтированием используются команды mount и umount. Команда mount прикрепляет файловую систему к текущему дереву файлов, а umount отсоединяет её.

Примечание: Не путайте эту команду с командой unmount.

Команда findmnt собирает информацию о текущем состоянии подключенных файловых систем.

Команда mount

Команде mount нужно передать отформатированное устройство или раздел и точку монтирования:

sudo mount /dev/sda1 /mnt

Точка монтирования (последний параметр) задаёт каталог, в котором будет смонтирована файловая система; как правило, такой каталог должен быть пуст.

Иногда для монтирования нужно указать более конкретные параметры. Команда mount может попытаться угадать тип файловой системы, однако лучше указать его самостоятельно. Для этого существует опция –t. Например, чтобы задать Ext4, нужно ввести:

sudo mount -t ext4 /dev/sda1 /mnt

Есть ещё много других опций, которые могут повлиять на монтирование. Существуют общие параметры монтирования, которые можно найти в разделе мануала FILESYSTEM INDEPENDENT MOUNT OPTIONS. Больше о файловых системах можно узнать в разделе FILESYSTEM SPECIFIC MOUNT OPTIONS. Чтобы открыть мануал, используйте:

man mount

Передайте другие параметры с помощью флага –о. Например, чтобы смонтировать раздел со стандартными параметрами (rw,suid,dev,exec,auto,nouser,async), можно использовать просто -o defaults. Чтобы изменить права доступа и оставить только право на чтение, в конце команды укажите опцию ro, которая переопределит rw параметра defaults:

sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt

Чтобы смонтировать все системы, указанные в файле /etc/fstab, передайте флаг –а.

sudo mount -a

Листинг опций монтирования файловых систем

Чтобы отобразить параметры монтирования, использованные для конкретного монтирования, используйте команду findmnt. Например:

findmnt /mnt
TARGET SOURCE    FSTYPE OPTIONS
/mnt   /dev/sda1 ext4   ro,relatime,data=ordered

Эта команда очень полезна, так как позволяет узнать все использованные ранее опции и параметры и определить набор наиболее полезных опций для каждого конкретного случая монтирования. Затем эти опции можно добавить в файл /etc/fstab.

Демонтирование файловой системы

Команда umount позволяет демонтировать файловую систему.

Команде нужно передать точку монтирования или устройство смонтированной в настоящее время файловой системы. Убедитесь, что вы не используете какие-либо смонтированные файлы, и что в точке монтирования нет запущенных приложений.

cd ~
sudo umount /mnt

У этой команды есть дополнительные опции, но они очень редко используются.

Заключение

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

Tags: ,

Добавить комментарий