Linux で小さいディスクを大きいディスクに置き換える

こんにちは、みんな。 新しいコースグループの開始前夜に 「Linux管理者」 私たちは、学生であり、コース指導者であり、REG.RU 企業製品のテクニカル サポート スペシャリストである Roman Travin によって書かれた有益な資料を公開しています。

この記事では、アレイとファイル システムのさらなる拡張に伴い、ディスクを交換する場合と、より大容量の新しいディスクに情報を転送する場合の 2 つのケースを検討します。 最初のケースは、同じ MBR/MBR または GPT/GPT パーティショニングを持つディスクの交換に関するもので、2 番目のケースは、MBR パーティショニングを持つディスクを、インストールする必要がある 4 TB を超える容量のディスクに置き換えることに関するものです。 GPT パーティションと biosboot パーティション。 どちらの場合も、データの転送先のディスクはサーバーにすでにインストールされています。 ルート パーティションに使用されるファイル システムは extXNUMX です。

ケース 1: 小型ディスクを大型ディスク (最大 2TB) に置き換える

タスク: 現在のディスクを、情報転送を備えたより大きなディスク (最大 2 TB) に置き換えます。 この場合、システムがインストールされている 2 GB SSD (RAID-240) ディスクが 1 つと、システムを転送する必要がある 2 TB SATA ディスクが 1 つあります。

現在のディスクレイアウトを見てみましょう。

[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 GB、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 の 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 ~]# 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

このコマンドでは первым ディスクが表示されます с そのうち マークアップがコピーされ、 XNUMX番目 - どこで コピー。

注意: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 TB を超えるディスクに転送する必要がある場合は、新しいディスク上に biosboot パーティションを使用して GPT パーティションを手動で作成する必要があります。 このケースについては、この記事のパート 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 を繰り返します。

各アレイで使用される XNUMX 番目のディスクのパーティションを不良としてマークします。

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

続きを読む Debian/Ubuntu:

grub-install /dev/sdX

どこ X — ブロックデバイスの文字。 この場合、GRUB をインストールする必要があります。 /dev/sdc и /dev/sdd.

6. ルートパーティションのファイルシステム拡張子(ext4)

新しいディスクの場合 /dev/sdc и /dev/sdd 931.5GBが利用可能です。 パーティション テーブルが小さいディスクからコピーされたため、パーティション /dev/sdc2 и /dev/sdd2 222.5GBが利用可能です。

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. ファイルシステムを拡張します。

ユーティリティの使用 parted セクションを展開してみましょう /dev/sdc2 最大値まで。 コマンドを実行する parted /dev/sdc (1) コマンドを使用して現在のパーティション テーブルを表示します。 p とします。

Linux で小さいディスクを大きいディスクに置き換える

ご覧のとおり、パーティション 2 の終わりは 240 GB で終わります。 コマンドでパーティションを拡張しましょう resizepart 2, ここで、2 はセクション (3) の番号です。 値をデジタル形式で表示します (たとえば、1000 GB)。または、ディスク共有の表示 (100%) を使用します。 パーティションが新しいサイズ (4) になっていることを再度確認します。

ディスクに対して上記の手順を繰り返します。 /dev/sdd。 パーティションを拡張した後 /dev/sdc2 и /dev/sdd2 930.5GBになりました。

[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 GB になりました。

[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 GB のスペースを使用します。

以下のコマンドで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 GB を使用します。

以下のコマンド(2)でLVを展開します。

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 GB になりました。

Linux で小さいディスクを大きいディスクに置き換える

LV ボリュームは増加しました (4) が、ファイル システムは依然として 204 GB を占有しています (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 GB に増加します。 手順を完了したら、古いディスクを削除できます。

ケース 2: 小型ディスクを大型ディスク (2TB 以上) に交換する

割り当て: 情報を維持しながら、現在のディスクをより大きなディスク (2 x 3TB) に交換します。 この場合、システムがインストールされている 2 GB SSD (RAID-240) ディスクが 1 つと、システムを転送する必要がある 2 TB SATA ディスクが 3 つあります。 現在のディスクは MBR パーティション テーブルを使用します。 新しいディスクの容量は 2 TB を超えるため、MBR は 2 TB を超えるディスクでは機能しないため、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  
│ └─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 GB を占めています。 ソフトウェア 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

新しい 3TB ディスクには、3 つのパーティションを作成する必要があります。

  1. セクション bios_grub GPT BIOS 互換性のための 2MiB サイズ、
  2. マウントされる RAID アレイのパーティション /boot.
  3. が存在する RAID アレイのパーティション。 LVルート и LV交換.

ユーティリティのインストール parted チーム yum install -y parted (CentOSの場合)、 apt install -y parted (Debian/Ubuntu の場合)。

使い方 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

3 番目のセクションを作成します。これは、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 (マウント ポイント /ブート) - で構成されます。 /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. XNUMX 番目のディスクのパーティションをアレイから削除する

各アレイで使用される XNUMX 番目のディスクのパーティションを不良としてマークします。

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 Debian/Ubuntu の場合:

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 パーティションを XNUMX 番目の新しいディスクにコピーすると、パーティションは次のようになります。

[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

続きを読む Debian/Ubuntu:

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

続きを読む Debian/Ubuntu:

update-initramfs -u -k all

GRUB 構成を更新します。

CentOS の場合:

grub2-mkconfig -o /boot/grub2/grub.cfg

続きを読む Debian/Ubuntu:

update-grub

手順が完了したら、古いディスクを削除できます。

6. ルートパーティションのファイルシステム拡張子(ext4)

システムを 2 x 3TB ディスク (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.7TBを占有します。 GPT テーブルを使用して新しいディスク レイアウトを作成したため、パーティション 3 のサイズはすぐに可能な最大ディスク領域に設定されました。この場合、パーティションを拡張する必要はありません。

それは必要です:

  1. 配列 md126 を展開し、
  2. PV(物理ボリューム)を拡張し、
  3. LV (論理ボリューム) vg0-root を展開し、
  4. ファイルシステムを拡張します。

1. アレイを展開します md126 最大まで。

mdadm --grow /dev/md126 --size=max

アレイ拡張後 md126 占有スペースのサイズは 2.7 TB に増加しました。

[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 GB を占有します。

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 GB を占有します。

ファイルシステムを拡張します。

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

ファイル システムのサイズは、ボリューム全体をカバーするために増加されました。

出所: habr.com

コメントを追加します