最近ディスクイメージが20GBから50GBに増加した仮想マシンを使用しており、fdisk -l
はVMがこの新しいサイズを認識できることを確認します。ここでルートLVMのサイズを変更する必要があります追加の30GBを埋めるパーティション。
LVMのサイズ変更 severalarticlesabout のサイズ変更については、LiveCDから起動する必要があると主張しているルートパーティションのサイズ変更をカバーしているものはすべて見つかりました。サーバーを停止せずにこれを行う方法はありますか?サーバーは重要なので、ダウンタイムを最小限に抑えたいと思います。
編集:fdisk -l
の出力:
[root@Fedora-Host ~]# Sudo fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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 identifier: 0x00097c90
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 83886079 41430016 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 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 identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table
Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 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 identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table
編集:物理パーティションのサイズを変更するにはどうすればよいですか? fdiskは空き領域を見ることができますが、それを使用するためにプライマリLVMパーティションのサイズを変更する方法がわかりません。 LiveCDを起動してparted'd resize
コマンドを使用してみましたが、「ファイルシステムを検出できません」というエラーが表示されます。私は このガイド を見つけました、これはパーティションをdeleteして正しいサイズの新しいパーティションを作成する必要があることを示していますが、非常に危険に聞こえます。
最終編集:Partedのresize
コマンドは、LVMパーティションのサイズを変更できません。図を行きます。代わりに、上のリンクで概説されているように、古いパーティションを削除して新しい範囲で新しいパーティションを作成し、LVMパーティションのサイズを正しく変更しました。次に、以下のアドバイスに従ってボリュームとファイルシステムのサイズを変更しましたinside LVMパーティション。
オンラインで論理ボリュームを拡張できます。縮小するには、マウントを解除する必要があります(LiveCD /レスキューモードが必要です)。
pvresize /dev/sda2
(LVMパーティションがsda2
。必要に応じて交換してください。)lvextend /dev/mapper/root -l+100%FREE
(または、ルート論理ボリュームが呼び出されるものは何でも。)resize2fs /dev/mapper/root
(ext2/3/4を想定)システムは本当に20 GBから50 GBに変更されましたか? sda2デバイスが〜40GBであり、lv_rootが36GBを示し、swapが6GBを示すので、それは本当に奇妙に思えます。
fdisk -l
の出力は、/dev/sda
のセクターの合計が104857600
であることを示しています。 /dev/sda2
が使用する最後のセクターは83886079
です。これは、ドライブのすべての使用可能なスペースを使用するようにパーティションサイズを調整していないことを示しています。 pvresizeコマンドはパーティションテーブルを変更しません。最初にパーティションテーブルを変更する必要があります。
Gpartedをインストールします。 rootとして実行します(ssh -Xまたはリモートの場合はx2goを使用)。パーティションを選択します。末尾の先(右側)に空き領域が表示されます。表示されない場合は、仮想マシンを再起動して、仮想デバイスの新しいサイズを確認する必要があります。これはsystemdでのダウンタイムを最小限にする必要があります。
右クリックしてサイズ変更を選択します。端をディスクの端にドラッグします。最初に触れないでください。 gpartedはサイズ変更中にパーティションを移動できますが、もちろん実行中のシステムを破壊します。しかし、終わりを動かすのは問題ありません。 gpartedが実行する保留中の操作を確認して、パーティションを拡張してnot移動していることを確認します。 [適用]をクリックします。 gpartedはディスク上のパーティションを変更してから、カーネルioctlを発行してパーティションテーブルを再読み取りし、ライブブロックデバイスのサイズも変更します。次に、LVM PVであると認識しているため、pvresizeが実行されます。 gpartedを終了すると、vgsに新しいスペースが表示されます。
PartedがGUIのオーバーヘッドなしにすべてを実行できるという噂を聞いたことがありますが、ブードゥー教を理解することはできませんでした。 Partedは、私が今まで使った中で最悪のCLIインターフェイスの1つでなければなりません。
Fdiskは使用しないでください。サイズを変更するには、パーティションを削除して再割り当てする必要があります。デフォルトでは、書き込み時にLVM2署名が消去されます。私はその破壊的な動作をオフにする「高度な」オプションを見たと思いますが、私はそれをテストしたことがありません。
Cfdisk(curses fdisk)を試すこともできます。使用可能なパーティションのサイズ変更がある場合があります。 pvresizeを手動で実行するのは簡単で、カーネルにパーティションテーブルを再度読み取るように指示するコマンドがあります。しかし、fdiskのようにLVM署名が消去されないことを確認するためにテストする必要があります。
25のハウツーを組み合わせた後、私はようやくこの解決策を得ました。ライブCDは必要ありません。完全にオンザフライです。
ステップ1.パーティションをparted(guiなし)でフォーマットします。この例では、仮想ボックスでディスクの最大サイズが8BGから32 GBに増加しました。
# parted
....
Number Begin End Size Type FileSystem Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 8590MB 7515MB primary lvm
....
(parted) mkpart primary ext2 8590 100%
....
Number Begin End Size Type FileSystem Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 8590MB 7515MB primary lvm
3 8590MB 34,4GB 25,8GB primary ext2 lba
....
(parted) set 3 lvm on
(parted) set 3 lba off
(parted) print
....
3 8590MB 34,4GB 25,8GB primary ext2 lvm
....
(parted) quit
ステップ2.新しいパーティションに基づいて物理ボリュームを作成する
# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
手順3.物理ボリュームをボリュームグループに追加します。プレーンなFedora 28サーバーのインストールでは、ボリュームグループはFedoraと呼ばれます。
# vgextend Fedora /dev/sda3
Volume group "Fedora" successfully extended
手順4.ボリュームグループの使用可能なスペースを論理ボリュームに追加します。プレーンなFedora 28サーバーのインストールでは、論理ボリュームはrootと呼ばれます。
# lvextend -l+100%FREE /dev/Fedora/root
Size of logical volume Fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
Logical volume Fedora/root successfully resized.
ステップ5.論理ボリューム内のファイルシステムに、余分なスペースを使用するように伝えます。 Fedoraでは、ファイルシステムはxfsです。
コマンド「xfs_growfs/dev/mapper/Fedora-root」は、/ dev/mapper/Fedora-rootがマウントされたXFSファイルシステムではないことを通知します。別のファイルシステムを使用している場合は、 https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html を参照してください。
# xfs_growfs /
data blocks changed from 1624064 to 7914496
ステップ6.楽しむ
# df
FileSystem 1K-blocks Used Available used% Mounted on
....
/dev/mapper/Fedora-root 31647744 6492840 25154904 21% /
/dev/sda1 999320 125576 804932 14% /boot
....
ディストリビューションで使用できる場合は、ssm(system-storage-manager)をチェックアウトすることを検討します。
もう少し情報があるようにこれをチェックしてください: https://unix.stackexchange.com/a/29317
ssmを使用すると、自分ですべてを実行しなくても、論理ボリュームのサイズを簡単に変更できます。
OSを再起動し、最初にrootとしてログインした後、ホームパーティションを拡張するために使用できました。 (合計2回再起動する必要がありましたが、最終的には機能し、/ homeパーティションで追加の50Gを利用できるようになりました。)
LVM物理ボリュームがパーティション上にある場合、再起動しないとサイズを変更できません。
ドライブのパーティションテーブルは編集できますが、Linuxは再起動するまで使用を拒否します。
XFSを使用している場合は、resize2fs
〜xfs_growfs
。
pvs
とlvs
を使用して、使用するPVとボリュームグループ内のLVを表示できます。
pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>
まず、パーティションのサイズを変更する必要があります。そのためには、parted
、fdisk
または同様のツールを使用します。これらのツールは、パーティションがある場所の説明onlyを編集することを覚えておいてください。データは移動しません。つまり、ディスク上の最後のパーティションのみを簡単に拡張できます。次に、マシンを再起動すると、LVMに使用可能な追加のスペースがあることを通知できるはずです。
pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>