окружающая обстановка
имя | Атрибуты |
---|---|
CPU | x5650 |
ОЗУ | 4G |
диск | 20G+4TB |
На данный момент мы предполагаем, что на сервере уже есть следующее:
-
Parted установлен (yum install parted)
-
Емкость раздела была успешной, и компания добавила к серверу жесткий диск 4T, чтобы увеличить емкость!
-
За исключением раздела /boot, остальные являются расширенными логическими разделами в режиме LVM.
Установка программного обеспечения и просмотр информации
Сначала проверьте, установлено ли программное обеспечение:
[root@Candy ~]# rpm -qa | grep lvm
lvm2-libs-2.02.118-2.el6.x86_64
lvm2-2.02.118-2.el6.x86_64
[root@Candy ~]# lv
lvchange lvextend lvmdiskscan lvmsar lvresize
lvconvert lvm lvmdump lvreduce lvs
lvcreate lvmchange lvmetad lvremove lvscan
lvdisplay lvmconf lvmsadc lvrename
[root@Candy ~]# rpm -qa | grep parted
parted-2.1-29.el6.x86_64
После того, как программное обеспечение будет готово, проверьте оборудование ВМ, кстати:
[root@Candy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_candy-root
7.3G 231M 6.7G 4% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 30M 422M 7% /boot
/dev/mapper/vg_candy-home
3.9G 8.0M 3.7G 1% /home
/dev/mapper/vg_candy-usr
3.9G 382M 3.3G 11% /usr
/dev/mapper/vg_candy-var
3.9G 63M 3.6G 2% /var
[root@Candy ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e71c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 2611 20458496 8e Linux LVM
Disk /dev/sdb: 4398.0 GB, 4398046511104 bytes
255 heads, 63 sectors/track, 534698 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_candy-root: 8061 MB, 8061452288 bytes
255 heads, 63 sectors/track, 980 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_candy-usr: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_candy-var: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_candy-home: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@Candy ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
В это время мы видим, что Centos уже знает, что есть sdb диск, но он не смонтирован и не разбит на разделы.
Используйте Parted для раздела перед расширением
Предположим теперь, что все разделы, кроме /boot, заполнены!
[root@Candy ~]# parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
新的磁盘标签类型? gpt
(parted) mkpart
分区名称? []?
文件系统类型? [ext2]? ext4
起始点? 0T
结束点? 4T
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
1 1049kB 4398GB 4398GB
(parted)set 1 lvm on
(parted)p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
1 1049kB 4398GB 4398GB lvm
(parted)q
[root@Candy ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
Теперь давайте объясним операцию:
-
mklabel преобразует диск в раздел gpt, так как разделы MBR не могут поддерживать жесткие диски уровня TB (пожалуйста, проверьте подробности, parted также поддерживает операции ниже уровня TB)
-
mkpart разбивает преобразованный gpt-диск на разделы, и вам необходимо указать тип файловой системы, начальную и конечную точки.
-
Введите p, чтобы распечатать только что созданные разделы.
-
установить 1 lvm на, чтобы установить раздел с num как 1 и tager как LVM, чтобы его можно было добавить в группу томов vm
Далее мы смотрим, как называется наша группа LVM:
[root@Candy ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_candy 1 4 0 wz--n- 19.51g 0
[root@Candy ~]# vgdisplay
--- Volume group ---
VG Name vg_candy
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.51 GiB
PE Size 4.00 MiB
Total PE 4994
Alloc PE / Size 4994 / 19.51 GiB
Free PE / Size 0 / 0
VG UUID Gcm5Ml-fc88-Xk5q-xuPC-Kj7Y-alfK-i770Gc
[root@Candy ~]# lvscan
ACTIVE '/dev/vg_candy/usr' [4.00 GiB] inherit
ACTIVE '/dev/vg_candy/var' [4.00 GiB] inherit
ACTIVE '/dev/vg_candy/home' [4.00 GiB] inherit
ACTIVE '/dev/vg_candy/root' [7.51 GiB] inherit
[root@Candy ~]#
Зная, что группа томов lvm называется «vg_candy», мы используем vgextend для добавления участников в группу томов lvm «vg_candy».
[root@Candy ~]# vgextend vag_candy /dev/sdb1
Physical volume "/dev/sdb1" successfully created
Volume group "vg_candy" successfully extended
Теперь воспользуемся командой vgs, чтобы увидеть количество pv:
[root@Candy ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_candy 2 4 0 wz--n- 4.02t 4.00t
Вы видели, что количество PV изменилось с 1 на 2 при сравнении vgs, когда он не был добавлен!
Теперь воспользуемся vgdisplay, чтобы увидеть текущую емкость раздела.
[root@Candy ~]# vgdisplay
--- Volume group ---
VG Name vg_candy
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 2
Act PV 2
VG Size 4.02 TiB
PE Size 4.00 MiB
Total PE 1053569
Alloc PE / Size 4994 / 19.51 GiB
Free PE / Size 1048575 / 4.00 TiB
VG UUID Gcm5Ml-fc88-Xk5q-xuPC-Kj7Y-alfK-i770Gc
При повторном сравнении недобавленной команды vgdiplay обнаруживается, что значение FreePE изменилось с 0 / 0 до 1048575 / 4,00 ТиБ Это показывает, что Candy успешно добавила раздел lvm объемом 4 ТБ в группу логических томов vg_candy.
Теперь, прежде чем мы расширим все логические разделы, df -h чтобы увидеть, какие разделы есть.
[root@Candy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_candy-root 7.3G 231M 6.7G 4% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 30M 422M 7% /boot
/dev/mapper/vg_candy-home 3.9G 8.0M 3.7G 1% /home
/dev/mapper/vg_candy-usr 3.9G 382M 3.3G 11% /usr
/dev/mapper/vg_candy-var 3.9G 63M 3.6G 2% /var
Теперь, когда проблема устранена, осталось только расширить раздел.
Развернуть диск
Предположение: Нам нужно добавить емкость 500G к этим разделам:/
,/home
,/usr
,/var
[root@Candy ~]# lvextend -L +500G /dev/mapper/vg_candy-root
Size of logical volume vg_candy/root changed from 7.51 GiB (1922 extents) to 507.51 GiB (129922 extents).
Logical volume root successfully resized
[root@Candy ~]# lvextend -L +500G /dev/mapper/vg_candy-home
Size of logical volume vg_candy/home changed from 4.00 GiB (1024 extents) to 504.00 GiB (129024 extents).
Logical volume home successfully resized
[root@Candy ~]# lvextend -L +500G /dev/mapper/vg_candy-usr
Size of logical volume vg_candy/usr changed from 4.00 GiB (1024 extents) to 504.00 GiB (129024 extents).
Logical volume usr successfully resized
[root@Candy ~]# lvextend -L +500G /dev/mapper/vg_candy-var
Size of logical volume vg_candy/var changed from 4.00 GiB (1024 extents) to 504.00 GiB (129024 extents).
Logical volume var successfully resized
Обратите внимание, что этот шаг необратим! Если вы введете неправильное имя раздела, ничего страшного! Если он добавляется к другим разделам, его нужно повторить N раз, чтобы уменьшить емкость, что более хлопотно! Рекомендуется внимательно проверить указанную выше файловую систему. Помните, помните....
Быстрое расширение прошло успешно! Давайте снова просмотрим информацию LVM с помощью приведенной выше команды:
[root@Candy ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_candy 2 4 0 wz--n- 4.02t 2.05t
[root@Candy ~]# lvscan
ACTIVE '/dev/vg_candy/usr' [504.00 GiB] inherit
ACTIVE '/dev/vg_candy/var' [504.00 GiB] inherit
ACTIVE '/dev/vg_candy/home' [504.00 GiB] inherit
ACTIVE '/dev/vg_candy/root' [507.51 GiB] inherit
[root@Candy ~]# vgdisplay
--- Volume group ---
VG Name vg_candy
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 2
Act PV 2
VG Size 4.02 TiB
PE Size 4.00 MiB
Total PE 1053569
Alloc PE / Size 516994 / 1.97 TiB
Free PE / Size 536575 / 2.05 TiB
VG UUID Gcm5Ml-fc88-Xk5q-xuPC-Kj7Y-alfK-i770Gc
[root@Candy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_candy-root 7.3G 231M 6.7G 4% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 30M 422M 7% /boot
/dev/mapper/vg_candy-home 3.9G 8.0M 3.7G 1% /home
/dev/mapper/vg_candy-usr 3.9G 382M 3.3G 11% /usr
/dev/mapper/vg_candy-var 3.9G 63M 3.6G 2% /var
Вы можете быть удивлены, увидев здесь! Почему df -h не изменился?
Сбросить информацию о диске и записать
Нам нужно изменить размер раздела с помощью resize2fs, чтобы df -h также работал.
Время, необходимое для resize2fs, линейно накладывается на мощность, которую вы предоставляете, то есть чем больше мощности вы предоставляете, тем больше времени требуется resize2fs.
[root@Candy ~]# resize2fs /dev//mapper/vg_candy-root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev//mapper/vg_candy-root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 32
Performing an on-line resize of /dev//mapper/vg_candy-root to 133040128 (4k) blocks.
The filesystem on /dev//mapper/vg_candy-root is now 133040128 blocks long.
[root@Candy ~]# resize2fs /dev//mapper/vg_candy-usr
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev//mapper/vg_candy-usr is mounted on /usr; on-line resizing required old desc_blocks = 1, new_desc_blocks = 32
Performing an on-line resize of /dev//mapper/vg_candy-usr to 132120576 (4k) blocks.
The filesystem on /dev//mapper/vg_candy-usr is now 132120576 blocks long.
[root@Candy ~]# resize2fs /dev//mapper/vg_candy-var
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev//mapper/vg_candy-var is mounted on /var; on-line resizing required old desc_blocks = 1, new_desc_blocks = 32
Performing an on-line resize of /dev//mapper/vg_candy-var to 132120576 (4k) blocks.
The filesystem on /dev//mapper/vg_candy-var is now 132120576 blocks long.
[root@Candy ~]# resize2fs /dev//mapper/vg_candy-home
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev//mapper/vg_candy-home is mounted on /home; on-line resizing required old desc_blocks = 1, new_desc_blocks = 32
Performing an on-line resize of /dev//mapper/vg_candy-home to 132120576 (4k) blocks.
The filesystem on /dev//mapper/vg_candy-home is now 132120576 blocks long.
[root@Candy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_candy-root 500G 245M 474G 1% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 30M 422M 7% /boot
/dev/mapper/vg_candy-home 496G 16M 471G 1% /home
/dev/mapper/vg_candy-usr 496G 390M 471G 1% /usr
/dev/mapper/vg_candy-var 496G 71M 471G 1% /var
заключительные замечания
Кстати, покажу фото системы, автоматически монтирующейся после перезагрузки!
Система Linux все еще относительно умна, ее можно использовать как с перезагрузкой, так и без нее, просто для демонстрации эффекта после перезагрузки.
Надеюсь, эта статья поможет вам плавно расширяться по горизонтали!