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

Linux基本コマンドTips(344):【 vgreduce 】コマンド――ボリュームグループから物理ボリュームを削除する

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

[西村めぐみ,@IT]

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

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

Linux基本コマンドTips一覧

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

vgreduceコマンドとは?

 「vgreduce」は、LVM2(Logical Volume Manager 2)で、ボリュームグループから物理ボリュームを削除するコマンドです。HDDをPCから取り外したいときなどに使用します。

 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回)


vgreduceコマンドの書式

vgreduce [オプション] ボリュームグループ名 [物理ボリューム名]

※[ ]は省略可能な引数を示しています。





vgreduceの主なオプション

短いオプション 長いオプション 意味
-a --all 物理ボリュームを指定しなかった場合、空の物理ボリュームを全て取り除く
--removemissing 存在しない物理ボリュームを取り除く
-A yまたはn --autobackup yまたはn メタデータのバックアップを行うかどうかを指定する(デフォルトは「y」、バックアップを/etc/lvm/backupに保存する)
-y --yes 全ての問い合わせに対し「y」を入力したものとして実行する
-f --force 処理内容を確認せず、強制的に実行する
-t --test 実際には実行せず、処理内容だけを表示する
-v --verbose 付加情報を表示する


ボリュームグループから物理ボリュームを削除する

 「vgreduce ボリュームグループ名 物理ボリューム名」で、ボリュームグループから物理ボリュームを取り除きます。

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

 指定した物理ボリュームを論理ボリュームが使っていた場合、vgreduceコマンドでは取り除くことができません。先に該当する論理ボリュームを削除するか、「pvremove」コマンドで、異なる物理ボリュームに移動しておく必要があります。

コマンド実行例

vgreduce ボリュームグループ名 物理ボリューム名

(ボリュームグループから物理ボリュームを取り除く)

vgreduce datagroup /dev/sdb

(ボリュームグループ「datagroup」から物理ボリューム「/dev/sdb」を取り除く)


 画面1では、ボリュームグループ「datagroup」から、物理ボリューム「/dev/sdb」を取り除こうとしています。

画面1 画面1 ボリュームグループから物理ボリュームを削除したところ 一部の物理ボリュームが使用中だったため、再配置を行った。

 まず、lvsコマンドvgsコマンドpvsコマンドを使って、現在の論理ボリューム、ボリュームグループ、物理ボリュームの状況を順に確認しています。

 物理ボリューム「/dev/sdb」と「/dev/sdc」にボリュームグループ「datagroup」があり、datagroupが論理ボリューム「data1」と「data2」に分かれています。

 まず「vgreduce datagroup /dev/sdb」を試みたところ、/dev/sdbは使用中(still in use)だというメッセージが表示されました。

 画面1で実行したpvsコマンドの出力によると、論理ボリューム「/dev/sdb」のサイズは64GiBで、そのうち空き領域(PFree)が24GiBなので、40GiBが使用中です(※1)。一方、「/dev/sdc」には空き領域が88GiBあります。そこでpvmoveコマンドを使い、論理ボリュームを再配置しました。「pvmove /dev/sdb /dev/sdc」とすることで/dev/sdbのデータを/dev/sdcに再配置しています。

※1 GiB(ギビバイト)は2の30乗バイト。「pvs」コマンドなど、lvm関連のコマンドではGiBを「g」と表示する。なお、GB(ギガバイト)は10の9乗バイトで、1GiB=約1.074GB、1GB=約0.93GiB。



 画面1では、pvmoveコマンドの実行後、あらためて「vgreduce datagroup /dev/sdb」を実行し、ボリュームグループ「datagroup」から、物理ボリューム「/dev/sdb」を取り除いています。



未使用の物理ボリュームを全て取り除く

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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