ホーム>PCサポート>メンテナンス>LVM拡張によるサーバ移転


>LVM拡張によるサーバ移転


サーバのお引越し


Linux CentOS 5.5 sambaサーバ システムディスク拡張 手順

移行前HD(ハードディスク)は10GB(Fireball)です。その中身を移行後HD(といっても、かなり古ぞ!)20GB(Maxtor)に移し替えます。
たぶん、これからもよく実行する手順なので忘れないうちにメモっておきます。
Linuxのファイルシステムはext3が一般的です。これは、Gpartedで簡単に拡張・縮小ができます。
しかし、CentOSのデフォルトのファイルシステムはLVM(logical volume manager:論理ボリュームマネジャ)です。これも売りは、拡張・縮小が簡単だということです。しかも、online(起動した状態)で実行できるのです。スゴイ!
※LVMの簡単なイメージは、ここ(LVMの利用)を参照してください。
ほんとかなぁ?と思いながら挑戦です。

引越しのイメージは…

1.バックアップ
2.リストア
3.LVM拡張

ざっとこんなイメージでハードディスクの中身を引越しさせます。
ダイレクトに移行後のHDにddでコピーしてもよかったのかもしれませんが、念のためにバックアップを取ることから始めました。
次回は、ダイレクトにコピーしてみようと思います。


バックアップ元は/dev/hda (10GB fireball)、バックアップ先は/dev/sda1 (外部USB HD)。
(1)KNOPPIX5.3.1のCDで起動。

(2)ターミナル起動。ddで、イメージ化。
@rootになる。

$ su -

Aバックアップ元をイメージ化。

# dd if=/dev/hda of=/dev/sda1/c5.img bs=512 conv=noerror,sync

 ※とにかく時間がかかった。放置して朝起きると無事に完了していた。

(3)MBRとパーテーションテーブルのバックアップ作成。
@MBRバックアップ

# dd if=/dev/hda of=/dev/sda1/c5mbr.img count=63 bs=512

Aパーテーションテーブルのバックアップ

# sfdisk -d /dev/hda > /dev/sda1/part.bk




リストア元/dev/sda1 リストア先/dev/hda (20GB MAXTOR)
ハードディスクを20GB(MAXTOR)に交換しておく。
(1)KNOPPIX5.3.1のCDで起動。

(2)ターミナル起動。ddで、リストア。
@バックアップイメージを保存しているUSB HDをマウント。(ddを使うので、マウントは不要かも?)

$ su -   <----rootになる

# mount -t ntfs /dev/sda1 /media/sda1


A本体リストア

# dd if=/media/sda1/c5.img of=/dev/hda

ちょっと時間がかかります。気長に待つ。

BMBRリストア

# dd if=/media/sda1/c5mbr.img of=/dev/hda


Cパーテーションテーブルのリストア

# sfdisk --force /dev/hda < /media/sda1/part.bk


(3)pertation editorもしくはGpartedを起動させ、/dev/hdaの情報を見る。
チェックするのは、@フラグがbootになっているか。Aパーテーションがきちんと作成されているか。
(LVMはサポートされていないようで、!マークが付いているが気にしなくてよい。)
うまくいっていないようであれば、再度(2)のBとCを実行して、再確認する。
それでも、失敗する場合は、ハードディスク自体にエラーがないか疑う。または、バックアップに失敗している可能性も疑う。

(4)再起動(reboot)。
一応、うまくいっているようなら再起動する。
普通に起動してくれば、成功!
もし、起動途中(CentOSが立ち上がる前)で背景が真っ黒で白いカーソルが点滅しているだけなら、
起動シーケンスが正常に進んでいないので、MBRを再度リストアする。(今回発生。ちょっとあせりました。)

やっとこれで普通にサーバが使えます。ただし、ハードディスクの空き容量は増えていません。
当たり前です。ただシステムをリストアしただけなので。

#df -h

全容量は約10GBのままです。これからLVMの拡張に作業が移ります。


今回は、20GBいっぱいLVMを拡張します。
拡張手順の流れ
(1)fdiskでパーテーション(8e)作成
(2)pvcreateで物理ボリューム作成
(3)vgextendで既存のボリュームグループに追加
(4)swap拡張(必要なら)
(5)lvextendでLV拡張
(6)resize2fsでファイルシステムの拡張


余っている領域を全部Linux LVM(8e)として確保する。

#fdisk /dev/hda

 :m  <--- helpを表示

 :n  <--- パーテーション作成

   p  <--- 基本領域4選択された

   xxxxxx  <--- Enterを押すと開始シリンダ数のdefalut値が入力された

   yyyyyy  <--- Enterを押すと終了シリンダ数のdefalut値が入力された

 :t  <--- 領域のシステムIDを変更

   8e  <--- Linux LVM

 :p  <--- 領域テーブルを表示
デバイス  Boot Start  End  Blocks  Id  System
/dev/hda1  *   1   13   104391  83  Linux
/dev/hda2     14   525  4112640  8e  Linux LVM
/dev/hda3     526  1247  5799465  8e  Linux LVM
/dev/hda4    1248  2482  9920137+  8e  Linux LVM <----/dev/hda4が追加
 :w <----書込み・終了
# reboot <----システム再起動

念のために、再起動後、fdiskで、パーテーションが確保されているか確認しておく。

#pvcreate /dev/hda4

(# pvscan で状態を確認してもよい。)

#vgextend VolGroup00 /dev/hda4
#vgdisplay -v VolGroup00

(#vgscan  一応やっておく、状態更新のため?)

※今回は、1GBに拡張した。

#swapoff /dev/VolGroup00/LogVol01
#lvextend -L +512M /dev/VolGroup00/LogVol01
#mkswap /dev/VolGroup00/LogVol01
#swapon /dev/VolGroup00/LogVol01



@拡張できる限度を調べるため、はるかに大きな容量を指定する。例えば、300GBとか。(実際には20GBだが)

#lvextend  -L  +300G  /dev/VolGroup00/LogVol00
------------------------省略----------------------------------------------
Insufficient free -----------省略----but only 196 available <----あと196だけ利用可


A現在の最大LE値をチェック。

#lvdisplay

LogVol00のCurrent LEを見る。今回は、960であった。
つまり、最大値は、960+196=1156。

B最大LE値を設定。

#lvextend  -l  1156 /dev/VolGroup00/LogVol00

      ※小文字のエル

#lvdisplay /dev/VolGroup00/LogVol00

LVが拡張されていることを確認。
しかし、#df -h では、実際の容量が増えていないことがわかる。

#resize2fs /dev/VolGroup00/LogVol00 <----時間がかかる。10分くらい。
[root@shigismb ~]# df -h
Filesystem  サイズ  使用  残り  使用%  マウント位置
/dev/mapper/VolGroup00-LogVol00
         18G    3.7G  13G  23%    / <----18Gとなって、容量が増えている!
/dev/hda1   99M    24M  70M   26%   /boot
tmpfs     189M     0  189M   0%   /dev/shm
/dev/hde5   49G   4.7G  41G   11%   /home/kanri-a
-------------省略--------------------------------------------


終了。

このページの一番上へ▲


このページの一番上へ▲