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

作成日: 2013/04/07
更新日: 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
   
# vgextend VolGroup00 /dev/sdb1
  Volume group "VolGroup00" successfully extended
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               47.89 GiB
  PE Size               4.00 MiB
  Total PE              12260
  Alloc PE / Size       5632 / 22.00 GiB
  Free  PE / Size       6628 / 25.89 GiB ←空きが増えたことを確認
  VG UUID               42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
   

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

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

# vgdisplay VolGroup00
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               47.89 GiB
  PE Size               4.00 MiB
  Total PE              12260
  Alloc PE / Size       5632 / 22.00 GiB
  Free  PE / Size       6628 / 25.89 GiB ←空きエクステント数は6628
  VG UUID               42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
   
# lvcreate -l 6628 -n LogVol03 VolGroup00
  Logical volume "LogVol03" created
# vgdisplay -v VolGroup00
    Using volume group(s) on command line
    Finding volume group "VolGroup00"
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               47.89 GiB
  PE Size               4.00 MiB
  Total PE              12260
  Alloc PE / Size       12260 / 47.89 GiB
  Free  PE / Size       0 / 0    ←空きエクステント数は0
  VG UUID               42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
   
(中略)
   
  --- Logical volume ---
  LV Path                /dev/VolGroup00/LogVol03 ←論理ボリュームが作成された
  LV Name                LogVol03
  VG Name                VolGroup00
  LV UUID                yh08zS-yhkO-WJte-Lp5a-If5P-tYvA-IYOdZ6
  LV Write Access        read/write
  LV Creation host, time linuxtest, 2013-04-01 05:04:34 +0900
  LV Status              available
  # open                 0
  LV Size                25.89 GiB
  Current LE             6628
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Physical volumes ---
  PV Name               /dev/sda2     
  PV UUID               th2zSN-lY9c-RIvi-pxbb-qxhd-02iq-AWe3v4
  PV Status             allocatable
  Total PE / Free PE    8166 / 0
   
  PV Name               /dev/sdb1     
  PV UUID               bOlN0r-CchY-aHia-8Kn6-Uxdx-cYeD-CNZTD2
  PV Status             allocatable
  Total PE / Free PE    4094 / 0
   

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

# lvcreate -L 25.89g -n LogVol03 VolGroup00
  Logical volume "LogVol03" created

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

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

# mkfs.ext4 /dev/VolGroup00/LogVol03
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
1697280 inodes, 6787072 blocks
339353 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
208 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Writing inode tables:   0/208  1/208  2/208  3/208  4/208  5/208  6/208  7/208  8/208  9/208 10/208 11/208 12/208 13/208 14/208 15/208 16/208 17/208 18/208 19/208 20/208 21/208 22/208 23/208 24/208 25/208 26/208 27/208 28/208 29/208 30/208 31/208 32/208 33/208 34/208 35/208 36/208 37/208 38/208 39/208 40/208 41/208 42/208 43/208 44/208 45/208 46/208 47/208 48/208 49/208 50/208 51/208 52/208 53/208 54/208 55/208 56/208 57/208 58/208 59/208 60/208 61/208 62/208 63/208 64/208 65/208 66/208 67/208 68/208 69/208 70/208 71/208 72/208 73/208 74/208 75/208 76/208 77/208 78/208 79/208 80/208 81/208 82/208 83/208 84/208 85/208 86/208 87/208 88/208 89/208 90/208 91/208 92/208 93/208 94/208 95/208 96/208 97/208 98/208 99/208100/208101/208102/208103/208104/208105/208106/208107/208108/208109/208110/208111/208112/208113/208114/208115/208116/208117/208118/208119/208120/208121/208122/208123/208124/208125/208126/208127/208128/208129/208130/208131/208132/208133/208134/208135/208136/208137/208138/208139/208140/208141/208142/208143/208144/208145/208146/208147/208148/208149/208150/208151/208152/208153/208154/208155/208156/208157/208158/208159/208160/208161/208162/208163/208164/208165/208166/208167/208168/208169/208170/208171/208172/208173/208174/208175/208176/208177/208178/208179/208180/208181/208182/208183/208184/208185/208186/208187/208188/208189/208190/208191/208192/208193/208194/208195/208196/208197/208198/208199/208200/208201/208202/208203/208204/208205/208206/208207/208done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

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

(6) マウント

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

# mkdir /data
# mount -t ext4 /dev/VolGroup00/LogVol03 /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/mapper/VolGroup00-LogVol02 on /var type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup00-LogVol03 on /data type ext4 (rw) ←マウントされたことを確認
# ls -l /data
total 16
drwx------. 2 root root 16384 Apr  1 05:06 lost+found ←マウントされている時はこれが表示される

(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/VolGroup00-LogVol03 /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 で動作確認済みです。 ■■■