ログイン
編集不可のページディスカッション情報添付ファイル
"ytoku/Slides/LVM再考"の差分

MMA
4と12のリビジョン間の差分 (その間の編集: 8回)
2011-07-19 03:52:15時点のリビジョン4
サイズ: 2559
編集者: ytoku
コメント:
2011-07-27 01:48:19時点のリビジョン12
サイズ: 4722
編集者: ytoku
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
#acl ytoku:admin,read,write,delete,revert All:
行 4: 行 3:

<<Action(SlideShow,スライドショーの開始)>>
行 10: 行 11:
ZFS(on Linux)LVM2を比較する ZFS(on Linux)があればLVMは不要か?
行 16: 行 17:
  ~-{{{
Another way to look at is this
 (courtesy of Erik Bågfors on the linux-lvm mailing list):

    hda1 hdc1 (PV:s on partitions or whole disks)
       \ /
        \ /
       diskvg (VG)
       / | \
      / | \
  usrlv rootlv varlv (LV:s)
    | | |
 ext2 reiserfs xfs (filesystems)

-- LVM HOWTOより引用
}}}-~
行 53: 行 70:
 * zpoolは複数のスクをaddすると問答無用でストライピングするらしい。  * zpoolは複数のパーテションをaddすると問答無用でストライピングするらしい。
行 62: 行 79:
= ZFSの他の問題点 =
行 65: 行 81:
 * 要するにZFSは基本的に台数を減らせない設計
行 66: 行 83:
要するにZFSは基本的に台数を減らせない設計 = LVMの基本操作 =
基本操作
 * 物理ボリュームをLVM用に初期化する{{{
# pvcreate /dev/sd[abc]1
}}}
 * ボリュームグループを作成{{{
# vgcreate myvg /dev/sda[abc]1
}}}
 * 論理ボリューム作成{{{
# lvcreate -L 50GB -n test myvg
}}}
  * `/dev/myvg/test`からアクセスできる。後はmkfsなりmountなり普通に操作する

= 使用する物理エクステントを指定する =
 * 論理ボリュームを作成するときに、どの物理ボリューム・エクステントを割り付けるかは指定が可能{{{
# lvcreate -L12MB -ntest vgtest /dev/loop1:10-
  Logical volume "test" created
# pvdisplay -m /dev/loop1
(略)
  --- Physical Segments ---
  Physical extent 0 to 9:
    FREE
  Physical extent 10 to 12:
    Logical volume /dev/vgtest/test
    Logical extents 0 to 2
  Physical extent 13 to 94:
    FREE
}}}

= オンラインでエクステントを移動する =
 * 使用しているボリュームのエクステントを移動することも可能{{{
# pvmove /dev/loop1:11 /dev/loop0:0
# pvdisplay -m /dev/loop1
  --- Physical Segments ---
  Physical extent 0 to 9:
    FREE
  Physical extent 10 to 10:
    Logical volume /dev/vgtest/test
    Logical extents 0 to 0
  Physical extent 11 to 11:
    FREE
  Physical extent 12 to 12:
    Logical volume /dev/vgtest/test
    Logical extents 2 to 2
  Physical extent 13 to 94:
    FREE
}}}
 * これを用いて複数の物理ボリュームにまたがっていた論理ボリュームを一つのボリュームにまとめたり、逆に小さい複数の物理ボリュームに分けることが可能

= まとめ =
 * ZFSにだって……できないことくらい…ある…
 * かゆいところに手が届くLVM

スライドショーの開始

LVM再考

LVM再考

ZFS(on Linux)があればLVMは不要か?

LVMとは

  • 複数のディスクにまたがるファイルシステムを作ったり出来るようにするもの
  • 構造としては、物理ボリューム(PV)を物理エクステント(PE)という単位に分割して、物理エクステントの組み合わせで論理ボリューム(LV)を構成するようになっている。
    • Another way to look at is this
       (courtesy of Erik Bågfors on the linux-lvm mailing list):
      
          hda1   hdc1      (PV:s on partitions or whole disks)
             \   /
              \ /
             diskvg        (VG)
             /  |  \
            /   |   \
        usrlv rootlv varlv (LV:s)
          |      |     |
       ext2  reiserfs  xfs (filesystems)
      
      -- LVM HOWTOより引用

  • 物理ボリュームの追加・削除や論理ボリュームのサイズ変更は後から可能
  • ついでにストライピングやミラーリングも出来たりする

ZFS?

ZFSでもファイルシステムのサイズは可変だし、プールにパーティションを追加できるじゃない。

ZFSがあればLVMは要らない…………




そんな風に考えていた時期が私にもありました

あるシナリオ(1)

  • 今、300GBのHDD(sda)と500GBのHDD(sdb)と2TBのHDD(sdc)がある。
  • 300GBと2TBの間、500GBと2TBの間でミラーリングして連結すれば、ミラーリングされた800GBの領域が出来るはず。

expected structure

  • ZFSを使ってミラーリングされた800GBの領域を作りましょう。

あるシナリオ(2)

sdaとsdbは一つのパーティションにして、sdcには300GBと500GBのパーティションを作成すればいいよね。

# zpool create ztank mirror /dev/sda1 /dev/sdc1 mirror /dev/sdb1 /dev/sdc2

expected structure

本当にそれで良いのか?

あるシナリオ(3)

  • zpoolは複数のパーティションをaddすると問答無用でストライピングするらしい。
  • つまりsdc1とsdc2でストライピングすることに……

actual structure

  • シーケンシャルアクセスもランダムアクセスになってるぞこれ
  • さらに、ZFSは一旦追加したパーティションを縮小・削除できない(交換は出来るが)。
    • なお、attachと間違えてaddするとpoolごと作り直し。
  • 要するにZFSは基本的に台数を減らせない設計

LVMの基本操作

基本操作

  • 物理ボリュームをLVM用に初期化する

    # pvcreate /dev/sd[abc]1
  • ボリュームグループを作成

    # vgcreate myvg /dev/sda[abc]1
  • 論理ボリューム作成

    # lvcreate -L 50GB -n test myvg
    • /dev/myvg/testからアクセスできる。後はmkfsなりmountなり普通に操作する

使用する物理エクステントを指定する

  • 論理ボリュームを作成するときに、どの物理ボリューム・エクステントを割り付けるかは指定が可能

    # lvcreate -L12MB -ntest vgtest /dev/loop1:10-
      Logical volume "test" created
    # pvdisplay -m /dev/loop1
    (略)
      --- Physical Segments ---
      Physical extent 0 to 9:
        FREE
      Physical extent 10 to 12:
        Logical volume      /dev/vgtest/test
        Logical extents     0 to 2
      Physical extent 13 to 94:
        FREE

オンラインでエクステントを移動する

  • 使用しているボリュームのエクステントを移動することも可能

    # pvmove /dev/loop1:11 /dev/loop0:0
    # pvdisplay -m /dev/loop1
      --- Physical Segments ---
      Physical extent 0 to 9:
        FREE
      Physical extent 10 to 10:
        Logical volume      /dev/vgtest/test
        Logical extents     0 to 0
      Physical extent 11 to 11:
        FREE
      Physical extent 12 to 12:
        Logical volume      /dev/vgtest/test
        Logical extents     2 to 2
      Physical extent 13 to 94:
        FREE
  • これを用いて複数の物理ボリュームにまたがっていた論理ボリュームを一つのボリュームにまとめたり、逆に小さい複数の物理ボリュームに分けることが可能

まとめ

  • ZFSにだって……できないことくらい…ある…
  • かゆいところに手が届くLVM

ytoku/Slides/LVM再考 (最終更新日時 2011-07-27 01:48:19 更新者 ytoku)