LVMとXFS導入記
余っているHDDをLVMで管理し,ファイルシステムをXFSとしてみた.
LVMってどうなのよってことで,試してみることにした.さらにせっかくなので,ファイルシステムとしてXFSを使用してみることにした.今回の作業概要は以下.
- Linuxカーネル2.6.5をLVMとXFS可能な状態で構築
- HDD丸1個を使用してfdiskする
- 論理ボリュームを作成
- 論理ボリュームをXFSで初期化
- 論理ボリュームの拡張
.configureから,LVM周りの設定らしきものを抜きだしてみた.
# # Multi-device support (RAID and LVM) # CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=y # CONFIG_MD_RAID0 is not set # CONFIG_MD_RAID1 is not set # CONFIG_MD_RAID5 is not set # CONFIG_MD_RAID6 is not set # CONFIG_MD_MULTIPATH is not set CONFIG_BLK_DEV_DM=y # CONFIG_DM_CRYPT is not set次にXFS周りの設定らしきものを抜きだしてみた.
CONFIG_XFS_FS=y # CONFIG_XFS_RT is not set # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_SECURITY is not set CONFIG_XFS_POSIX_ACL=yこの辺の設定をしつつ構築する.
今回,120GのHDDをパーティション1つとしてみた.パーティションタイプを
Linux LVMとすることに注意.
まずlvmのためのパッケージをインストールする(※).
apt-get install lvm2次に物理ボリュームを作成する.
# pvcreate /dev/hdb1 No physical volume label read from /dev/hdb1 Physical volume "/dev/hdb1" successfully createdそしてボリュームグループを作成する.
# vgcreate vg1 /dev/hdb Volume group "vg1" successfully created作成したボリュームグループの状態を確認してみる.
# vgdisplay -v vg1
Using volume group(s) on command line
Finding volume group "vg1"
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 0
Open LV 0
Max PV 255
Cur PV 1
Act PV 1
VG Size 115.04 GB
PE Size 4.00 MB
Total PE 29449
Alloc PE / Size 0 / 0
Free PE / Size 29449 / 115.04 GB
VG UUID uYoFiS-1kVI-Xx57-bpDr-FJr4-j2bB-Sp6YBM
--- Physical volumes ---
PV Name /dev/hdb
PV UUID J692uc-QlGW-Nx1t-2kOM-PCVB-ig4Q-U3PvgC
PV Status allocatable
Total PE / Free PE 29449 / 29449
そして論理ボリュームの作成である.
# lvcreate -L 1024M -n lv1 vg1 Logical volume "lv1" createdこれで論理ボリュームの作成ができた.
※ 思いで.lvm2をインストールせずにlvm-commonのみをインストールした状態でpvcreate等をすると「カーネルにドライバ/モジュールがねーぞ」というようなことを言われる.このメッセージでカーネル構築時のオプションが足りないと思い込んでハマッた.たしかsmbmountの時も同様の思いをした...
まずXFSを作成,管理するためのツールをインストールする.
# apt-get install xfsprogsつぎにmkfs.xfsにて,作成した論理ボリュームを初期化する.
# mkfs.xfs /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=256 agcount=8, agsize=32768 blks
= sectsz=512
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
できた.あとはfstabをに以下のような記述をしてmount -a.
/dev/vg1/lv1 /opt xfs rw,auto 2 0確認.
# mount ... /dev/mapper/vg1-lv1 on /opt type xfs (rw) ...
思わず1Gで論理ボリュームを作成してしまったが,いくらなんでも小さすぎた(※).
# df -h Filesystem サイズ 使用 残り 使用% マウント位置 ... /dev/mapper/vg1-lv1 1014M 148K 1014M 1% /optで,拡張してみる.以降の作業は,なんとmountしたままできる.まず論理ボリュームの拡張.
# lvextend -L 20G /dev/vg1/lv1 Extending logical volume lv1 to 20.00 GB Logical volume lv1 successfully resizedさらにファイルシステムの拡張をする必要がある.xfsの場合,xfs_growfsを使用する.
# xfs_growfs /opt/
meta-data=/opt isize=256 agcount=8, agsize=32768 blks
= sectsz=512
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
data blocks changed from 262144 to 5242880
確認.
# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda3 37G 4.4G 31G 13% / /dev/hda1 464M 27M 413M 7% /boot /dev/hda4 38G 13G 24G 34% /home /dev/mapper/vg1-lv1 20G 2.6M 20G 1% /opt
※ そもそも用途をあまり考えていないのでなんとも言えないような気もするが...

