LVMのLVのresize

結構水青が再稼動してから時間がたっているんだけども、バックアップ環境を整備していないっていう。
まあミラーリングはしてるからあれだけど。
で、今回、RAID1でLVMな構成にするのにはまりまくって涙目になったけども、LVMを使いたい最大の目的がこのスナップショット機能なわけで、つかわないわけにはいかない。

ということで、試しに適当にスナップショットを取ってみる。

# lvcreate –size 1G –snapshot –name snap /dev/MS-09/win
Insufficient free extents (0) in volume group MS-09: 256 required

あ、はい。
スナップショットの対象の論理ボリュームと同じ物理ボリュームにスナップショット作ろうとするのね。
で、これ、スナップショットの作成先対象物理ボリュームを変えるやり方は?
man lvcreateをみてもわからない。

しばらく考える。

snapshotはlvcreate -s(Logical Volume Create Snapshot)でとる。
つまりSSはLVである。
LVはPV配下にある。
つまりSSは同じPVでなければとれない?

バックアップ用のディスクを別PVにしなきゃよかった。orz

とおもったが、もう一度LVMのおさらいしてみた。

 +------[ ボリューム・グループ ]---------+
 |  +--[PV]--------+  +--[PV]---------+  |
 |  | PE | PE | PE |  | PE | PE | PE  |  |
 |  +--+---+---+---+  +-+----+----+---+  |
 |     |   |   | +-----/     |    |      |
 |     |   |   | |           |    |      |
 |   +-+---+---+-+      +----+----+--+   |
 |   | 論理      |      | 論理       |   |
 |   | ボリューム|      | ボリューム |   |
 |   |           |      |            |   |
 |   |  /home    |      |    /var    |   |
 |   +-----------+      +------------+   |
 +---------------------------------------+

いいAA発見したのでこぴぺ。
なんだ、PVはVG配下だからそれを一緒にすればいいんじゃん。

# vgdisplay

— Volume group —
VG Name               backup
(ry

— Volume group —
VG Name               MS-09
(ry

             わ          ,..-―-、
              |         /:::::::::::::::::l
                 ∩  /::::::::::::::::::::|      ,、
      -―-、        |⌒ヽ/::::::::::::::::::::::|    _/|ノ
   /´Y    (´ヽ  ,、    l: : : i::::::::::::::::::::::::|-―’´: :丿
 ,、 _し’ l     lヽJ/|ノ   \: |∧/l/|ノレ : : : :/
 Y: : `ー`ー-―’´一': : |     /: : : : : : : : : : ::i-‐’′
  \: : : : : : : : : : : : /      /: : : : : : : : : : : |

   Y: : : : : : : : :r’´      /: : : : : : : : : : : :|
   /: : : : : : : : : :|       /: : : : : : : : : : : : |
  /:: : : : : : : : : ::|      / : : : : : : : : : : : : |
  /: : : : : : : : : : : |      /: ::_: : : : : : : : : :|
  `77ー–┬r一’       ̄/ / ̄`ー-┬r-‘
  l’´)   ├|           l’´)     |~|
  し’    (ニ⊃        し’      (ニ⊃


             __

                /〃 ┼‐┼〃__
             /\    ノ                __
                      __  , -――-、  /\ノ
                      ヽ/\l::::::::::::::::::::\ /: : /
         ,..-―-、/)       |: : :|::::::::::::::::::::::/: : /
     /⌒Y    (_ノ  /)       |: : :|:::::::::::::::::::::|: : : /
      ̄l ̄l、     ) /`〉     ヽ:: :|::::::::::::::::::::l: : :/
         l: : :`ー–‐’‐’´: :/        \|∧ハ/l/: ::〈
       \: : : : : : : : : :く         |: : : : : : : : : : `ー-┐  ,.、

         l: : : : : : : : : :`ー―┐ ,、   |: : : : : : : : : : : : : : |二lニノ
         ヽ.: : : : : : : : : : : : : :|ニノ   |: : : : : : : : : : : : : : |
           ヽ: : : : : : : : : : : : :|      ヽ: : : : : : : : : : : /
           \: : : : : : : : :/       \ : : : : : : /
              ̄ ̄ ̄ ̄    ノ|      ̄ ̄ ̄       ノ)
                   ノしノ  し’(           ノ)__ノ (ノ(
                   ’――――-‘′         ’-――一-‘′

さて。
選択肢は二つ。

  1. 同じVGにする
  2. 今使っているLVを縮めて開き領域を作る

通常なら前者で問題ないんだが、MS-09のほうはミラーリングしていて、バックアップはしていない。
すると、同じVGにしたときに、実際に運用されているほうのデータがミラーリングされている保証がなくなる。
なので同じVGにはしたくない。
ということで、既存のディスクをシュリンクする。

パーティションのリサイズの手順は通常とほとんど変わりなく、fdiskの代わりにlvresizeを使うくらいだ。
ext3の場合拡張はオンラインでできるらしいが、縮小はできないらしい。
実際にやろうとしても怒られた。
仕方がないので一旦DomainUを停止してから作業する。
流れとしては

  1. ドメインUの停止
  2. e2fsckでパーティションのチェック
  3. resize2fsでパーティションの縮小
  4. lvresizeでLVの縮小
  5. ドメインUの起動

という感じで普通のファイルシステムとほとんど変わらない。
ドメインUの起動・停止を、ファイルシステムのマウント・アンマウント、lvresizeでのLVの拡大・縮小を、fdiskでのパーティションの拡大・縮小と読み替えてもらえればわかるだろう。
ちなみに拡大の場合はext3の場合はオンラインで可能。
lvresizeでLVを拡大してからresize2fsをサイズ指定なしではじけばいい。
まあ、Xenで運用していたりするとDomainU側に気づかれないとかになりそうだから、やっぱりドメインの再起動くらいはやったほうがいいだろう。

MS-09:~# xm shut debian

MS-09:~# e2fsck -f /dev/mapper/MS–09-debian
e2fsck 1.41.3 (12-Oct-2008)
debian: recovering journal
Clearing orphaned inode 14320092 (uid=0, gid=0, mode=0100644, size=0)
Illegal inode 1247979105 in orphaned inode list.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
debian: 426426/15007744 files (0.4% non-contiguous), 18701017/60014592 blocks

MS-09:~# resize2fs -p /dev/mapper/MS–09-debian 200G
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/mapper/MS–09-debian to 52428800 (4k) blocks.
Begin pass 2 (max = 7435785)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 1832)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 33171)
Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/MS–09-debian is now 52428800 blocks long.

MS-09:~# lvresize -L -23G /dev/mapper/MS–09-debian
WARNING: Reducing active logical volume to 205.94 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce debian? [y/n]: y
Reducing logical volume debian to 205.94 GB
Logical volume debian successfully resized

MS-09:~# resize2fs -p /dev/mapper/MS–09-debian
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/mapper/MS–09-debian to 53985280 (4k) blocks.
Begin pass 1 (max = 48)
Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/MS–09-debian is now 53985280 blocks long.

MS-09:~# xm create debian
Using config file “/etc/xen/debian”.
Started domain debian

という感じでひとまず縮小完了。
スナップショットに関して書こうとしたら罠にはまってリサイズの話になってしまった。
次こそスナップショットへ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>