web-dev-qa-db-ja.com

LiveCDまたは再起動せずにFedoraでルートLVMパーティションのサイズを変更する方法

最近ディスクイメージが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パーティション。

24
Cerin

オンラインで論理ボリュームを拡張できます。縮小するには、マウントを解除する必要があります(LiveCD /レスキューモードが必要です)。

  1. pvresize /dev/sda2(LVMパーティションがsda2。必要に応じて交換してください。)
  2. lvextend /dev/mapper/root -l+100%FREE(または、ルート論理ボリュームが呼び出されるものは何でも。)
  3. resize2fs /dev/mapper/root(ext2/3/4を想定)
33
Aaron Copley

システムは本当に20 GBから50 GBに変更されましたか? sda2デバイスが〜40GBであり、lv_rootが36GBを示し、swapが6GBを示すので、それは本当に奇妙に思えます。

fdisk -lの出力は、/dev/sdaのセクターの合計が104857600であることを示しています。 /dev/sda2が使用する最後のセクターは83886079です。これは、ドライブのすべての使用可能なスペースを使用するようにパーティションサイズを調整していないことを示しています。 pvresizeコマンドはパーティションテーブルを変更しません。最初にパーティションテーブルを変更する必要があります。

2
Zoredache

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署名が消去されないことを確認するためにテストする必要があります。

1
Stuart Gathman

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は、df出力にあるファイルシステムの名前ではなく、マウントポイントを使用してファイルシステムを識別します!!!!!!!

コマンド「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
....
0

ディストリビューションで使用できる場合は、ssm(system-storage-manager)をチェックアウトすることを検討します。

もう少し情報があるようにこれをチェックしてください: https://unix.stackexchange.com/a/29317

ssmを使用すると、自分ですべてを実行しなくても、論理ボリュームのサイズを簡単に変更できます。

OSを再起動し、最初にrootとしてログインした後、ホームパーティションを拡張するために使用できました。 (合計2回再起動する必要がありましたが、最終的には機能し、/ homeパーティションで追加の50Gを利用できるようになりました。)

0
Bryan Cole

LVM物理ボリュームがパーティション上にある場合、再起動しないとサイズを変更できません。

ドライブのパーティションテーブルは編集できますが、Linuxは再起動するまで使用を拒否します。

XFSを使用している場合は、resize2fsxfs_growfs

pvslvsを使用して、使用するPVとボリュームグループ内のLVを表示できます。

RawディスクのPV

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

パーティション上のPV

まず、パーティションのサイズを変更する必要があります。そのためには、partedfdiskまたは同様のツールを使用します。これらのツールは、パーティションがある場所の説明onlyを編集することを覚えておいてください。データは移動しません。つまり、ディスク上の最後のパーティションのみを簡単に拡張できます。次に、マシンを再起動すると、LVMに使用可能な追加のスペースがあることを通知できるはずです。

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>
0
Hubert Kario