連載
» 2019年10月17日 05時00分 公開

Linux基本コマンドTips(346):【 vgsplit 】コマンド――ボリュームグループを分割する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVMでボリュームグループを分割する「vgsplit」コマンドです。

[西村めぐみ,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVMでボリュームグループを分割する「vgsplit」コマンドです。

vgsplitコマンドとは?

 「vgsplit」は、LVM2(Logical Volume Manager 2)で、ボリュームグループを分割するコマンドです。なお、分割する際は、物理ボリューム単位になります。

 Linuxでは当初、HDDなどに直接ファイルシステムを割り当てて管理していましたが、現在では、物理ボリュームをまとめて仮想化されたボリュームグループを作り上げた後、それを論理ボリュームに切り分けて管理する仕組みであるLVMが取り入れられています。例えば、CentOSでは、デフォルト設定のインストールで論理ボリュームを使用します。

 物理ボリュームを直接使うのではなく、論理ボリュームを作り上げて記憶領域を管理することで、LVMでは複数の物理的なディスクを1つにまとめて大容量のファイルシステムを構築したり、ファイルシステムのサイズを後から変更したりする操作が可能になります。

 LVMでボリュームを作成/削除したり、現在の構成を表示したりする場合は次のコマンドを使用します。

対象 作成 削除
物理ボリューム pvcreateコマンド(連載第335回) pvremoveコマンド(連載第338回)
ボリュームグループ vgcreateコマンド(連載第336回) vgremoveコマンド(連載第339回)
論理ボリューム lvcreateコマンド(連載第337回) lvremoveコマンド(連載第340回)


対象 拡張 縮小
物理ボリューム pvextendコマンド pvreduceコマンド
ボリュームグループ vgextendコマンド(連載第342回) vgreduceコマンド(連載第344回)
論理ボリューム lvextendコマンド(連載第343回) lvreduceコマンド(連載第345回)


対象 情報表示 詳細情報表示
物理ボリューム pvsコマンド(連載第331回) pvdisplayコマンド(連載第332回)
ボリュームグループ lvsコマンド(連載第329回) lvdisplayコマンド(連載第330回)
論理ボリューム vgsコマンド(連載第333回) vgdisplayコマンド(連載第334回)


vgsplitコマンドの書式

vgsplit [オプション] 分割対象のボリュームグループ名 新しいボリュームグループ名 [移動対象の物理ボリューム名]

※[ ]は省略可能な引数を示しています。新しいボリュームグループに移動する物理ボリュームは、物理ボリューム名または「-n」オプションで論理ボリューム名を付けて指定します。





vgsplitの主なオプション

短いオプション 長いオプション 意味
-n 名前 --name 名前 指定した論理ボリュームが占める物理ボリュームを移動する(物理ボリュームを明示しない場合に指定する、本文参照
-l 個数 --maxlogicalvolumes 個数 ボリュームグループに作成可能な論理ボリュームの個数を指定する。無制限にしたい場合は「0」を指定、デフォルトは「255」
-p 個数 --maxphysicalvolumes 個数 ボリュームグループに割当可能な物理ボリュームの個数を指定する。無制限にしたい場合は「0」を指定、デフォルトは「255」
-c yまたはn --clustered yまたはn クラスタ環境で、全てのノードからアクセスできるディスクのみをボリュームグループに含めるかどうかを指定する。クラスタ環境でボリュームグループを作成する際のデフォルトは「y」
--alloc ポリシー 物理エクステント(※1)の最低レベルの割当ポリシーを「contiguous」「cling」「normal」「anywhere」から指定する(※2)
-M --metadatatype 1または2 メタデータの形式を指定する。lvm2の場合は「2」または「lvm2」とする(デフォルト)
--vgmetadatacopies 個数 メタデータを複製する個数を指定する(0を指定するとメタデータを1つだけ作成する、※3)
-A yまたはn --autobackup yまたはn メタデータのバックアップを行うかどうかを指定する(デフォルトは「y」、バックアップを/etc/lvm/backupに保存する
-y --yes 全ての問い合わせに対し「y」を入力したものとして実行する
-f --force 処理内容を確認せず、強制的に実行する
-t --test 実際には実行せず、処理内容だけを表示する
-v --verbose 付加情報を表示する

※1 LVMでは記憶領域の最小単位(通常は約4MB)を「物理エクステント」(PE)と呼ぶ。ボリュームグループを論理ボリュームに切り分ける際の最小単位を「論理エクステント」(LE)と呼ぶ。PEとLEは通常同じ大きさに設定されている。
※2 contiguousには全ての論理エクステントが隣接した物理エクステントを使用するなどの特徴があり、パフォーマンスが良い。anywhereは領域を有効に使えるものの、パフォーマンスが低下する可能性がある。デフォルトでは「contiguous」のポリシーに従って割り当て、割り当てができなくなると「cling」ポリシーに従い、次に「normal」ポリシーに従う。
※3 LVMでは、ボリュームグループの詳細設定を「メタデータ」として保存する。複数の物理ボリュームで1つのボリュームグループを構成している場合、最低1つの物理ボリュームにメタデータ用のエリアが必要だ。デフォルトではボリュームグループ内の全ての物理ボリュームに同一内容のメタデータを保存する。





ボリュームグループを分割する

 ボリュームグループを分割するときは、「vgsplit 分割対象のボリュームグループ名 新しいボリュームグループ名 移動対象の物理ボリューム名」で、新しいボリュームグループを作成し、新しいボリュームグループに指定した物理ボリュームを移します。

 物理ボリューム「/dev/sdb」と「/dev/sdc」で構成されているボリュームグループ「datagroup」があったとしましょう。このボリュームグループを分割して、新たにボリュームグループ「testgroup」を作ることにします。「testgroup」には「/dev/sdc」を割り当てる(/dev/sdcをdatagroupからtestgroupに移動する)場合、「vgsplit datagroup testgroup /dev/sdc」のようにします。

 なお、対象のボリュームグループに既に論理ボリュームがあった場合、先に論理ボリュームを停止状態(非アクティブな状態)にする必要があります(関連部分を参照)。

 vgsplitコマンドの実行にはroot権限が必要です。「sudo」コマンド(連載第68回)などを利用してください。

コマンド実行例

vgsplit datagroup testgroup /dev/sdc

(ボリュームグループ「datagroup」を分割し、新しいボリュームグループ「testgroup」を作成、「/dev/sdc」を「datagroup」から「testgroup」に移す)


 画面1では、物理ボリューム「/dev/sdb」と「/dev/sdc」を含むボリュームグループ「datagroup」を扱っています。このボリュームグループを分割して、新たにボリュームグループ「testgroup」を作成しています。同時に「/dev/sdc」をボリュームグループ「testgroup」に割り当てました。

画面1 画面1 ボリュームグループを分割したところ 新しいボリュームグループに割り当てる物理グループを指定しなければならない


論理ボリュームが存在するボリュームグループを分割する

 既に論理ボリュームが存在するボリュームグループを分割する場合には、注意が必要です。新しいボリュームグループに論理ボリュームを移動する際には、その論理ボリュームを「非アクティブ化(停止)」(※4)しなければならないからです。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。