Подключение дополнительного диска к Linux серверу

Описание

В этой статье описан пример процесса добавления и подключения нового «сырого» диска к существующему серверу Linux, такой как RHEL / CentOS или Debian / Ubuntu.

В данном примере мы рассмотрим, как добавить дополнительный диск объемом 90 GB для подключения в качестве раздела «/data».

Данная статья описывает процесс подключения нового диска на основе дистрибутива «CentOS Linux 7». В статье будут рассмотрены процессы создания раздела, форматирования раздела, создание точки монтирования, а также монтирование созданного раздела как в ручном режиме так и в автоматическом.

Создание раздела будет выполнено с помощью команд fdisk. «fdisk» - это утилита командной строки для просмотра и управления жесткими дисками и разделами в системах Linux.

Информация о подключенных дисках и разделах до подключения диска:

fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a25ba

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    10485759     4729856   8e  Linux LVM

Disk /dev/mapper/vg0-rootfs: 4840 MB, 4840226816 bytes, 9453568 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

После подключения диска емкостью 90 GB, fdisk -l выдаст следующий вывод:

fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a25ba

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    10485759     4729856   8e  Linux LVM

Disk /dev/mapper/vg0-rootfs: 4840 MB, 4840226816 bytes, 9453568 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vdb: 96.6 GB, 96636764160 bytes, 188743680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Как видно, в системе появилось новое устройство - виртуальный диск: «Disk /dev/vdb: 96.6 GB».

Создание раздела

В данном примере будет создан раздел на диске занимающий все свободное пространство. Это значит, что размер раздела будет равен размеру диска.

Примечание

В командной строке можно использовать две команды для разбиения нового диска: fdisk и parted. Fdisk - более старая программа, и ее основным недостатком является то, что она может создавать только разделы MBR. Parted - позволяет создавать разделы MBR или GPT.

MBR (Master Boot Record) имеет два основных ограничения: у вас не может быть раздела больше 2 ТБ, и у вас не может быть более 4 основных разделов. GPT (GUID Partition Table) может выполнять обе эти функции, но это является частью стандарта EFI. Это означает, что ваше ядро должно поддерживать EFI. Последняя версия ядра поддерживает EFI, и почти все последние дистрибутивы тоже.

Так как максимальный размер диска составляет 2TB, и в данном примере подключается диск, который объемом 90 GB, будет использоваться утилита «fdisk».

Приступим к созданию раздела.

  1. Запустите fdisk с помощью следующей команды:
fdisk /dev/vdb
  1. Утилита fdisk отобразит следующее меню:
fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6561828e.
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
  1. Для создания нового раздела введите «n» (add a new partition) и нажмите «enter»:
Command (m for help): n

Partition type:
 p   primary (0 primary, 0 extended, 4 free)
 e   extended
Select (default p):
  1. Создаем основной раздел. Введите «р» и нажмите «enter».
::
Select (default p): p Partition number (1-4, default 1):
  1. Это будет единственный раздел на диске, номер 1. Введите «1» и нажмите «enter».
Partition number (1-4, default 1): 1
First sector (2048-188743679, default 2048):
  1. Выбираем умолчательное значение «default 2048». Нажмите «enter».
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-188743679, default 188743679):
  1. Выбираем умолчательное значение «default 188743679». Нажмите «enter».
Using default value 188743679
Partition 1 of type Linux and of size 90 GiB is set
  1. Теперь, когда раздел введен, выберите опцию «w», чтобы записать таблицу разделов на диск. Введите «w» нажмите «enter».
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
  1. Если все прошло хорошо, диск был правильно размеченный и уже готовый к форматированию. Поскольку это первый раздел, Linux распознает его как /dev/vdb1, в то время как диск, на котором находится раздел, по-прежнему /dev/vdb.

Форматирование раздела

  1. Выполняем форматирование нового раздела «/dev/vdb1» как файловую систему «ext4»:
mkfs -t ext4 /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
5898240 inodes, 23592704 blocks
1179635 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2172649472
720 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Примечание

Выполняя форматирование, замените «/dev/vdb1» на путь вашего собственного раздела.

  1. Выполняем проверку с помощью команды «blkid»:
blkid
/dev/mapper/vg0-rootfs: UUID="1e4b1167-6fa3-4d44-bdb7-282841e0b31e" TYPE="ext4"
/dev/vda2: UUID="9stkBB-ZiYX-S7sb-rGxJ-idrH-m0ov-OTEuNs" TYPE="LVM2_member"
/dev/vda1: UUID="ab1dd6e8-62a4-4752-befe-cda7f0e8383a" TYPE="ext4"
/dev/vdb1: UUID="10396c2f-9335-4966-8e94-377e413045b4" TYPE="ext4"

Создание точки монтирования

12. Теперь, когда диск разбит на разделы и отформатирован, нужно выбрать точку монтирования. Это будет место, откуда вы получите доступ к диску в будущем. Для этого примера мы будем использовать путь «/data».

mkdir /data

Теперь всё готово для монтирования раздела к точке монтирования.

Монтирование раздела

  1. Для ручного монтирования используйте следующую команду:
mount /dev/vdb1 /data

Автоматическое монтирование раздела

14. Для обеспечения автоматического монтирования раздела к точке монтирования, необходимо внести изменения в «/etc/fstab». В данный конфигурационный файл необходимо добавить строку автоподключения:

UUID=10396c2f-9335-4966-8e94-377e413045b4 /data ext4 defaults 0 0

После внесенных изменений файл /etc/fstab будет выглядеть примерно так:

# /etc/fstab
# Created by anaconda on Thu Sep 14 14:20:31 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg0-rootfs  /                       ext4    defaults        1 1
UUID=ab1dd6e8-62a4-4752-befe-cda7f0e8383a /boot                   ext4    defaults        1 2
UUID=10396c2f-9335-4966-8e94-377e413045b4 /data ext4 defaults 0 0

Если перед изменением «fstab» не выполнялся процесс монтирования, описанный в пункте № 13, то его необходимо выполнить.

15. В качестве завершения и демонстрации успешно выполненного задания по подключению диска используем команду «df -h»:

df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg0-rootfs  4,4G  1,6G  2,5G  40% /
devtmpfs                3,9G     0  3,9G   0% /dev
tmpfs                   3,9G     0  3,9G   0% /dev/shm
tmpfs                   3,9G  8,6M  3,9G   1% /run
tmpfs                   3,9G     0  3,9G   0% /sys/fs/cgroup
/dev/vdb1                89G   57M   84G   1% /data
/dev/vda1               477M  121M  327M  28% /boot
tmpfs                   799M     0  799M   0% /run/user/0

Как видно из результатов вывода, раздел /dev/vdb1 успешно примонтирован к /data. Общий объем раздела менее 90GB, так как часть пространства диска зарезервирована под служебные цели. В целом же диск готов к использованию.