情報技術の四方山話

ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

Linuxのディスクの領域の無停止拡張をLVMとXFSで実現

2018-01-15 11:32:55 | Linux/Ubuntu
匠技術研究所

Linuxのディスクの領域の無停止拡張をLVMとXFSで実現


いつもアクセスありがとうございます。匠技術研究所の谷山 亮治です。
LinuxでLVMとXFSを使って、ディスクの領域の無停止拡張を行っています。
お客様のバックアップを預かっているので、日々容量は増えていく傾向です。時々格納領域を広げます。

■LVM+XFSでは無停止拡張が可能
LVM+XFSの組み合わせでは、後述の通り「無停止」で容量を拡張することができます。
これは、大きな特徴で、システムの運用をほぼ無停止で行うことができます。
弊社で近年構築している、Linuxクラウドサーバーやファイルサーバーで採用している形です。

■領域の器の大きさと、盛り付け具合を確認
実際のサーバーの中は複数の領域で構成しています。その中でバックアップを格納する領域はだんだん容量が増えてきます。
ここの事例では90%を超える容量になっている領域を+50G拡張します。
$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/xfsvg0-xxxx0 400G 359G 41G 90% /mnt/xxxx
/dev/mapper/xfsvg0-yyyy0 250G 197G 54G 79% /mnt/yyyy
/dev/mapper/xfsvg0-zzzz0 400G 372G 29G 93% /mnt/zzzz

■LVM領域に余裕があることを確認
VGのサイズが1.8Tあり、約1T割り当て済みで、残りが790Gほどあることが判ります。
今回は二つの領域にそれぞれ50Gを追加するので、残りは約690Gになります。

$ sudo vgdisplay
--- Volume group ---
VG Name xfsvg0
.......
VG Size 1.82 TiB
PE Size 4.00 MiB
Total PE 476899
Alloc PE / Size 273920 / 1.04 TiB
Free PE / Size 202979 / 792.89 GiB
.......

■領域を拡張

1.指定領域を拡張する(lvextend)
2.ファイルシステムを拡張する(xfs_grow)

拡張容量を指定し領域を拡張
実行結果にも、ディスク領域が450Gになったことが書かれています。あっという間に終わります。
$ sudo lvextend -L +50G /dev/xfsvg0/zzzz0
Size of logical volume xfsvg0/zzzz0 changed from 400.00 GiB (102400
extents) to 450.00 GiB (115200 extents).
Logical volume zzzz0 successfully resized.
$

増加領域に合わせてファイルシステム拡張
ディスク領域が広がっただけで、広がった分はフォーマットされていません。既にある領域と連続して一体となるようフォーマットします。
そのため、一般的なmkfs系のフォーマットコマンドは使いません。XFSではxfs_growfsコマンドです。これも直ぐに終わります。
$ sudo xfs_growfs /dev/mapper/xfsvg0-zzzz0
meta-data=/dev/mapper/xfsvg0-zzzz0 isize=512 agcount=4,
agsize=26214400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0
data = bsize=4096 blocks=104857600,
imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=51200, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 104857600 to 117964800

容量が増えたことを確認
領域も、ファイルシステムも拡張したので、容量の状況を確認します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
.........
/dev/mapper/xfsvg0-xxxx0 400G 359G 41G 90% /mnt/xxxx
/dev/mapper/xfsvg0-yyyy0 250G 197G 54G 79% /mnt/yyyy
/dev/mapper/xfsvg0-zzzz0 450G 372G 79G 83% /mnt/zzzz
.........
$

/mnt/zzzzの容量が450Gになりました。成功です!
なんと、ここまでの作業は無停止で実行しました。
一般にディスク領域の拡張やファイルシステムの拡張時はumountでマウントを解除し、OSが使っていない状態で実行します。
LVM+XFSでは無停止拡張が可能なのです。Ubuntuではデフォルトのファイルシステムがext4です。
LVM+ext4で、同じ拡張を行う場合はファイルシステムをumountして、すなわち一時的にディスク領域の利用を停止する必要があります。

匠技術研究所 谷山亮治
『OS』 ジャンルのランキング
コメント   この記事についてブログを書く
« お正月に古いパソコンをUbunt... | トップ | Linux,macOS,Windowsで動作す... »
最近の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Linux/Ubuntu」カテゴリの最新記事