LVM
・簡単に言えば、ディスクの仮想化である。
・複数のハードディスクを一本にまとめる,ディスクを仮想化する
・ソフトウェアRAIDが使える様になる.(正確にはLVMのミラー)
・スナップショット(シャドウコピー)が扱える
参考サイト
http://linux4pro.seesaa.net/article/45836098.html
http://itpro.nikkeibp.co.jp/article/Keyword/20071012/284413/
http://www.usupi.org/sysad/165.html
http://www.usupi.org/sysad/164.html
LVMを使って出来ること
Linux サーバー Hacks2 によると、出来ることは次のこんな感じ
5章 ストレージ管理とバックアップ
46. LVMで柔軟なストレージを構築する
47. LVMとソフトウェアRAIDを組み合わせる
48. LVMボリュームのCopy-on-Write Snapshotを作成する
49. システムを手っ取り早く複製する
50. 大容量ドライブを備えるディスク間でのバックアップ作業
51. ディスク領域を解放する
52. Linuxグループを使ってファイルを共有する
53. ACLを使ってパーミッションに手を加える
54. 拡張属性によってファイル検索を容易にする
55. クォータでディスクの独占を防ぐ
(最後51-55の5つはLVM以外でも使える
LVMを作成する
全体の流れはこんな感じ
・fdisk で lvm パーティションに変更
・LVM物理ボリュームを指定
・ボリュームグループを作って物理ボリュームを束ねる
・論理ボリュームを作ってフォーマットする
fdisk で lvm パーティションへ
sudo fdisk /dev/sdc (略 コマンド (m でヘルプ): t パーティション番号 (1-6): 1 16進数コード (L コマンドでコードリスト表示): 8e (略 デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 63 976559219 488279578+ 8e Linux LVM /dev/sdc2 976562564 1953125064 488281250+ 8e Linux LVM /dev/sdc3 1953125065 2929687565 488281250+ 8e Linux LVM /dev/sdc4 2929687566 3907029167 488670801 5 拡張領域 /dev/sdc5 2929687629 3417968879 244140625+ 8e Linux LVM /dev/sdc6 3417968943 3907029167 244530112+ 8e Linux LVM
pvcreate で物理ボリュームを作る
物理ボリュームと呼ぶ。これは通常のHDDと同じ扱い。LVMを入れると、HDDやパーティションの垣根が無くなる。これらはLVMの管理下だよと明示する。(と私は理解している)
pvcreate /dev/sdc2 /dev/sdc3 /dev/sdc5 /dev/sdc6
できあがった pv を確認する
pv (physical volume )を一覧にだして確認する
takuya@atom:~$ sudo pvscan PV /dev/sdc2 VG Volume00 lvm2 [465.66 GiB / 0 free] PV /dev/sdc3 VG Volume00 lvm2 [465.66 GiB / 0 free] PV /dev/sdc5 VG Volume00 lvm2 [232.83 GiB / 0 free] PV /dev/sdc6 VG Volume00 lvm2 [233.20 GiB / 0 free] Total: 4 [1.31 TiB] / in use: 4 [1.31 TiB] / in no VG: 0 [0 ]
かくにんできました。次へ
ボリュームグループを作る
ボリュームは物理ボリュームを束ねる。複数の物理HDDを束ね。束ねて一個の仮想ディスクを作るのがココ.
vgcreate Volume00 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6
このコマンドは、次の様な書式になっている
vgcreate ボリューム名 物理ボリューム2 [物理ボリューム2 物理ボリューム3 ・・・]
vgscanボリューム一覧を見る
takuya@atom:~$ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "Volume00" using metadata type lvm2
出来てる.確認できたので次へ
lvcreate で論理ボリュームを作る
さっき作った Volume00上に論理ボリュームを作る
128MBのボリュームを作る場合
lvcreate -L 128M -n LogVol01 Volume00
VGに対し、出来るだけ最大.残量の全部を指定するには100%を使う →[http://ceron.jp/url/eitaro.cpmstaff.com/?p=160
:title=参考]
lvcreate -n LogVol00 -l 100%FREE Volume00
とすればよい。LogVol00 はボリューム名を決めて指定する。Volume00は前に作ったボリュームグループ名
lvscanで一覧を見る
lvscanで作ったボリュームグループの一覧を確認できる
takuya@atom:~$ sudo lvscan ACTIVE '/dev/Volume00/LogVol00' [1.31 TiB] inherit
これで通常のディスクと同じように使うことが出来る.
デバイスファイルとして認識されるので
/dev/mapper/Volume00-LogVol00
ディスクが現れる.
別のアクセスも出来る
/dev/Volume00/LogVol00
作られたディスクのパスを確認する
takuya@atom:~$ ls -l /dev/mapper/Volume00-LogVol00 lrwxrwxrwx 1 root root 7 2011-04-25 12:28 /dev/mapper/Volume00-LogVol00 -> ../dm-0 takuya@atom:~$ ls -l /dev/Volume00/LogVol00 lrwxrwxrwx 1 root root 7 2011-04-25 12:28 /dev/Volume00/LogVol00 -> ../dm-0
ディスクデバイスが出来ている.確認できたので次へ.
作った論理ボリュームをマウントして使う
ボリュームをext3でフォーマット
sudo mkfs.ext3 /dev/mapper/Volume00-LogVol00
マウントする
sudo mount /dev/mapper/Volume00-LogVol00 /mnt2
できあがり。
LVMにディスクを追加する.
整理が終わった空きパーティションが出来たので,コレをLVMに追加する.
PV を新規作成し、VGに追加し,LVに容量を追加する
sudo pvscan sudo pvcreate /dev/sdc1 sudo vgextend Volume00 /dev/sdc1 sudo umount /usr/share/epgrec/video/ sudo lvextend -l +100%FREE /dev/Volume00/LogVol00 e2fsck -f /dev/Volume00/LogVol00 resize2fs /dev/Volume00/LogVol00
数TBだとe2fsck と resize2fs がすごく時間がかかる。しかも一度Mountを外さないと行けない.
ディスクを使いながら容量追加出来れば理想なんですけどね.