2010. 3. 19. 16:34ㆍ99. 정리전 - IT/29. IT 잡동지식
넉넉히 최소 25~30기가 정도는 줘야 함을 알았다.
원문 : http://narucissus.blogspot.com/2009/08/vmwarelinuxcentoslvmhdd.html
CentOS5.3のHDD容量がまた足りないケースが出てきたので、 今度はLVMを使ってディスク容量を増やしてみる。 CentOS5では最初からLVMが使用されているので、 いちいちマウントする場所を気にしたりせずにディスク容量が増やせて非常に楽。 CentOS5のインストール時には「高度なストレージ設定」をしなかったと仮定。 今回のVMwareはServerではなくVMware Workstation 5.5。
VMwareにHDDを追加
まずゲストOSをシャットダウン。
CentOSなのでshutdown -h now
を実行した。
終了後以下の手順でHDDを追加。
- お気に入りからHDDを追加したい仮想マシンを右クリックして設定を選択
- ハードウェアタブの追加ボタンをクリック
- ハードウェア追加ウィザードへようこそ: 「次へ」ボタンをクリック
- ハードウェアの種類: 「ハードディスク」を選択して「次へ」ボタンをクリック
- ディスクの選択: 「仮想ディスクの新規作成」を選択して「次へ」ボタンをクリック
- ディスクタイプの選択: この仮想マシンで使用しているHDDと同じタイプを選択して「次へ」ボタンをクリック。SCSI (推奨)
- ディスク容量の指定: ディスクサイズ(GB)を好きなサイズに設定する。 今回は「ディスクを2GBに分割」を選択するがどちらでもOK。「次へ」ボタンをクリック
- ディスクファイルの指定: 好きなファイル名を指定。「完了」ボタンをクリックしてウィザードが終了し、HDDが追加される
- Virtual Machine Settings画面のHardwareタブにHard Disk 2 (SCSI 0:1)が追加されているはず
Linuxのパーティション設定
仮想マシンを起動すると、以下のようにデバイスファイルsdbが増えていることが分かる。
# cd /dev
# ls -l sd*
brw-r----- 1 root disk 8, 0 8月 27 18:39 sda
brw-r----- 1 root disk 8, 1 8月 27 18:40 sda1
brw-r----- 1 root disk 8, 2 8月 27 18:39 sda2
brw-r----- 1 root disk 8, 16 8月 27 18:39 sdb
SCSI 0:0はsdaに、SCSI 0:1はsdbになっている。 fdisk -lの実行結果は以下の通り。
# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
ディスク /dev/sdb は正常な領域テーブルを含んでいません
/dev/sda2がId:8eでLinux LVMになっていることが分かる。 sdbはまだ初期化されていないのでなにも表示されない。
ちなみに現在のディスク容量は以下の通り。 インストール時に「高度なストレージ設定」を行っていないが、 ファイルシステムがVolGroup00-LogVol00になっている。
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
19G 2.9G 15G 17% /
/dev/sda1 99M 18M 76M 19% /boot
tmpfs 125M 0 125M 0% /dev/shm
以下のようにしてパーティション設定を行う。
- fdisk /dev/sdbを実行
- nコマンドで新たに領域を作成
- 拡張または基本領域を聞かれるのでpをタイプ
- 領域番号を聞かれるので1をタイプ
- 最初シリンダ(First cylinder)を聞かれるのでそのままEnter
- 終点シリンダまたは+サイズ...を聞かれるのでそのままEnter
- tコマンドで領域のシステムIDを変更(ここ前回と違うので注意!)
- 16進数でLinux LVMのシステムID「8e」をタイプ(ここ前回と違うので注意!)
- wコマンドで書き込み、fdiskを終了
- (fdisk /dev/sdbを実行してpコマンドで領域を確認)
# fdisk /dev/sdb
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
このディスクのシリンダ数は 1044 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります
コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)
コマンド (m でヘルプ): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-1044, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1044, default 1044):
Using default value 1044
コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): L
0 空 1e Hidden W95 FAT1 80 古い Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / 古い c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 隠し C: c7 Syrinx
5 拡張領域 41 PPC PReP Boot 85 Linux 拡張領 da 非 FS デー
6 FAT16 42 SFS 86 NTFS ボリュ db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS ボリュ de Dell ユーテ
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX ブート 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 ブート 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad ee EFI GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC
11 隠し FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq 診断 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 隠し FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS セカン
16 隠し FAT16 63 GNU HURD また ab Darwin boot fb VMware VMFS
17 隠し HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI スワッ fd Linux raid 自
1b Hidden W95 FAT3 70 DiskSecure Mult bb 隠し Boot Wiz fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました
コマンド (m でヘルプ): w
領域テーブルは交換されました!
ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
# fdisk /dev/sdb
このディスクのシリンダ数は 1044 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
コマンド (m でヘルプ): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 1 1044 8385898+ 8e Linux LVM
コマンド (m でヘルプ): q
PVの作成
fdiskでパーティションを設定したら通常はext3でフォーマットするところだが、 LVMの場合はPV(Physical Volume、物理ボリューム)を作成するためpvcreateコマンドを実行する。
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
あっけなく終了。 pvdisplayで確認してみる。
# pvdisplay
/dev/hdc: open failed: メディアが見つかりません
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 19.89 GB / not usable 19.49 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 636
Free PE 0
Allocated PE 636
PV UUID WtrOWh-XLaf-IPdj-cBPh-Tytj-IWJW-pPaJGP
"/dev/sdb1" is a new physical volume of "8.00 GB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 8.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID MJOW2Y-dMXr-SvOy-zUT3-w53h-OWgh-eUZf8U
/dev/sdb1の記述が追加されていることが確認できる。
PVをVGに登録
PVが作成できたらVG(Volume Group、ボリュームグループ)にPVを登録する。 VG自体はすでに作成されているのでvgcreateの必要はない。 現在の状況をvgdisplayで確認してみる。
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.88 GB
PE Size 32.00 MB
Total PE 636
Alloc PE / Size 636 / 19.88 GB
Free PE / Size 0 / 0
VG UUID 3VAI4V-VILP-LfJF-YL3l-qEde-Dwyd-XlFFPV
VolGroup00が約20GBであることが分かる。Free PE / Sizeは0。 これにvgextendコマンドでsdb1を追加する。
# vgextend VolGroup00 /dev/sdb1
Volume group "VolGroup00" successfully extended
もう一度vgdisplayしてみるとこう変わっている。
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 27.84 GB
PE Size 32.00 MB
Total PE 891
Alloc PE / Size 636 / 19.88 GB
Free PE / Size 255 / 7.97 GB
VG UUID 3VAI4V-VILP-LfJF-YL3l-qEde-Dwyd-XlFFPV
VG SizeとFree PE / Sizeがともに約8GB増えていることが確認できる。 が、この状態でdf -hを実行するとまだ使える領域は増えていない。 LVの拡張とファイルシステムの拡張が必要。 道のりは長い...
LVの拡張
LV(Logical Volume、論理ボリューム)の拡張を行う。 lvextendコマンドを使用するが、指定可能な最大サイズがいくつか分からないので以下のように100%FREEを指定する。
# lvextend -l +100%FREE /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 26.84 GB
Logical volume LogVol00 successfully resized
lvdisplayで確認するとLV Sizeが26.84 GBまで増えていることがわかる。
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID lfmle5-GyOh-aYPD-IrFo-FL27-ogtz-Iw4xWk
LV Write Access read/write
LV Status available
# open 1
LV Size 26.84 GB
Current LE 859
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
ファイルシステムの拡張
やっとラスト。resize2fsコマンドでext3を拡張する。 オンラインリサイズが可能なのでOSを止める必要がない。
# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 7036928 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 7036928 blocks long.
1分程度で終了。df -hを実行すると、残り15GBだった/が22GBまで増えたことが確認できる。
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
27G 2.9G 22G 12% /
/dev/sda1 99M 18M 76M 19% /boot
tmpfs 125M 0 125M 0% /dev/shm
以前のHDDの追加方法だとマウントする場所を決める必要があったが、 このやり方なら特定のディレクトリ以下だけ増やすわけではないのでより使いやすい。