GPTドライブのLVMパーティションのサイズ変更

GPTドライブのLVMパーティションのサイズ変更

/パスがいっぱいの仮想マシンとしてCentosサーバーがあります。そのため、パーティションサイズを50 GBから70 GBに調整しようとしています。

私はこのガイドに従いました https://www.thomas-krenn.com/de/wiki/LVM_vergr%C3%B6%C3%9Fern

したがって、最初のステップは、仮想マシンの基本設定のサイズを増やすことです。

その後、cfdiskを使用して新しいパーティションを作成しました。

今後:

sda1                        NC                          Primary                GPT                                                                      53687.10                *
                                                        Pri/Log                Free Space                                                               21474.84                *

作成後:

 sda1                        NC                          Primary                GPT                                                                      53687.10                *
 sda2                                                    Primary                Linux                                                                    21474.84                *

ガイドの言葉どおりに再起動せずに最初に再起動し、partprobeコマンドを使用しました。

partprobe
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.   
Fix, by moving the backup to the end (and removing the old backup)?
Warning: Not all of the space available to /dev/sda appears to be used, you  
can fix the GPT to use all of the space (an extra 41943040 blocks) or  
continue with the current setting?
Warning: WARNING: the kernel failed to re-read the partition table on    
/dev/sda (Device or resource busy).  As a result, it may not reflect all of   
your changes until after reboot.

このメッセージを受け取った後、確信がなく、最終的に再起動しました。

その後、新しいパーティションをPVに初期化しようとします。

[root]# pvs
PV         VG            Fmt  Attr PSize  PFree
/dev/sda3  vg_atcrushftp lvm2 a--  49.31g 10.00g

そして、次のエラーメッセージが表示されました:

[root]# pvcreate /dev/sda2
Can't open /dev/sda2 exclusively.  Mounted filesystem?

今はわからないので、dfで見つけました。

[root]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_atcrushftp-lv_root
                   35G  8.4G   25G  26% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda2             477M  121M  331M  27% /boot
/dev/sda1             200M  260K  200M   1% /boot/efi
//192.168.0.53/pictures

[root]# df -T
Filesystem           Type   1K-blocks       Used  Available Use% Mounted on
/dev/mapper/vg_atcrushftp-lv_root
                 ext4    36380264    8720856   25804740  26% /
tmpfs                tmpfs    1962068          0    1962068   0% /dev/shm
/dev/sda2            ext4      487652     123566     338486  27% /boot
/dev/sda1            vfat      204580        260     204320   1% /boot/efi

mount コマンドは次のようになります。

[root]# mount
/dev/mapper/vg_atcrushftp-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda2 on /boot type ext4 (rw)
/dev/sda1 on /boot/efi type vfat (rw,umask=0077,shortname=winnt)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

私が作成したパーティションは/bootなので使用できないようです。これは/ bootの情報が破損していることを意味しますか?始める前にスナップショットを作成しました。これにより、以前の状態を復元できます。

次は何をすべきですか?データを失うことなくパーティションのサイズを変更したいです。

答え1

GPTドライブのLVMパーティションのサイズ変更

注文する:

pvs         Shows physical volume
lvs         Shows logical volume
vgs         Shows volume groups
vgdisplay   Shows volume groups including mount points
lsblk       Shows block hierarchy (plate, partition, LVM)

必要なステップの基本的な流れは基本的に次のとおりです。

  1. 新しいスペースを使用するには、LVM パーティションのサイズを変更します。
  2. 新しくサイズ変更されたスペースを使用するには、LVMパーティションの物理ボリュームのサイズを変更します。
  3. ボリュームグループ内の論理ボリュームサイズを新しいサイズに調整します。
  4. サイズに合わせて各論理ボリュームのファイルシステムのサイズを変更します。

警告:前にバックアップを作成してください


回復モードで再起動

または、オンラインでパーティションのサイズを変更することはできませんので、Live CD / USB環境に再起動してください。

(GPTパーティションディスクなので、FDiskの代わりにPartedツールを使用する必要があります。)

リカバリモードまたはライブ環境にまだ端末がない場合は、端末を開き、次のコマンドを入力してPartedを起動してアレイを確認します。

$ sudo parted /dev/sda

GNU Parted 2.3
Using /dev/sda Welcome to GNU Parted!
Type 'help' to view a list of commands.

これで "(parted)" プロンプトが表示されました。まず、使用する測定単位をセクタに切り替える必要があります。次のコマンドを実行してこれを実行します。

(parted) u s

次に、「print」コマンドを使用して既存のパーティションを一覧表示します。次のような内容が表示されます。

(parted) print 
Model: INTEL SRCSATAWB (scsi)
Disk /dev/sda: 19521474560s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
 1 2048s 1953791s 1951744s ext4 Boot boot
 2 (red)1953792s(/red) 19521474526s 19519520735s MYSERVER_HDD lvm

注:GPTテーブルがディスクの末尾にないことを示す警告メッセージが表示されることがあります。これは、ディスクサイズがシステムの予想よりも小さいことを示します(アレイのサイズが変更されたので覚えていますか?)。この問題を解決するかどうかを尋ねるメッセージが表示されます。 「F」と入力してEnterを押します。これにより、カーネルがまだ変更を認識していないという警告が表示されることがあります。 「I」と入力し、Enter キーを押して「無視」に応答します。 Parted を使用している場合は、後者のメッセージを複数回入力するように求められます。答えは毎回「無視」です。この環境ではとにかく最後に再起動するので、現在のカーネルはこれらの変更を知る必要はありません。

上で赤で強調表示されている項目は、デバイスの全体セクタ(新しく拡張されたアレイの合計サイズを表す)と2番目のパーティションの開始セクタです。あなたの番号をもう一度確認して正しいことを確認してください。ここに間違いがあると、データが破損する可能性があります。

今度は、アレイで新しく作成されたスペースをすべて使用するように2番目のパーティションのサイズを変更します。残念ながら、GPTのサイズは調整できません。代わりにパーティションを削除して再作成する必要があります。恐ろしく聞こえますが、このプロセスではドライブのデータが変わらないので心配しないでください。単にドライブ上のパーティションの始まりと終わりに関連する幾何学的データを削除します。次のコマンドを使用して2番目のパーティションを削除します。

(parted) rm 2

それでは、それを置き換える新しいパーティションを作成してみましょう。次のように入力します。

(parted) mkpart

パーティション名を入力するように求められます。以前と同じ名前を指定するか、必要に応じて新しい名前を指定します。

Partition name?  []? MYSERVER_HDD

その後、ファイルシステムの種類の入力を求められます。ここではLVMを指定できないので、Enterキーを押して「ext2」を受け入れるだけです。後で変更します。

File system type?  [ext2]?

その後、開始セクタを提供するように求められます。以前に書き込んだ2番目のパーティションの開始値を指定します。最後に文字「s」を書かないでください。

Start? 1953792

その後、終了セクタを提供するように求められます。前に記録した合計ドライブサイズから1を引いた値を指定します。実際の値を指定すると、値が「デバイス外」であるというエラーメッセージが表示されます。これがその制限内にある値を指定する理由です。

End? 19521474559

これにより、システムが実際にその場所にパーティションを作成できないというメッセージが表示されます(ディスクにスペースを占める別のパーティションがあるため)。したがって、システムは次に最も近い値(残りのスペースの最大値)を提供します。配列から。ただ「Y」と答えてください。

Warning: You requested a partition from 1953792s to 19521474559s.  The
closest location we can manage is 1953792s to 19521165533s. Is this
still acceptable to you? Yes/No?

次に、次のようにパーティションタイプをLVMに変更する必要があります。

(parted) toggle
Partition number? 2
Flag to Invert? lvm

これでパーティション化が完了したので、 quit コマンドを使用して終了します。

(parted) quit

サーバーを再起動してください

正常に起動します。 parted または fdisk を使用してドライブを確認すると、アレイに新しく追加されたスペースを含む完全なパーティションサイズが表示されるはずですが、まだ使用していません。次に、次のコマンドを使用して物理ボリュームのサイズを変更して、LVMに新しいスペースを使用するように指示します。

$ sudo pvresize /dev/sda2
  1. 完了したら、次のコマンドを実行して、LVM物理グループの新しい空き領域(空き領域として表示)を確認できるようになりました。

    $ sudo pvdisplay

これで、新しく取得した空き容量をLVM論理ボリュームに割り当てることができます。まず、定義されたすべての論理ボリュームのリストを取得します。

$ sudo lvdisplay

スペースを追加する各論理ボリュームの「LV名」をメモしてください。

それでは、論理ボリュームのサイズを変更してみましょう。これを行う方法は2つあります。 1つのアプローチは、論理ボリュームの新しいサイズを定義する絶対値を指定するか、既存のサイズに追加する値を指定することです。最初の例では、/dev/myserver/mylogicvolumeという論理ボリュームのサイズを絶対サイズ20GBに変更します。

$ sudo lvextend -L20G /dev/myserver/mylogicalvolume

...これにより、以前のサイズに関係なく、/dev/myserver/myologicalvolume論理ボリュームのサイズが20GBに変更されます。既存のサイズは増加しません。または、次を使用して既存のサイズにスペースを追加します。

$ sudo lvextend -L+20G /dev/myserver/mylogicalvolume

(-Lと20Gの間のプラス記号に注意してください。)...これにより、/ dev / myserver / myologicalvolume論理ボリュームに20 GBのスペースが追加されます。以前のサイズが10GBの場合、現在のサイズは30GBになります。または、残りの空き領域をすべて論理ボリュームに割り当てるには、次のコマンドを実行します。

$ sudo lvextend -l +100%FREE /dev/myserver/mylogicalvolume

(このパラメーターは大文字Lではなく小文字Lです。)拡張したいすべての論理ボリュームに対してこの手順を繰り返します。スペースを割り当てる他の方法もありますが、上記の方法が最も一般的です。詳細については、lvextend コマンドのマニュアルページを参照してください。

次のコマンドを実行して、各論理ボリュームの新しいサイズを確認できます。

$ sudo lvdisplay

ほぼ全部来ました!これで、新しく割り当てられたスペースを使用するように論理ボリュームに含まれるファイルシステムのサイズを変更するだけです。もう一度以前に記録したLV名を使用して変更した各論理ボリュームに対して、次のコマンドを指定します。

$ sudo resize2fs /dev/myserver/mylogicalvolume

すべての論理ボリュームでファイルシステムを拡張したら、次のコマンドを実行して各ファイルシステムの空き容量を確認できます。

$ df -h

それだけです! GPTパーティション配列からLVMパーティションを正常に拡張しました!などを叩いてください。これで終わりました。


元の投稿:

長い検索の最後に、このガイドが役に立ちました。 http://www.serenux.com/2013/11/howto-resize-an-lvm-partition-on-a-gpt-drive-after-expanding-the-underlying-array/

(できるだけフォーマットをうまくやろうと努力しました。)

関連情報