How to Add New Disks Using LVM to an Existing Linux System
LVM (Logical Volume Management) is a flexible and advanced option available to manage hard disks in most of the major Linux distributions. It is easy to manage the disks with LVM than the tradition tools like fdisk, parted or gparted.
Some of the terms which you need to understand while using LVM:
- Physical Volume (PV): Consists of Raw disks or RAID arrays or other storage devices.
- Volume Group (VG): Combines the physical volumes into storage groups.
- Logical Volume (LV): VG’s are divided into LV’s and are mounted as partitions.
In this article, we will take you through the steps to configure Disks using LVM in existing Linux machine by creating PV, VG’s and LV’s.
Note: If you don’t what to use LVM, you can add disk directly to an existing Linux system using these guides.
Let’s consider a scenario where there are 2 HDD of 20GB and 10GB, but we need to add only 2 partitions one of 12GB and another 13GB. We can achieve this using LVM method only.
Once the disks has been added, you can list them using the following command.
1. Now partitions both the disks /dev/xvdc and /dev/xvdd using fdisk command as shown.
# fdisk /dev/xvdc # fdisk /dev/xvdd
Use n to create the partition and save the changes with w command.
2. After partitioning, use the following command to verify the partitions.
3. Create Physical Volume (PV).
# pvcreate /dev/xvdc1 # pvcreate /dev/xvdd1
4. Create Volume Group (VG).
# vgcreate testvg /dev/xvdc1 /dev/xvdd1
Here, “testvg” is the VG name.
5. Now use “vgdisplay” to list all details about the VG’s in the system.
# vgdisplay OR # vgdisplay testvg
6. Create Logical Volumes (LV).
# lvcreate -n lv_data1 --size 12G testvg # lvcreate -n lv_data2 --size 14G testvg
Here, “lv_data1” and “lv_data2” are LV name.
7. Now use “lvdisplay” to list all details about the Logical volumes available in the system.
# lvdisplay OR # lvdisplay testvg
8. Format the Logical Volums (LV’s) to ext4 format.
# mkfs.ext4 /dev/testvg/lv_data1 # mkfs.ext4/dev/testvg/lv_data2
9. Finally, mount the file system.
# mount /dev/testvg/lv_data1 /data1 # mount /dev/testvg/lv_data2 /data2
Make sure to create data1 and data2 directories before mounting the filesystem.
That’s it! In this article, we discussed how to create a partition using LVM. If you have any comments or queries regarding this, feel free to post in the comments.
I work on various platforms including IBM-AIX, Solaris, HP-UX, and storage technologies ONTAP and OneFS and have hands on experience on Oracle Database.
Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.
Related Posts
9 thoughts on “How to Add New Disks Using LVM to an Existing Linux System”
Why would you people create partitions? The WHOLE point of lvm is to replace traditional partitions with something more flexible. On a physical disk, it’s just a redundancy, but in the virtual world, you are just creating a partition prison for your data that you cannot easily expand. If you pvcreate on the raw device instead of a partition, should that raw device ever change sizes (as in growing a virtual disk), it is trivial to expand it to use the space. With a partition, it’s a huge problem. There is no benefit to a partition, other than for admins who still use fdisk instead of lsblk to see disk volumes. The ONLY place you need a partition is for your boot volume, as that is a limitation of traditional hardware. Reply
I was taught that the hard drive naming convention in Linux is ‘/dev/hdx#‘ or ‘/dev/sdx#‘. In the article, you are using ‘xvdc‘ and ‘xvdd‘.
# fdisk /dev/xvdc # fdisk /dev/xvdd
@Drgaonmouth, We have used cloud virtual storage devices for this setup, that’s why the naming is XVD. Reply
Can just a single partition be part of a logical device? I have a Win10 notebook. The Win10 requirements occupy most of the space on sda. Can I set up a small Linux partition on sda that connects with a physical USB disk I keep plugged into the machine to make up a logical disk for Linux? My Win install is MBR, non-UEFI, not secure boot, but would that make any difference? Reply
It may be worth adding a final step about updating /etc/fstab so that the mount is persistent across boots. Reply
Статья Как добавить дополнительный второй жесткий диск в Linux LVM и увеличить размер хранилища
На моем домашнем сервере Linux установлен диск на 250 ГБ. Я только что купил новый 250 ГБ SATA-диск, и я хочу добавить новый диск в мой существующий том LVM, чтобы увеличить его размер до 500 ГБ. Как добавить диск в LVM и расширить объем LVM в операционной системе Linux?
- Никаких ограничений на размер диска;
- Увеличена пропускная способность диска
- Объемы зеркалирования для критически важных бизнес-данных;
- Снимки тома;
- Легкое резервное копирование и восстановление с использованием моментальных снимков;
- Простое перемещение данных;
- Изменение размеров пулов хранения (добавление или удаление дисков) без обязательного переформатирования дисков.
Внимание: Будьте осторожны с lvm / mkfs.ext4 и другими командами, а также с именами устройств, т.к. если имя устройства задано неверно, это может уничтожить все данные. Соблюдайте осторожность и всегда держите полные резервные копии.
Шаг 1 – Узнать информацию о существующих LVM
- Физические тома (ФТ(PV)) – фактические (например, /dev/sda, /dev,sdb, /dev/vdb и т.д.)
- Группы томов (ГТ(VG)) – физические тома объединяются в группы томов. (например, my_vg = /dev/sda + /dev/sdb .)
- Логические тома (ЛТ(LV)) – группа томов, в свою очередь, делится на логические тома (например, my_vg делится на my_vg/data, my_vg/backups, my_vg/home, my_vg/mysqldb и т.д.)
Как отобразить информацию о физических томах (pv)
Введите следующую команду pvs, чтобы просмотреть информацию о физических томах:
Примеры возможных выводов данных:
Итак, в настоящее время мой LVM включает физический том (фактический диск), называемый /dev/vda5 . Чтобы просмотреть подробную информацию о свойствах, введите:
Примеры возможных выводов данных:
Из вышеуказанного вывода ясно видно, что наша группа томов с именем ubuntu-box-1-vg сделана из физического тома с именем /dev/vda5 .
Как отобразить информацию о LVM группе томов (vg)
Введите любую из следующих команд vgs/vgdisplay vgs , чтобы просмотреть информацию о группах томов и их свойствах:
Примеры возможных выводов данных:
Как отобразить информацию о LVM логическом томе (lv)
Введите любую из следующих команд lvs command / lvdisplay , чтобы просмотреть информацию о группах томов и их свойствах:
Примеры возможных выводов данных:
- /dev/ubuntu-box-1-vg/root – корневая файловая система;
- /dev/ubuntu-box-1-vg/swap_1 – пространство для свопинга.
Шаг 2 – Узнайте информацию о новом диске
Вам нужно добавить новый диск на свой сервер. В этом примере для демонстрационной цели я добавил новый диск, который имеет размер 5GiB. Для того чтобы узнать информацию о запуске новых дисков:
$ sudo fdisk -l | grep '^Disk /dev/'
Примеры возможных выводов данных:
Другой вариант – сканировать все видимые устройства для LVM2:
/dev/ram0 [ 64.00 MiB] /dev/ubuntu-box-1-vg/root [ 37.49 GiB] /dev/ram1 [ 64.00 MiB] /dev/ubuntu-box-1-vg/swap_1 [ 2.00 GiB] /dev/vda1 [ 487.00 MiB] /dev/ram2 [ 64.00 MiB] /dev/ram3 [ 64.00 MiB] /dev/ram4 [ 64.00 MiB] /dev/ram5 [ 64.00 MiB] /dev/vda5 [ 39.52 GiB] LVM physical volume /dev/ram6 [ 64.00 MiB] /dev/ram7 [ 64.00 MiB] /dev/ram8 [ 64.00 MiB] /dev/ram9 [ 64.00 MiB] /dev/ram10 [ 64.00 MiB] /dev/ram11 [ 64.00 MiB] /dev/ram12 [ 64.00 MiB] /dev/ram13 [ 64.00 MiB] /dev/ram14 [ 64.00 MiB] /dev/ram15 [ 64.00 MiB] /dev/vdb [ 5.00 GiB] 2 disks 18 partitions 0 LVM physical volume whole disks 1 LVM physical volume
Шаг 3 – Создание физических томов (pv) на новом диске под названием /dev/vdb
Введите следующую команду:
Physical volume "/dev/vdb" successfully created
WARNING: only considering LVM devices /dev/vda5 [ 39.52 GiB] LVM physical volume /dev/vdb [ 5.00 GiB] LVM physical volume 1 LVM physical volume whole disk 1 LVM physical volume
Шаг 4 – Добавление недавно созданного физического тома (pv) с именем /dev/vdb в существующий логический том (lv)
Введите следующую команду для добавления физического тома /dev/vdb в группу томов «ubuntu-box-1-vg»:
$ sudo vgextend ubuntu-box-1-vg /dev/vdb
Volume group "ubuntu-box-1-vg" successfully extended
Наконец, вам нужно расширить /dev/ubuntu-box-1-vg/root , чтобы создать диск общим размером 45GB (/dev/vdb (5G) + существующий /dev/ubuntu-box-1-vg/root (40G)).
$ sudo lvm lvextend -l +100%FREE /dev/ubuntu-box-1-vg/root
Size of logical volume ubuntu-box-1-vg/root changed from 37.49 GiB (9597 extents) to 42.52 GiB (10885 extents). Logical volume root successfully resized.
Однако, если вы запустите df -h или любую другую команду, вы все равно увидите /dev/ubuntu-box-1-vg/root как 40G. Для увеличения файловой системы, созданной внутри «корневого» тома, необходимо выполнить следующую команду:
$ sudo resize2fs -p /dev/mapper/ubuntu--box--1--vg-root
resize2fs 1.42.13 (17-May-2015) Filesystem at /dev/mapper/ubuntu--box--1--vg-root is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 3 The filesystem on /dev/mapper/ubuntu--box--1--vg-root is now 11146240 (4k) blocks long.
Filesystem Size Used Avail Use% Mounted on udev 1.1G 0 1.1G 0% /dev tmpfs 146M 12M 135M 9% /run /dev/mapper/ubuntu--box--1--vg-root 45G 2.3G 41G 6% / tmpfs 512M 0 512M 0% /dev/shm tmpfs 5.3M 0 5.3M 0% /run/lock tmpfs 512M 0 512M 0% /sys/fs/cgroup /dev/vda1 495M 109M 361M 24% /boot tmpfs 103M 0 103M 0% /run/user/0