OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2013/03/31
更新日: 2013/09/07

OSSでLinuxサーバ構築

LVMで新規ボリュームグループに論理ボリュームを作成

トップページOSSでLinuxサーバ構築 > LVMで新規ボリュームグループに論理ボリュームを作成
このエントリーをはてなブックマークに追加

概要

解説

 2台目のハードディスクを増設し、LVMで新しいボリュームを作成します。 既存のボリュームには影響を出さずに、拡張する方法です。

拡張範囲

 ディスクの拡張範囲は以下の通りです。

サーバ構成

OSバージョン

Red Hat Enterprise Linux 6.4 64bit

パッケージ一覧

必要な追加パッケージはありません。

拡張手順

(1) パーティションの作成

 増設したハードディスクが /dev/sdb として認識されるので、 全領域を1つのプライマリパーティション /dev/sdb1 として作成します。 パーティションはLVM用のシステムタイプに変更します。

# fdisk -l

Disk /dev/sda: 34.4 GB, 34359738368 bytes
255 heads, 63 sectors/track, 4177 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00083f40

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              13        4178    33451008   8e  Linux LVM

Disk /dev/sdb: 17.2 GB, 17179869184 bytes ←このデバイスが追加された
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
(以下省略)
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x4d4de011.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4d4de011

   Device Boot      Start         End      Blocks   Id  System
                               ←パーティションは表示されない
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2088, default 1):  ←何も入力せずにリターン
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2088, default 2088):  ←何も入力せずにリターン
Using default value 2088

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4d4de011

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2088    16771828+  8e  Linux LVM ←作成したパーティションが表示される

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

(2) 物理ボリュームの初期化

 作成したパーティション /dev/sdb1 をLVMの物理ボリュームとして初期化します。

# pvscan
  PV /dev/sda2   VG VolGroup00   lvm2 [31.90 GiB / 9.90 GiB free]
  Total: 1 [31.90 GiB] / in use: 1 [31.90 GiB] / in no VG: 0 [0   ]
# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
# pvscan
  PV /dev/sda2   VG VolGroup00      lvm2 [31.90 GiB / 9.90 GiB free]
  PV /dev/sdb1                      lvm2 [15.99 GiB] ←追加されたことを確認
  Total: 2 [47.89 GiB] / in use: 1 [31.90 GiB] / in no VG: 1 [15.99 GiB]

(3) ボリュームグループの作成

 LVMの物理ボリュームを元に新規のボリュームグループを作成します。

# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               31.90 GiB
  PE Size               4.00 MiB
  Total PE              8166
  Alloc PE / Size       5632 / 22.00 GiB
  Free  PE / Size       2534 / 9.90 GiB
  VG UUID               42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
   
# vgcreate VolGroup01 /dev/sdb1
  Volume group "VolGroup01" successfully created
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup01 ←追加されたことを確認
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.99 GiB
  PE Size               4.00 MiB
  Total PE              4094
  Alloc PE / Size       0 / 0   
  Free  PE / Size       4094 / 15.99 GiB
  VG UUID               g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk
   
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               31.90 GiB
  PE Size               4.00 MiB
  Total PE              8166
  Alloc PE / Size       5632 / 22.00 GiB
  Free  PE / Size       2534 / 9.90 GiB
  VG UUID               42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
   

(4) 論理ボリュームの作成

 作成したボリュームグループ VolGroup01 から論理ボリューム LogVol00 を作成します。 ボリュームグループの空きサイズを全て論理ボリューム LogVol00 に割り当てます。

# vgdisplay -v VolGroup01
    Using volume group(s) on command line
    Finding volume group "VolGroup01"
  --- Volume group ---
  VG Name               VolGroup01
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.99 GiB ←ボリュームグループのサイズは15.99GB
  PE Size               4.00 MiB
  Total PE              4094
  Alloc PE / Size       0 / 0    ←割り当て済みサイズは0GB
  Free  PE / Size       4094 / 15.99 GiB ←空きサイズは15.99GB
  VG UUID               g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk
   
  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               bOlN0r-CchY-aHia-8Kn6-Uxdx-cYeD-CNZTD2
  PV Status             allocatable
  Total PE / Free PE    4094 / 4094
   
# lvcreate -L 15.99G -n LogVol00 VolGroup01
  Rounding up size to full physical extent 15.99 GiB
  Logical volume "LogVol00" created
# vgdisplay -v VolGroup01
    Using volume group(s) on command line
    Finding volume group "VolGroup01"
  --- Volume group ---
  VG Name               VolGroup01
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.99 GiB
  PE Size               4.00 MiB
  Total PE              4094
  Alloc PE / Size       4094 / 15.99 GiB ←割り当て済みサイズが15.99GBに増加
  Free  PE / Size       0 / 0    ←空きサイズが0GBに減少
  VG UUID               g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk
   
  --- Logical volume ---
  LV Path                /dev/VolGroup01/LogVol00 ←論理ボリュームが作成された
  LV Name                LogVol00
  VG Name                VolGroup01
  LV UUID                nrJeFX-HRxz-tjOd-IVq9-0exM-9Pen-GnSISS
  LV Write Access        read/write
  LV Creation host, time linuxtest, 2013-03-26 01:28:10 +0900
  LV Status              available
  # open                 0
  LV Size                15.99 GiB
  Current LE             4094
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
   
  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               bOlN0r-CchY-aHia-8Kn6-Uxdx-cYeD-CNZTD2
  PV Status             allocatable
  Total PE / Free PE    4094 / 0
   

 上では作成する論理ボリュームのサイズを指定して作成しましたが、 以下のようにエクステント数を指定して作成して作成することもできます。 どちらの場合も作成される論理ボリュームは同じです。

# lvcreate -l 4094 -n LogVol00 VolGroup01
  Logical volume "LogVol00" created

(5) ファイルシステムの作成

 作成した論理ボリュームを ext4 ファイルシステムでフォーマットします。

# mkfs.ext4 /dev/VolGroup01/LogVol00
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1048576 inodes, 4192256 blocks
209612 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
128 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Writing inode tables:   0/128  1/128  2/128  3/128  4/128  5/128  6/128  7/128  8/128  9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

(6) マウント

 フォーマットした論理ボリュームを /data ディレクトリにマウントします。

# mkdir /data
# mount -t ext4 /dev/VolGroup01/LogVol00 /data
# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup00-LogVol02 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/VolGroup01-LogVol00 on /data type ext4 (rw) ←マウントされたことを確認

(7) 自動マウント設定

 mount コマンドでマウントしただけだと、Linuxを再起動するとアンマウントされた状態に戻ってしまいます。 再起動後も自動的にマウントされるように fstab ファイルに定義を記述します。

# cd /etc/
# vi fstab
ファイル名:/etc/fstab
/dev/mapper/VolGroup00-LogVol00 /                       ext4    defaults        1 1
UUID=17c9ae07-1e4b-44ab-b026-6df017b17012 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup00-LogVol02 /var                    ext4    defaults        1 2
/dev/mapper/VolGroup01-LogVol00 /data                   ext4    defaults        1 2 ←この行を追加
/dev/mapper/VolGroup00-LogVol01 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■