ファイヤープロジェクト
LVMとXFS導入記
2004-04-25T21:00+09:00   matsu
余っているHDDをLVMで管理し,ファイルシステムをXFSとしてみた.
LVMってどうなのよってことで,試してみることにした.さらにせっかくなので,ファイルシステムとしてXFSを使用してみることにした.今回の作業概要は以下.
  1. Linuxカーネル2.6.5をLVMとXFS可能な状態で構築
  2. HDD丸1個を使用してfdiskする
  3. 論理ボリュームを作成
  4. 論理ボリュームをXFSで初期化
  5. 論理ボリュームの拡張
.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
※ そもそも用途をあまり考えていないのでなんとも言えないような気もするが...
matsu(C)
Since 2002
Mail to matsu