Введение
Существует множество инструментов для управления хранилищем в Linux. Однако лишь немногие используются ежедневно для обслуживания и администрирования. В данном руководстве вы ознакомитесь с некоторыми из наиболее часто используемых утилит для управления точками монтирования, устройствами хранения и файловыми системами.
Дополнительные ресурсы
Это руководство не будет охватывать вопросы подготовки устройств хранения к их первоначальному использованию в системе Linux. Это руководство по разделению и форматированию блочных устройств в Linux поможет вам подготовить ваше устройство хранения, если вы еще не настроили ваше хранилище.
Для получения дополнительной информации о терминологии, используемой при обсуждении хранения, попробуйте прочитать эту статью о терминологии хранения.
Определение емкости и использование хранилища с помощью df
Часто самая важная информация, которая вам может понадобиться о хранении в вашей системе, – это объем и текущее использование подключенных устройств хранения.
Чтобы проверить, сколько свободного места доступно в общей сложности, и увидеть текущее использование ваших накопителей, используйте утилиту df. По умолчанию она выводит измерения в блоках по 1К, что не всегда удобно. Добавьте флаг -h
, чтобы вывод был в удобочитаемых единицах:
- df -h
OutputFilesystem 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% и имеет 18 ГБ свободного места, в то время как раздел /dev/sda1
, смонтированный в /mnt/data
, пуст и имеет 94 ГБ свободного места. Другие записи используют файловые системы tmpfs
или devtmpfs
, которые являются волатильной памятью, используемой как постоянное хранилище. Вы можете исключить эти записи, набрав:
- df -h -x tmpfs -x devtmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.1G 18G 6% /
/dev/sda1 99G 60M 94G 1% /mnt/data
Этот вывод предлагает более фокусированный отображение текущего использования диска, удаляя некоторые псевдоустройства и специальные устройства.
Поиск информации о блочных устройствах с помощью lsblk
A block device is a generic term for a storage device that reads or writes in blocks of a specific size. This term applies to almost every type of non-volatile storage, including hard disk drives (HDDs), solid state drives (SSDs), and so on. The block device is the physical device where the filesystem is written. The filesystem, in turn, dictates how data and files are stored.
Утилита lsblk может использоваться для отображения информации о блочных устройствах. Конкретные возможности утилиты зависят от установленной версии, но в общем команда lsblk
может использоваться для отображения информации о самом устройстве, а также информации о разделении и файловой системе, записанной на нем.
Без аргументов lsblk
покажет имена устройств, основные и второстепенные номера, связанные с устройством (используемые ядром Linux для отслеживания драйверов и устройств), является ли устройство съемным, его размер, смонтировано ли оно только для чтения, его тип (диск или раздел) и точку монтирования. На некоторых системах для корректного отображения может потребоваться sudo
:
- sudo lsblk
OutputNAME 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 /
Из вывода обычно наиболее важными частями будут имя, которое относится к имени устройства в /dev
, размер, тип и точка монтирования. Здесь видно, что у вас есть один диск (/dev/vda
) с одним разделом (/dev/vda1
), используемым как раздел /
, и другой диск (/dev/sda
), который не был разделен.
Для получения более актуальной информации о управлении дисками и разделами вы можете использовать флаг --fs
в некоторых версиях:
- sudo lsblk --fs
OutputNAME FSTYPE LABEL UUID MOUNTPOINT
sda
vda
└─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
Если флаг --fs
недоступен в вашей системе, вы можете вручную воспроизвести вывод, используя флаг -o
для запроса конкретного вывода. Вы можете использовать -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT
для получения той же информации.
Чтобы получить информацию о топологии диска, введите:
- sudo lsblk -t
OutputNAME 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
Есть много других ярлыков, доступных для отображения связанных характеристик ваших дисков и разделов. Вы можете вывести все доступные столбцы с флагом -O
, или настроить поля для отображения, указав имена столбцов с флагом -o
. Флаг -h
можно использовать для перечисления доступных столбцов:
- lsblk -h
Output. . .
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).
Работа с монтированием файловых систем
Прежде чем вы сможете использовать новый диск, обычно его нужно разбить, отформатировать файловой системой, а затем примонтировать диск или разделы. Разбиение и форматирование обычно выполняются однократно. Вы можете узнать больше информации о том, как разбить и отформатировать диск в Linux, в Как разбить и отформатировать устройства хранения данных в Linux.
Монтирование – это то, что вы можете делать более часто. Монтирование файловой системы делает ее доступной для сервера в выбранной точке монтирования. Точка монтирования – это каталог, под которым новая файловая система может быть доступна.
Два взаимодополняющих команды применяются в основном для управления монтированием: mount
и umount
. Команда mount
используется для подключения файловой системы к текущему дереву файлов. В системе Linux используется единая файловая иерархия для всей системы, независимо от того, из скольких физических устройств она состоит. Команда umount
(Примечание: это umount
, а не unmount
) используется для отключения файловой системы. Кроме того, команда findmnt
полезна для сбора информации о текущем состоянии подключенных файловых систем.
Использование команды mount
Самый простой способ использования mount
– передача отформатированного устройства или раздела и точки монтирования, куда оно должно быть подключено:
- sudo mount /dev/sda1 /mnt
Точка монтирования, последний параметр, который указывает, где в файловой иерархии должна быть подключена новая файловая система, должна почти всегда быть пустым каталогом.
Обычно вы захотите выбрать более конкретные параметры при монтировании. Хотя mount
может пытаться угадать тип файловой системы, почти всегда лучше передать тип файловой системы с помощью опции -t
. Для файловой системы Ext4 это будет:
- sudo mount -t ext4 /dev/sda1 /mnt
Есть множество других вариантов, которые будут влиять на способ монтирования файловой системы. Существуют общие параметры монтирования, которые можно найти в разделе НЕЗАВИСИМЫЕ ОТ ФАЙЛОВОЙ СИСТЕМЫ ПАРАМЕТРЫ МОНТИРОВАНИЯ руководства по монтированию.
Передайте другие параметры с флагом -o
. Например, чтобы смонтировать раздел с параметрами по умолчанию (которые означают rw,suid,dev,exec,auto,nouser,async
), вы можете передать -o defaults
. Если вам нужно переопределить разрешения на чтение-запись и смонтировать только для чтения, вы можете добавить ro
как дополнительный параметр, который переопределит rw
из опции defaults
:
- sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt
Чтобы смонтировать все файловые системы, описанные в файле /etc/fstab
, вы можете передать опцию -a
:
- sudo mount -a
Список параметров монтирования файловой системы
Чтобы отобразить параметры монтирования, используемые для конкретного монтирования, используйте команду findmnt
. Например, если вы просмотрели монтирование только для чтения из приведенного выше примера с помощью findmnt
, это будет выглядеть примерно так:
- findmnt /mnt
OutputTARGET SOURCE FSTYPE OPTIONS
/mnt /dev/sda1 ext4 ro,relatime,data=ordered
Это может быть полезно, если вы экспериментировали с несколькими параметрами и, наконец, обнаружили набор, который вам нравится. Вы можете узнать используемые параметры с помощью findmnt
, чтобы знать, что следует добавить в файл /etc/fstab
для будущего монтирования.
Демонтирование файловой системы
Команда umount
используется для демонтирования указанной файловой системы. Еще раз, это umount
, а не unmount
.
Общая форма команды заключается в указании точки монтирования или устройства текущей примонтированной файловой системы. Убедитесь, что вы не используете файлы в точке монтирования и что у вас нет запущенных приложений (включая текущую оболочку) внутри точки монтирования:
- cd ~
- sudo umount /mnt
Обычно нет опций, которые можно добавить к поведению по умолчанию при демонтировании.
Заключение
Хотя этот список далеко не исчерпывающий, эти утилиты должны покрыть большую часть того, что вам нужно для ежедневных задач администрирования системы. Изучив несколько инструментов, вы сможете управлять накопителями на вашем сервере.