جایگزینی دیسک های کوچکتر با دیسک های بزرگتر در لینوکس

سلام به همه. در آستانه شروع یک گروه دوره جدید "مدیر لینوکس" ما مطالب مفیدی را منتشر می کنیم که توسط دانش آموزمان، و همچنین مربی دوره، متخصص پشتیبانی فنی برای محصولات شرکت REG.RU - رومن تراوین نوشته شده است.

در این مقاله 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]

لازم است:

  1. پارتیشن 2 را روی هر یک از دیسک ها گسترش دهید،
  2. گسترش آرایه md127،
  3. گسترش PV (حجم فیزیکی)،
  4. گسترش LV (حجم منطقی) vg0-root،
  5. سیستم فایل را گسترش دهید.

با استفاده از ابزار جدا بیایید بخش را گسترش دهیم /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 پارتیشن ایجاد کنیم:

  1. بخش bios_grub اندازه 2 مگابایت برای سازگاری با GPT BIOS،
  2. پارتیشن آرایه RAID که در آن نصب می شود /boot.
  3. پارتیشنی برای آرایه 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 بلافاصله روی حداکثر فضای دیسک ممکن تنظیم شد؛ در این حالت، نیازی به گسترش پارتیشن نیست.

لازم است:

  1. گسترش آرایه md126،
  2. گسترش PV (حجم فیزیکی)،
  3. گسترش LV (حجم منطقی) vg0-root،
  4. سیستم فایل را گسترش دهید.

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

اضافه کردن نظر