この投稿では、fdisk を使用して物理ディスク パーティションを拡張することにより、LVM ボリュームで使用可能なスペースを拡張する方法について説明します。この例は、物理ボリューム /dev/sdc1 のサイズを 200MB から 400MB に変更する方法を示しています。
データ損失の可能性に関する警告 :この手順では、既存のパーティション構造が削除され、その場所に新しいパーティションが作成されます。新しいパーティションは、削除されたパーティションとまったく同じオリジンに作成することが不可欠です。そうしないと、重大なデータの破損や損失が発生します。現在の構成を確認
1. ディスク上の物理ボリュームの現在のサイズを確認します。
# pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "200.00 MiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 200.00 MiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
2. 現在の LVM セットアップに関する情報を取得します。拡張したい論理ボリュームは「testlv」です。
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
既存の論理ボリュームを無効にする
1. 実際の PV と LV の拡張に進む前に、まず論理ボリュームを非アクティブ化する必要があります。以下のコマンドを使用して、LV を無効にします。
# lvchange -a n /dev/testvg/testlv
2. ボリュームが非アクティブ化されているかどうかを確認します。
# lvscan inactive '/dev/testvg/testlv' [100.00 MiB] inherit
LVM が使用されていないことがわかったので、LVM で拡張プロセスを開始できます。
fdisk ユーティリティでパーティション「/dev/sda1」を拡張します
1. 物理デバイスのパーティション情報を拡張するには、まず古いパーティションを削除してから、新しいパーティションを作成します。パーティションの開始位置が正確にわかるように、最初に現在のパーティション情報を出力することに注意してください。古いパーティションと同じブロックで始まる新しい大きなパーティションをオーバーレイする必要があります。
# fdisk /dev/sdc Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x085579f4 Device Boot Start End Blocks Id System /dev/sdc1 2048 411647 204800 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): ### we will press ENTER here to select default first sector 2048 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +400M Partition 1 of type Linux and of size 400 MiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
このステップは、変更されたパーティション テーブルを「w」で書き出す前であればいつでも中止できます。 " 指図。それまでは、パーティション テーブルのメモリ内コピーのみが変更されます。
パーティション テーブルの変更について :物理デバイス上のすべての LUN のパーティション情報は、パーティション テーブルに保持されます。 fdisk コマンドは、このパーティション テーブルのみを操作します。ディスクの残りの部分は常に変更されません。つまり、パーティション テーブル情報は変更できますが、パーティションの内容は変更されず、常にそのまま残ります。新しいパーティション テーブルをカーネルにロード
fdisk はデバイスに直接書き込むことによってパーティション テーブルを変更するため、現在実行中のカーネルは新しいパーティション情報を認識しません。通常、カーネルは、システムの起動時またはホットプラグ イベント (USB デバイスの挿入など) が発生したときにのみ、パーティション情報を読み取ります。
ただし、カーネルにパーティション情報を再度読み取らせ、LVM 情報を更新させることで、不必要な再起動を回避できます。
# partprobe
カーネルが更新されたパーティション テーブルを認識したので、物理デバイスへのこの変更について LVM サブシステムに通知します。デフォルトでは、サイズ変更はパーティション テーブルから取得したパーティション サイズ全体を使用します:
# pvresize /dev/sdc1 Physical volume "/dev/sdc1" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
# pvdisplay /dev/sdc1 --- Physical volume --- PV Name /dev/sdc1 VG Name testvg PV Size 399.00 MiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 99 Free PE 74 Allocated PE 25 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
既存の論理ボリュームをアクティブ化
最後のステップは、変更された LVM をオンラインに戻すことです。いつものように、最初に作業を確認します:
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
上記の出力からわかるように、論理ボリュームは非アクティブです。それでは、最初に有効にしましょう。
# lvchange -a y /dev/testvg/testlv
# /usr/sbin/lvscan ACTIVE '/dev/vgtest/lvtest' [100.00 MB] inherit
論理ボリュームのサイズ変更 (オプション)
1. 基盤となる物理ボリュームのスペースが増えたため、論理ボリュームを拡張することもできます。以下のコマンドを使用して、LV のサイズを変更します。
# lvresize -L +200M /dev/testvg/testlv Size of logical volume testvg/testlv changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). Logical volume testvg/testlv successfully resized.
2. 論理ボリュームの新しいサイズを確認します。
# lvscan ACTIVE '/dev/testvg/testlv' [300.00 MiB] inherit