【 vgcreate 】コマンド――ボリュームグループを作成する:Linux基本コマンドTips(336)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVM環境用にボリュームグループを作成する「vgcreate」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、LVM環境用にボリュームグループを作成する「vgcreate」コマンドです。
vgcreateコマンドとは?
「vgcreate」はLVMの「ボリュームグループ」を作成するコマンドです。
Linuxでは当初、HDDなどに直接ファイルシステムを割り当てて管理していましたが、現在では、物理ボリュームをまとめて仮想化されたボリュームグループを作り上げた後、それを論理ボリュームに切り分けて管理する仕組み「LVM(Logical Volume Manager)」が取り入れられています。例えば、CentOSでは、デフォルト設定のインストールで論理ボリュームを使用します。
実際にLVMの仕組みを使いこなすには、まず「pvcreate」コマンド(連載第335回)で物理ボリュームを作成します。その後、vgcreateコマンドを使って、物理ボリューム上にボリュームグループを作り上げます。最後に、「lvcreate」コマンド(連載第337回)を使って、ボリュームグループ上に論理ボリュームを作成します。
物理ボリュームを直接使うのではなく、論理ボリュームを作り上げて記憶領域を管理することで、LVMでは複数の物理的なディスクを1つにまとめて大容量のファイルシステムを構築したり、ファイルシステムのサイズを後から変更したりする操作が可能になります。
vgcreateコマンドは、lvm2パッケージに収録されています。CentOS環境では「sudo yum install lvm2」、Ubuntu環境では「sudo apt install lvm2」でインストールできます。lvm2では、ほとんどの操作を「lvm」コマンドで実行できます。なお、vgcreateコマンドもlvmコマンドへのシンボリックリンクです。
vgcreateコマンドの書式
vgcreate [オプション] ボリュームグループ名 デバイス名またはパーティション名……
※[ ]は省略可能な引数を示しています。
vgcreateの主なオプション(基本オプション)
短いオプション | 長いオプション | 意味 |
---|---|---|
-s サイズ | --physicalextentsize サイズ | PE(Physical Extent:物理エクステント)のサイズを指定する(※1)。単位には「K」や「M」などが使用可能(※2) |
-l 個数 | --maxlogicalvolumes 個数 | ボリュームグループに作成可能な論理ボリュームの個数を指定する。無制限にしたい場合は「0」を指定する(デフォルトは255個) |
-p 個数 | --maxphysicalvolumes 個数 | ボリュームグループに割当可能な物理ボリュームの個数を指定する。無制限にしたい場合は「0」を指定する(デフォルトは255個) |
-c yまたはn | --clustered yまたはn | クラスタ環境で、全てのノードからアクセスできるディスクのみをボリュームグループに含めるかどうかを指定する(クラスタ環境でボリュームグループを作成する際のデフォルトは「y」) |
--addtag タグ | タグ(オブジェクトタグ)を付ける。タグは、ボリュームグループ名などの名前の代わりに「vgs @タグ」のように使用できる(本文を参照) | |
--alloc ポリシー | 物理エクステントの最低レベルの割当ポリシーを「contiguous」「cling」「normal」「anywhere」から指定する(※3) | |
-y | --yes | 全ての問い合わせに対し「y」を入力したものとして実行する |
-f | --force | 処理内容を確認せず、強制的に実行する |
-Z yまたはn | --zero yまたはn | 最初の4セクタ(2048バイト)をゼロで消去するかどうかを指定する(デフォルトは「y」) |
-t | --test | 実際には実行せず、処理内容だけを表示する |
-v | --verbose | 付加情報を表示する |
vgcreateの主なオプション(メタデータ関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-A yまたはn | --autobackup yまたはn | メタデータのバックアップを行うかどうかを指定する(デフォルトは「y」、バックアップを/etc/lvm/backupに保存する) |
--vgmetadatacopies 個数 | メタデータを複製する個数を指定する(0を指定するとメタデータを1つだけ作成されることになる、※4)。0以外の値を指定した場合、物理ボリュームの「metadataignore」フラグを自動で管理する。管理したくない場合は個数の代わりに「unmanaged」を指定する | |
--metadatacopies 個数 | 「--vgmetadatacopies 個数」と共通 |
vgcreateの主なオプション(pvcreateと共通のオプション)
短いオプション | 長いオプション | 意味 |
---|---|---|
--pvmetadatacopies 個数 | メタデータを複製する個数を指定する(0を指定するとメタデータが1つだけ作成されることになる、※4) | |
--metadatasize サイズ | メタデータエリアのサイズ。単位には「G」や「T」などが使用可能(※2) | |
--labelsector 位置 | 物理ボリュームラベルを配置するセクタを0〜3で指定する(デフォルトは1で、2番目の512バイトセクタに配置される) | |
-M | --metadatatype 1または2 | メタデータの形式を指定する。lvm2の場合は「2」または「lvm2」と指定(デフォルト) |
--dataalignment サイズ | データの開始位置を指定したサイズの倍数にする。「K」など単位も使用可能(※2)。RAIDを使用している場合、ストライプサイズに合わせておくと効率がよくなる | |
--dataalignmentoffset オフセット | データ領域を指定したオフセットの分だけずらす。「K」など単位も使用可能(※2) | |
--metadataprofile プロファイル名 | 設定プロファイルを指定する。定義済プロファイルは「/etc/lvm/profile/プロファイル名.profile」にあり、保存場所は/etc/lvm/lvm.confで変更可能 |
※1 ボリュームグループと論理ボリュームは「PE」(Physical Extent:物理エクステント)という単位で管理されており、PEの大きさはデフォルトでは約4MB(正確には4MiB=4096×1024バイト)。以前は1つの論理ボリュームに割当可能なPEの個数が65536までという制限があったが、現行のLVM(LVM2)にはこの制限はない。
※2 大文字、小文字にかかわらず1024の倍数を意味する。
※3 contiguousには全ての論理エクステントが隣接した物理エクステントを使用するなどの特徴があり、パフォーマンスがよい。anywhereは領域を有効に使えるものの、パフォーマンスが低下する可能性がある。デフォルトでは「contiguous」のポリシーに従って割り当て、割り当てができなくなると「cling」ポリシーに従い、次に「normal」ポリシーに従う。
※4 LVMでは、ボリュームグループの詳細設定を「メタデータ」として保存する。複数の物理ボリュームで1つのボリュームグループを構成している場合、最低1つの物理ボリュームにメタデータ用のエリアが必要だ。デフォルトではボリュームグループ内の全ての物理ボリュームに同一内容のメタデータを保存する。
ボリュームグループを作成する
「vgcreate ボリュームグループ名 物理ボリュームが存在するデバイス名またはパーティション名」で、指定した場所にボリュームグループを作成します。
物理ボリュームが作成されていないデバイス名やパーティション名を指定することはできません。
例えば、/dev/sda2というパーティションに物理ボリュームがある場合は「vgcreate ボリュームグループ名 /dev/sda2」というように指定してボリュームグループを生成します。
あるいは、/dev/sdb全体が物理ボリュームとなっているのであれば「vgcreate ボリュームグループ名 /dev/sdb」のように指定します。
vgcreateコマンドの実行にはroot権限が必要です。「sudo」コマンド(連載第68回)などを利用してください。
コマンド実行例
vgcreate ボリュームグループ名 デバイス名またはパーティション名
(指定した場所にボリュームグループを作る)
vgcreate datagroup /dev/sdb
(ボリュームグループ「datagroup」を「/dev/sdb」に作る)
vgcreate datagroup /dev/sda2
(ボリュームグループ「datagroup」を「/dev/sda2」に作る)
vgcreate datagroup /dev/sdb /dev/sdc
(ボリュームグループ「datagroup」を「/dev/sdb」と/dev/sdcに作る)(画面1)
画面1では、pvcreateコマンドで/dev/sdb(64GiB、※5)と/dev/sdc(128GiB)に物理ボリュームを作成しています。続いて、vgcreateで/dev/sdbと/dev/sdc上の物理ボリュームを合わせて「datagroup」というボリュームグループを作成し、lvcreateコマンドでdatagroupの全ての領域を使って「data」という論理ボリュームを作成しました。
※5 GiB(ギビバイト)は2の30乗バイト。「pvs」コマンドなど、lvm関連のコマンドでは「g」という単位で表示する。なお、GB(ギガバイト)は10の9乗バイトで、1GiB=約1.074GB、1GB=約0.93GiB。
続いて、作成後の状況を確認するため、物理ボリュームの情報を「pvs」コマンド(連載第331回)で、ボリュームグループの情報を「vgs」コマンド(連載第333回)で、論理ボリュームの情報を「lvs」コマンド(連載第329回)で表示しています。
その結果、新しく作成した「data」ボリュームの容量が/dev/sdbと/dev/sdcを合わせた192GiB(実際には管理領域があるため191.99gと表示)となっていることが分かります。
ボリュームグループに物理ボリュームを追加したい場合は「vgextend」コマンドを使用します。逆に、ボリュームグループから物理ボリュームを削除するには「vgreduce」コマンドを使用します。
この他、「vgsplit」コマンドでボリュームグループを分割でき(※6)、「vgmerge」コマンドでボリュームグループを統合できます。ボリュームグループの名前を変更するには「vgrename」コマンドを使用します。さらに、ボリュームグループの削除は「vgremove」コマンドで行います。
※6 ボリュームグループの分割は、デバイスまたはパーティション単位で行う必要がある。
タグ付きのボリュームグループを作成する
関連記事
Copyright © ITmedia, Inc. All Rights Reserved.