Основы управления устройствами хранения данных в 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: Ext4, Linux