سلام به همه. در آستانه شروع یک گروه دوره جدید
در این مقاله 2 مورد جایگزینی دیسک و انتقال اطلاعات به دیسک های جدید با ظرفیت بیشتر با گسترش بیشتر آرایه و سیستم فایل بررسی می شود. مورد اول مربوط به جایگزینی دیسک ها با همان پارتیشن بندی MBR/MBR یا GPT/GPT است، مورد دوم مربوط به جایگزینی دیسک ها با پارتیشن بندی MBR با دیسک هایی با ظرفیت بیش از 2 ترابایت است که باید روی آنها نصب کنید. یک پارتیشن GPT با یک پارتیشن biosboot. در هر دو مورد، دیسک هایی که داده ها را به آنها منتقل می کنیم، قبلاً روی سرور نصب شده اند. سیستم فایل مورد استفاده برای پارتیشن ریشه ext4 است.
مورد 1: جایگزینی دیسک های کوچکتر با دیسک های بزرگتر (تا 2 ترابایت)
چالش: دیسک های فعلی را با دیسک های بزرگتر (تا 2 ترابایت) با انتقال اطلاعات جایگزین کنید. در این حالت، 2 دیسک 240 گیگابایتی SSD (RAID-1) با سیستم نصب شده و 2 در 1 ترابایت دیسک SATA داریم که سیستم باید به آنها منتقل شود.
بیایید به طرح دیسک فعلی نگاه کنیم.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sda2 8:2 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
sdd 8:48 0 931,5G 0 disk
بیایید فضای سیستم فایل مورد استفاده فعلی را بررسی کنیم.
[root@localhost ~]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9,6M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,3G 192G 1% /
/dev/md126 1007M 120M 837M 13% /boot
tmpfs 6,3G 0 6,3G 0% /run/user/0
حجم فایل سیستم قبل از تعویض دیسک ها 204 گیگابایت است، از 2 آرایه نرم افزار md126 استفاده شده است که در /boot
и md127
، که به عنوان استفاده می شود حجم فیزیکی برای گروه VG vg0.
1. حذف پارتیشن های دیسک از آرایه ها
بررسی وضعیت آرایه
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: <none>
این سیستم از 2 آرایه استفاده می کند: md126
(نقطه سوار /boot
) - از یک بخش تشکیل شده است /dev/sda1
и /dev/sdb1
, md127
(LVM برای مبادله و ریشه سیستم فایل) - شامل /dev/sda2
и /dev/sdb2
.
پارتیشن های اولین دیسکی که در هر آرایه استفاده می شود را به عنوان بد علامت گذاری می کنیم.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
ما پارتیشن های دستگاه بلوک /dev/sda را از آرایه ها حذف می کنیم.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
پس از اینکه دیسک را از آرایه حذف کردیم، اطلاعات دستگاه بلوک به این صورت خواهد بود.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
sdd 8:48 0 931,5G 0 disk
وضعیت آرایه ها پس از حذف دیسک ها.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 1/2 pages [4KB], 65536KB chunk
unused devices: <none>
2. جدول پارتیشن را در یک دیسک جدید کپی کنید
با دستور زیر می توانید جدول پارتیشن استفاده شده روی دیسک را بررسی کنید.
fdisk -l /dev/sdb | grep 'Disk label type'
خروجی برای MBR خواهد بود:
Disk label type: dos
برای GPT:
Disk label type: gpt
کپی کردن جدول پارتیشن برای MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
در این تیم اول درایو نشان داده شده است с از آن نشانه گذاری کپی شده است، دوم - کجا کپی 🀄.
توجه: برای GPT اول درایو نشان داده شده است که در آن کپی نشانه گذاری، دوم دیسک دیسک را نشان می دهد از کدام کپی نشانه گذاری اگر دیسک ها را با هم مخلوط کنید، پارتیشن اولیه خوب بازنویسی شده و از بین می رود.
کپی کردن جدول طرح بندی برای GPT:
sgdisk -R /dev/sdс /dev/sdb
سپس، یک UUID تصادفی به دیسک اختصاص دهید (برای GPT).
sgdisk -G /dev/sdc
پس از اجرای دستور، پارتیشن ها باید روی دیسک ظاهر شوند /dev/sdc
.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
└─sdc2 8:34 0 222,5G 0 part
sdd 8:48 0 931,5G 0 disk
اگر پس از انجام عمل، پارتیشن های موجود در سیستم بر روی دیسک /dev/sdc
تصمیم نگرفته، سپس دستور بازخوانی جدول پارتیشن را اجرا می کنیم.
sfdisk -R /dev/sdc
اگر دیسک های فعلی از جدول MBR استفاده می کنند و اطلاعات باید به دیسک های بزرگتر از 2 ترابایت منتقل شود، در دیسک های جدید باید به صورت دستی یک پارتیشن GPT با استفاده از پارتیشن biosboot ایجاد کنید. این مورد در قسمت 2 این مقاله مورد بحث قرار خواهد گرفت.
3. افزودن پارتیشن های دیسک جدید به آرایه
بیایید پارتیشن های دیسک را به آرایه های مربوطه اضافه کنیم.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
بررسی می کنیم که بخش ها اضافه شده اند.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
پس از این، منتظر می مانیم تا آرایه ها همگام شوند.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc1[2] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc2[2] sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
[==>..................] recovery = 10.6% (24859136/233206784) finish=29.3min speed=118119K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
می توانید با استفاده از ابزار به طور مداوم روند همگام سازی را نظارت کنید watch
.
watch -n 2 cat /proc/mdstat
پارامتر -n
مشخص میکند که در چه بازههایی در ثانیه فرمان باید برای بررسی پیشرفت اجرا شود.
مراحل 1 تا 3 را برای دیسک جایگزین بعدی تکرار کنید.
پارتیشن های دیسک دوم که در هر آرایه استفاده می شود را به عنوان بد علامت گذاری می کنیم.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
حذف بلوک پارتیشن های دستگاه /dev/sdb
از آرایه ها
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
پس از اینکه دیسک را از آرایه حذف کردیم، اطلاعات دستگاه بلوک به این صورت خواهد بود.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
وضعیت آرایه ها پس از حذف دیسک ها.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc1[2]
1047552 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
bitmap: 1/2 pages [4KB], 65536KB chunk
unused devices: <none>
کپی کردن جدول پارتیشن MBR از دیسک /dev/sdс
به دیسک /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
پس از اجرای دستور، پارتیشن ها باید روی دیسک ظاهر شوند /dev/sdd
.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
├─sdd1 8:49 0 1G 0 part
└─sdd2 8:50 0 222,5G 0 part
اضافه کردن پارتیشن های دیسک به آرایه ها
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
بررسی می کنیم که بخش ها اضافه شده اند.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
├─sdd1 8:49 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
پس از این، منتظر می مانیم تا آرایه ها همگام شوند.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdd1[3] sdc1[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdd2[3] sdc2[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.5% (1200000/233206784) finish=35.4min speed=109090K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
5. نصب GRUB بر روی درایوهای جدید
برای CentOS:
grub2-install /dev/sdX
برای دبیان/اوبونتو:
grub-install /dev/sdX
جایی که X
- نامه دستگاه بلوک. در این مورد، باید GRUB را بر روی آن نصب کنید /dev/sdc
и /dev/sdd
.
6. پسوند سیستم فایل (ext4) پارتیشن ریشه
روی دیسک های جدید /dev/sdc
и /dev/sdd
931.5 گیگابایت موجود است. با توجه به اینکه جدول پارتیشن از دیسک های کوچکتر کپی شده است، پارتیشن ها /dev/sdc2
и /dev/sdd2
222.5 گیگابایت موجود است.
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
├─sdd1 8:49 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
لازم است:
- پارتیشن 2 را روی هر یک از دیسک ها گسترش دهید،
- گسترش آرایه md127،
- گسترش PV (حجم فیزیکی)،
- گسترش LV (حجم منطقی) vg0-root،
- سیستم فایل را گسترش دهید.
با استفاده از ابزار جدا بیایید بخش را گسترش دهیم /dev/sdc2
به حداکثر مقدار. دستور را اجرا کنید parted /dev/sdc
(1) و جدول پارتیشن فعلی را با دستور مشاهده کنید p
(2).
همانطور که می بینید انتهای پارتیشن 2 به 240 گیگابایت ختم می شود. بیایید پارتیشن را با دستور گسترش دهیم resizepart
2
، که 2 تعداد بخش (3) است. ما مقدار را در قالب دیجیتال نشان می دهیم، به عنوان مثال 1000 گیگابایت، یا از نشانگر سهم دیسک - 100٪ استفاده می کنیم. دوباره بررسی می کنیم که پارتیشن دارای اندازه جدید (4) باشد.
مراحل بالا را برای دیسک تکرار کنید /dev/sdd
. پس از گسترش پارتیشن ها /dev/sdc2
и /dev/sdd2
برابر با 930.5 گیگابایت شد.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 930,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
├─sdd1 8:49 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 930,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
پس از این، آرایه را گسترش می دهیم md127 به حداکثر.
mdadm --grow /dev/md127 --size=max
بررسی می کنیم که آرایه گسترش یافته باشد. حالا حجم آن 930.4 گیگابایت شده است.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc2 8:34 0 930,5G 0 part
└─md127 9:127 0 930,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 931,5G 0 disk
├─sdd1 8:49 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd2 8:50 0 930,5G 0 part
└─md127 9:127 0 930,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
تمدید پسوند حجم فیزیکی. قبل از گسترش، بیایید وضعیت فعلی PV را بررسی کنیم.
[root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [222,40 GiB / 0 free]
Total: 1 [222,40 GiB] / in use: 1 [222,40 GiB] / in no VG: 0 [0 ]
همانطور که مشاهده می شود، PV /dev/md127
از 222.4 گیگابایت فضا استفاده می کند.
PV را با دستور زیر گسترش می دهیم.
pvresize /dev/md127
بررسی نتیجه انبساط PV.
[root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [930,38 GiB / 707,98 GiB free]
Total: 1 [930,38 GiB] / in use: 1 [930,38 GiB] / in no VG: 0 [0 ]
در حال گسترش حجم منطقی. قبل از گسترش، اجازه دهید وضعیت فعلی LV (1) را بررسی کنیم.
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<206,41 GiB] inherit
LV /dev/vg0/root
از 206.41 گیگابایت استفاده می کند.
LV را با دستور زیر گسترش می دهیم (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
ما عمل انجام شده (3) را بررسی می کنیم.
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
همانطور که می بینید، پس از گسترش LV، میزان فضای اشغال شده دیسک به 914.39 گیگابایت تبدیل شد.
حجم LV افزایش یافته است (4)، اما سیستم فایل هنوز 204 گیگابایت (5) را اشغال می کند.
1. بیایید سیستم فایل را گسترش دهیم.
resize2fs /dev/mapper/vg0-root
پس از اجرای دستور، اندازه فایل سیستم را بررسی می کنیم.
[root@localhost ~]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9,5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 900G 1,3G 860G 1% /
/dev/md126 1007M 120M 837M 13% /boot
tmpfs 6,3G 0 6,3G 0% /run/user/0
حجم فایل سیستم ریشه به 900 گیگابایت افزایش می یابد. پس از انجام مراحل، می توانید دیسک های قدیمی را حذف کنید.
مورد 2: جایگزینی دیسک های کوچکتر با دیسک های بزرگتر (بیش از 2 ترابایت)
ورزش: دیسک های فعلی را با دیسک های بزرگتر (2×3 ترابایت) با حفظ اطلاعات جایگزین کنید. در این مورد، ما 2 دیسک 240 گیگابایتی SSD (RAID-1) با سیستم نصب شده و 2 در 3 ترابایت دیسک SATA داریم که سیستم باید به آنها منتقل شود. دیسک های فعلی از جدول پارتیشن MBR استفاده می کنند. از آنجایی که دیسک های جدید ظرفیتی بیش از 2 ترابایت دارند، باید از جدول GPT استفاده کنند، زیرا MBR نمی تواند با دیسک های بزرگتر از 2 ترابایت کار کند.
بیایید به طرح دیسک فعلی نگاه کنیم.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sda2 8:2 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
sdd 8:48 0 2,7T 0 disk
بیایید جدول پارتیشن مورد استفاده روی دیسک را بررسی کنیم /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
روی دیسک /dev/sdb
یک جدول پارتیشن مشابه استفاده می شود. بیایید فضای دیسک استفاده شده در سیستم را بررسی کنیم.
[root@localhost ~]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,5M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,3G 192G 1% /
/dev/md126 1007M 120M 837M 13% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0
همانطور که می بینید، ریشه فایل سیستم 204 گیگابایت را اشغال می کند. بیایید وضعیت فعلی آرایه RAID نرم افزار را بررسی کنیم.
1. نصب جدول پارتیشن GPT و پارتیشن بندی دیسک
بیایید طرح دیسک را بر اساس بخش بررسی کنیم.
[root@localhost ~]# parted /dev/sda print
Модель: ATA KINGSTON SVP200S (scsi)
Диск /dev/sda: 240GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Disk Flags:
Номер Начало Конец Размер Тип Файловая система Флаги
1 1049kB 1076MB 1075MB primary загрузочный, raid
2 1076MB 240GB 239GB primary raid
در دیسک جدید 3 ترابایتی باید 3 پارتیشن ایجاد کنیم:
- بخش
bios_grub
اندازه 2 مگابایت برای سازگاری با GPT BIOS، - پارتیشن آرایه RAID که در آن نصب می شود
/boot
. - پارتیشنی برای آرایه RAID که در آن وجود خواهد داشت ریشه LV и تعویض LV.
نصب ابزار جدا تیم yum install -y parted
(برای CentOS)، apt install -y parted
(برای دبیان/اوبونتو).
با استفاده از جدا بیایید دستورات زیر را برای پارتیشن بندی دیسک اجرا کنیم.
دستور را اجرا کنید parted /dev/sdc
و به حالت ویرایش طرح دیسک بروید.
یک جدول پارتیشن GPT ایجاد کنید.
(parted) mktable gpt
1 بخش ایجاد کنید bios_grub
بخش و یک پرچم برای آن تعیین کنید.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
پارتیشن 2 را بسازید و یک پرچم برای آن تنظیم کنید. پارتیشن به عنوان یک بلوک برای یک آرایه RAID استفاده می شود و در آن نصب می شود /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
ما یک بخش سوم ایجاد می کنیم که همچنین به عنوان یک بلوک آرایه که LVM در آن قرار خواهد گرفت استفاده می شود.
(parted) mkpart primary 1028MiB 100%
در این حالت نیازی به تنظیم پرچم نیست، اما در صورت لزوم با دستور زیر می توان آن را تنظیم کرد.
(parted) set 3 raid on
جدول ایجاد شده را بررسی می کنیم.
(parted) p
Модель: ATA TOSHIBA DT01ACA3 (scsi)
Диск /dev/sdc: 3001GB
Размер сектора (логич./физич.): 512B/4096B
Таблица разделов: gpt
Disk Flags:
Номер Начало Конец Размер Файловая система Имя Флаги
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary загрузочный
3 1077MB 3001GB 3000GB primary
یک GUID تصادفی جدید به دیسک اختصاص می دهیم.
sgdisk -G /dev/sdd
2. حذف پارتیشن های دیسک اول از آرایه ها
بررسی وضعیت آرایه
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sda1[0] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda2[0] sdb2[1]
233206784 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: <none>
سیستم از 2 آرایه استفاده می کند: md126 (نقطه mount /boot) - متشکل از /dev/sda1
и /dev/sdb1
, md127
(LVM برای swap
و ریشه سیستم فایل) - شامل /dev/sda2
и /dev/sdb2
.
پارتیشن های اولین دیسکی که در هر آرایه استفاده می شود را به عنوان بد علامت گذاری می کنیم.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
حذف بلوک پارتیشن های دستگاه /dev/sda
از آرایه ها
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
بررسی وضعیت آرایه پس از حذف دیسک.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb1[1]
1047552 blocks super 1.2 [2/1] [_U]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
3. افزودن پارتیشن های دیسک جدید به آرایه
مرحله بعدی اضافه کردن پارتیشن های دیسک جدید به آرایه ها برای همگام سازی است. بیایید به وضعیت فعلی چیدمان دیسک نگاه کنیم.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
└─sdc3 8:35 0 2,7T 0 part
sdd 8:48 0 2,7T 0 disk
بخش /dev/sdc1
آن است bios_grub
بخش است و در ایجاد آرایه دخالتی ندارد. آرایه ها فقط استفاده خواهند کرد /dev/sdc2
и /dev/sdc3
. این بخش ها را به آرایه های مربوطه اضافه می کنیم.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
سپس منتظر می مانیم تا آرایه همگام شود.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdc2[2] sdb1[1]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sdc3[2] sdb2[1]
233206784 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.2% (619904/233206784) finish=31.2min speed=123980K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
پارتیشن بندی دیسک پس از افزودن پارتیشن به آرایه.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
4. حذف پارتیشن های دیسک دوم از آرایه ها
پارتیشن های دیسک دوم که در هر آرایه استفاده می شود را به عنوان بد علامت گذاری می کنیم.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
حذف بلوک پارتیشن های دستگاه /dev/sda
از آرایه ها
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. جدول طرح بندی GPT را کپی کرده و آرایه را همگام سازی کنید
برای کپی کردن جدول نشانه گذاری GPT از ابزار استفاده می کنیم sgdisk
، که در بسته کار با پارتیشن های دیسک و جدول GPT موجود است - gdisk
.
نصب gdisk
برای CentOS:
yum install -y gdisk
نصب gdisk
برای دبیان/اوبونتو:
apt install -y gdisk
توجه: برای GPT اول درایو نشان داده شده است که در آن علامت گذاری را کپی کنید، دوم دیسک دیسک را نشان می دهد از کدام نشانه گذاری را کپی کنید اگر دیسک ها را با هم مخلوط کنید، پارتیشن اولیه خوب بازنویسی شده و از بین می رود.
جدول نشانه گذاری GPT را کپی کنید.
sgdisk -R /dev/sdd /dev/sdc
پارتیشن بندی دیسک پس از انتقال جدول به دیسک /dev/sdd
.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
├─sdd1 8:49 0 2M 0 part
├─sdd2 8:50 0 1G 0 part
└─sdd3 8:51 0 2,7T 0 part
در مرحله بعد، هر یک از پارتیشن های شرکت کننده در آرایه های RAID نرم افزار را اضافه می کنیم.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
منتظر همگام سازی آرایه هستیم.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdd2[3] sdc2[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdd3[3] sdc3[2]
233206784 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.0% (148224/233206784) finish=26.2min speed=148224K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
پس از کپی کردن پارتیشن GPT در دومین دیسک جدید، پارتیشن به شکل زیر در می آید.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 part
└─sda2 8:2 0 222,5G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 222,5G 0 part
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
├─sdd1 8:49 0 2M 0 part
├─sdd2 8:50 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2,7T 0 part
└─md127 9:127 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
سپس GRUB را روی دیسک های جدید نصب کنید.
نصب برای CentOS:
grub2-install /dev/sdX
نصب برای Debian/Ubuntu:
grub-install /dev/sdX
جایی که X
- نامه درایو، در درایوهای مورد ما /dev/sdc
и /dev/sdd
.
ما اطلاعات مربوط به آرایه را به روز می کنیم.
برای CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
برای دبیان/اوبونتو:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
به روز رسانی تصویر initrd
:
برای CentOS:
dracut -f -v --regenerate-all
برای دبیان/اوبونتو:
update-initramfs -u -k all
ما پیکربندی GRUB را به روز می کنیم.
برای CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
برای دبیان/اوبونتو:
update-grub
پس از انجام مراحل می توان دیسک های قدیمی را حذف کرد.
6. پسوند سیستم فایل (ext4) پارتیشن ریشه
پارتیشن بندی دیسک قبل از گسترش سیستم فایل پس از انتقال سیستم به دیسک 2 x 3 ترابایت (RAID-1).
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
sdb 8:16 0 223,6G 0 disk
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md126 9:126 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
├─sdd1 8:49 0 2M 0 part
├─sdd2 8:50 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2,7T 0 part
└─md126 9:126 0 222,4G 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
اکنون بخش ها /dev/sdc3
и /dev/sdd3
اشغال 2.7 ترابایت از آنجایی که ما یک طرح دیسک جدید با جدول GPT ایجاد کردیم، اندازه پارتیشن 3 بلافاصله روی حداکثر فضای دیسک ممکن تنظیم شد؛ در این حالت، نیازی به گسترش پارتیشن نیست.
لازم است:
- گسترش آرایه md126،
- گسترش PV (حجم فیزیکی)،
- گسترش LV (حجم منطقی) vg0-root،
- سیستم فایل را گسترش دهید.
1. آرایه را گسترش دهید md126
به حداکثر.
mdadm --grow /dev/md126 --size=max
پس از گسترش آرایه md126
اندازه فضای اشغال شده به 2.7 ترابایت افزایش یافته است.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
sdb 8:16 0 223,6G 0 disk
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 2M 0 part
├─sdc2 8:34 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdc3 8:35 0 2,7T 0 part
└─md126 9:126 0 2,7T 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
sdd 8:48 0 2,7T 0 disk
├─sdd1 8:49 0 2M 0 part
├─sdd2 8:50 0 1G 0 part
│ └─md127 9:127 0 1023M 0 raid1 /boot
└─sdd3 8:51 0 2,7T 0 part
└─md126 9:126 0 2,7T 0 raid1
├─vg0-root 253:0 0 206,4G 0 lvm /
└─vg0-swap 253:1 0 16G 0 lvm [SWAP]
در حال گسترش حجم فیزیکی.
قبل از گسترش، مقدار فعلی فضای اشغال شده PV / را بررسی کنیدdev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
PV را با دستور زیر گسترش می دهیم.
pvresize /dev/md126
ما عملکرد تکمیل شده را بررسی می کنیم.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
در حال گسترش حجم منطقی vg0-root.
پس از گسترش PV، فضای اشغال شده VG را بررسی می کنیم.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
بیایید فضای اشغال شده توسط LV را بررسی کنیم.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao---- <206,41g
swap vg0 -wi-ao---- <16,00g
حجم vg0-root 206.41 گیگابایت است.
ما LV را به حداکثر فضای دیسک گسترش می دهیم.
lvextend -l +100%FREE /dev/mapper/vg0-root
بررسی فضای LV پس از انبساط.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao---- 2,71t
swap vg0 -wi-ao---- <16,00g
گسترش سیستم فایل (ext4).
بیایید اندازه فعلی فایل سیستم را بررسی کنیم.
[root@localhost ~]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,6M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 204G 1,4G 192G 1% /
/dev/md127 1007M 141M 816M 15% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0
حجم /dev/mapper/vg0-root پس از گسترش LV 204 گیگابایت را اشغال می کند.
گسترش سیستم فایل
resize2fs /dev/mapper/vg0-root
بررسی اندازه فایل سیستم پس از گسترش آن.
[root@localhost ~]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9,6M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/vg0-root 2,7T 1,4G 2,6T 1% /
/dev/md127 1007M 141M 816M 15% /boot
tmpfs 3,2G 0 3,2G 0% /run/user/0
اندازه سیستم فایل برای پوشش کل حجم افزایش یافته است.
منبع: www.habr.com