【 lvextend 】コマンド――論理ボリュームのサイズを拡張する:Linux基本コマンドTips(343)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVMで論理ボリュームのサイズを拡張する「lvextend」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVMで論理ボリュームのサイズを拡張する「lvextend」コマンドです。
lvextendコマンドとは?
「lvextend」は、LVM2(Logical Volume Manager 2)で、論理ボリュームのサイズを拡張するコマンドです。既にファイルシステムが存在している論理ボリューム(フォーマット済みの論理ボリューム)も拡張できます。
Linuxでは当初、HDDなどに直接ファイルシステムを割り当てて管理していましたが、現在では、物理ボリュームをまとめて仮想化されたボリュームグループを作り上げた後、それを論理ボリュームに切り分けて管理する仕組みであるLVMが取り入れられています。例えば、CentOSでは、デフォルト設定のインストールで論理ボリュームを使用します。
物理ボリュームを直接使うのではなく、論理ボリュームを作り上げて記憶領域を管理することで、LVMでは複数の物理的なディスクを1つにまとめて大容量のファイルシステムを構築したり、ファイルシステムのサイズを後から変更したりする操作が可能になります。
なお、論理ボリュームではなく、ボリュームグループのサイズを拡張する際には物理ボリュームを追加します。その際には「vgextend」コマンド(連載第342回)を使用します。
また、物理ボリュームを拡張する方法もあり、それには「pvextend」コマンドを使用します。ただし、物理ボリュームは通常、パーティションまたはディスク全体に1対1で割り当てるため、サイズを変更する機会はほとんどないでしょう。
この他、LVMでボリュームを作成/削除したり、現在の構成を表示したりする場合は次のコマンドを使用します。
対象 | 作成 | 削除 |
---|---|---|
物理ボリューム | pvcreateコマンド(連載第335回) | pvremoveコマンド(連載第338回) |
ボリュームグループ | vgcreateコマンド(連載第336回) | vgremoveコマンド(連載第339回) |
論理ボリューム | lvcreateコマンド(連載第337回) | lvremoveコマンド(連載第340回) |
対象 | 情報表示 | 詳細情報表示 |
---|---|---|
物理ボリューム | pvsコマンド(連載第331回) | pvdisplayコマンド(連載第332回) |
ボリュームグループ | lvsコマンド(連載第329回) | lvdisplayコマンド(連載第330回) |
論理ボリューム | vgsコマンド(連載第333回) | vgdisplayコマンド(連載第334回) |
lvextendコマンドの書式
lvextend サイズ指定オプション [その他のオプション] 論理ボリューム名 [物理ボリューム名]
※[ ]は省略可能な引数を示しています。
lvextendの主なオプション(サイズ指定オプション)
短いオプション | 長いオプション | 意味 |
---|---|---|
-L サイズ | --size サイズ | 論理ボリュームのサイズを指定する。単位には「M」や「G」「T」などが使用可能(※1)。追加する量を指定する場合は頭に「+」記号を付ける |
-l サイズ | --extents サイズ | 拡張する論理ボリュームのサイズを論理エクステント(※2)の個数、または割合(「%VG」「%PVS」「%FREE」「%ORIGIN」)で指定する。追加する量を指定する場合は頭に「+」記号を付ける %VG ボリュームグループ全体に対する比率 %FREE ボリュームグループの空き容量に対する比率 %PVS 物理ボリュームに対する比率 %ORIGIN 元の論理ボリュームの合計サイズ(スナップショット用)に対する割合 |
※1 大文字、小文字にかかわらず1024の倍数を意味する。
※2 LVMでは記憶領域の最小単位(通常は約4MB)を「物理エクステント」(PE)と呼ぶ。ボリュームグループを論理ボリュームに切り分ける際の最小単位を「論理エクステント」(LE)と呼ぶ。PEとLEは通常同じ大きさに設定されている。
lvextendの主なオプション(その他のオプション)
短いオプション | 長いオプション | 意味 |
---|---|---|
-r | --resizefs | ファイルシステムのサイズも変更する(内部で「fsadm」コマンドを使用) |
-A yまたはn | --autobackup yまたはn | メタデータのバックアップを行うかどうかを指定する(デフォルトは「y」、バックアップを/etc/lvm/backupに保存する) |
--alloc ポリシー | 物理エクステントの最低レベルの割当ポリシーを「contiguous」「cling」「normal」「anywhere」から指定する(※3) | |
--use-policies | lvm.confのポリシーに従う | |
-n | --nofsck | 実行前にファイルシステムのチェックを行わない(--forceと併用) |
--noudevsync | udevデバイスマネジャーとの同期を行わない | |
-y | --yes | 全ての問い合わせに対し「y」を入力したものとして実行する |
-f | --force | 処理内容を確認せず、強制的に実行する |
-t | --test | 実際には実行せず、処理内容だけを表示する |
-v | --verbose | 付加情報を表示する |
※3 contiguousには全ての論理エクステントが隣接した物理エクステントを使用するなどの特徴があり、パフォーマンスがよい。anywhereは領域を有効に使えるものの、パフォーマンスが低下する可能性がある。デフォルトではcontiguousのポリシーに従って割り当て、割り当てができなくなるとclingポリシーに従い、次にnormalポリシーに従う。
論理ボリュームのサイズを拡張する
「lvextend -Lまたは-lオプション 論理ボリューム名」で、論理ボリュームのサイズを変更します。変更後のサイズを、lvcreateコマンドで論理ボリュームを作成する際と同じように、-Lまたは-lオプションで指定します。
「+サイズ」のように数字の前に「+」を付けると、変更後のサイズではなく、追加するサイズを指定できます。
実行にはroot権限が必要です。「sudo」コマンド(連載第68回)などを利用してください。
コマンド実行例
lvextend -L サイズ 論理ボリューム名
(論理ボリュームを指定したサイズに拡張する)
lvextend -L 64g /dev/datagroup/data1
(ボリュームグループ「datagroup」上の論理ボリューム「data1」を64GiBになるよう拡張する)
lvextend -L +64g /dev/datagroup/data1
(ボリュームグループ「datagroup」上の論理ボリューム「data1」に64GiB追加する)
lvextend -l 100%FREE /dev/datagroup/data1
(ボリュームグループ「datagroup」の空き容量全てを論理ボリューム「data1」に追加する)
画面1では、ボリュームグループ「datagroup」にある「data1」と「data2」のサイズを拡張しました。
まず、lvsコマンドとvgsコマンドで現在のLVMの状況を確認しています。
ボリュームグループ「datagroup」に論理ボリューム「data1」「data2」があり、サイズはそれぞれ40GiBと24GiBです(※4)。datagroupの空き容量(VFree)は128GiBと表示されています。
※4 GiB(ギビバイト)は2の30乗バイト。「pvs」コマンドなど、lvm関連のコマンドでは「g」という単位で表示する。なお、GB(ギガバイト)は10の9乗バイトで、1GiB=約1.074GB、1GB=約0.93GiB。画面1ではGiBを「g」で表している。
次に、論理ボリューム「data2」に16GiB追加しました。これでdata2の容量は40GiBに増えました。
続いて、ボリュームグループ「datagroup」の残り全てを論理ボリューム「data1」に追加しています。追加直前の時点ではdatagroupの空き容量は112GiBだったので、追加後のdata1のサイズも112GiBに増えました。
フォーマット済みの論理ボリュームのサイズを拡張する
既にファイルシステムが存在している論理ボリューム(フォーマット済みの論理ボリューム)のサイズを拡張したい場合は、「-r」(--resizefs)オプションを使用します(画面2)。
Copyright © ITmedia, Inc. All Rights Reserved.