Misc/LVMの使い方 のバックアップの現在との差分(No.5)


#contents
 
 *セットアップ [#z2b5b8d8]
 
  wget ftp://ftp.sistina.com/pub/LVM/1.0/lvm_1.0.8.tar.gz
  cd LVM/1.0.8
  ./configure
  make
  sudo make install
 
  vgscan
  //ディスクごとに必要
 
  //8eでフォーマット
  fdisk /dev/hde
  pvcreate /dev/hde1
  
  //ディスクグループに追加
  vgcreate jp_vg /dev/hde1
 
  //容量を確認
  vgdisplay
 
 順番が違うかも
 
  //パーティションを作成
  lvcreate -l ??? jp_vg
  
  mkfs.ext3 /dev/hde1
 
 起動時に必要なコマンドがあるので起動スクリプトを作成
 
  vgchange -a y jp_vg
 
 起動用スクリプト作成(/etc/init.d/lvm)
 
  #!/bin/bash
  
  RETVAL=0
  
  start()
  {
      /sbin/vgchange -a y jp_vg
      /bin/mount /dev/jp_vg/lvol1 /mnt1
  }
  
  stop()
  
  {
      /bin/umount /mnt1
      /sbin/vgchange -a n jp_vg
  }
  
  case "$1" in
  start)
      start
  ;;
  stop)
      stop
  ;;
  restart)
      stop
      start
  ;;
  *)
      echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
      RETVAL=1
  esac
  
  exit $RETVAL
 
  ln -s ../init.d/lvm S99lvm
 
 *Tips [#b6353e93]
 **LVMディスクの移動 [#t770d0ac]
 
 マシン No 1 で、 
 
  vgchange -a n vg01
  vgexport vg01
 
 マシン No 2 で、 
 
  vgimport vg01 /dev/sda1 /dev/sdb1
  vgchange -a y vg01
 
 **ディスクの増加 [#d469d931]
 
  # fdisk /dev/hde
 
 8eでフォーマット
 
  # pvcreate /dev/hde1
 
  -ff
 
 オプションが必要なときもあり
 
  # vgchange -a y storage_vg
  # vgextend storage_vg /dev/hde1
 
  # umount /dev/storage_vg/lvol1  // umountしてなければいらない?
 
 そうでもない
 
  # lvextend -l+size /dev/storage_vg/...
 
 Vineのlvextendはバグ持ちで駄目なのでどこからか修正ソースを持ってきてrpm再インストール~
 具体的には下記の話
 
 http://search.luky.org/vine-users.7/msg07261.html
 
  # e2fsadm -l+624 /dev/storage_vg/lvol1
 
 Fedora Core 6 では最後
 
  # resize2fs /dev/storage_vg/lvol1
 
 もしくはオンラインなら
 
  # ext2online /dev/storage_vg/lvol1
 
 となる
 
 **ディスク間データ移動 [#dc867577]
 pvmoveの前はその上のvgとかを全部アンマウントしておくこと。pv吹っ飛ぶ可能性あり。
 
  umount /dev/.../vg
  vgchange -a n vg
  pvmove /dev/hde1 /dev/hdi1
 
  pvmove /dev/hde1
 
 で hde1のPVを他に追い出す
 
 ***失敗したときには(戻せているかどうかは未確認) [#p33383c6]
 
 pvmove中に [[ここ:http://groups.google.co.jp/group/linux.debian.bugs.dist/browse_thread/thread/8fc9588a93e0089c]] のような状態になって失敗した場合。
 
  device-mapper: create ioctl failed: Peripherique ou ressource occupe
    Loading aya-kvms table
  device-mapper: reload ioctl failed: Argument invalide
    Checking progress every 10 seconds
  WARNING: dev_open(/dev/sdd1) called while suspended
  WARNING: dev_open(/dev/sda2) called while suspended
  WARNING: dev_open(/dev/hdb3) called while suspended
  WARNING: dev_open(/dev/sdd1) called while suspended
  WARNING: dev_open(/dev/sda2) called while suspended
  WARNING: dev_open(/dev/hdb3) called while suspended
  WARNING: dev_open(/dev/sdd1) called while suspended
  WARNING: dev_open(/dev/sda2) called while suspended
  WARNING: dev_open(/dev/hdb3) called while suspended
  /dev/sdd1: Moved: 100,0%
    Found volume group "aya"
    Found volume group "aya"
    Found volume group "aya"
    Found volume group "aya"
    Suspending aya-pvmove0 (253:6) with device flush
    Found volume group "aya"
    Creating aya-pvmove0
  device-mapper: create ioctl failed: Peripherique ou ressource occupe
  Unable to reactivate logical volume "pvmove0" 
 
 この場合メタデータの更新だけ行われてしまったと思われるのでメタデータを戻せば復活できる(はず、というかそうでないと自分のストレージもダメージ受けてるorz)
 
 /etc/lvm/backup or /etc/lvm/archive に設定ファイル(storage_vg)が残っているか確認して残っていれば可能性あり。
 
 pvmoveの場合、メタデータの segmentxx って処の stripes って処が書き換えられてかつ中身も移動するという作りだと思う。なので今回の失敗のようにメタデータだけ書き換えられた場合はその部分を修復してみる。
 
  segment11 {
          start_extent = 47095
          extent_count = 3726     # 232.875 Gigabytes
  
          type = "striped"
          stripe_count = 1        # linear
  
          stripes = [
                  "pv7", 0  <- ここを修正 "pv指定", 開始extent みたいなもんだと思う
          ]
  }
 
 pvmoveなので start_extent, extent_count 等は修正されないはずなのでほっておく(同じ数のextentを消費するはずだから)。archiveに過去のものが入っていればその設定ファイルをそのまま利用した方が無難だしよいと思います(自分はそのあとにLVM操作してたので無理でしたがorz)。
 
 修正が終わったらその設定ファイルでメタデータを書き換える。
 
  vgcfgrestore storage_vg -f storage_vg_rec
    storage_vg_rec は修正した設定ファイル
 
 あとはpvmoveをやり直す。
 
 ちなみにこれはURL先の記述を見る限りバグらしい。
 
 **pvの削除 [#ebb926b3]
 
  vgreduce vg_name /dev/hdp1
  pvremove /dev/hdp1
 
 間違って消してしまったら
 
  vgreduce --removemissing VG_XenStorage-xxxx
 
 **LVMディスクのPC間移動 [#nddb642c]
 
 同バージョンのLVMを導入さえすればすべてのHDDをもってきて vgscan をすれば使えるみたいである
 
  # /sbin/vgscan
 
 *環境 [#m494c8d2]
 -Vine 2.6CR
 
 *参考 [#e7919dbf]
 
 -[[Logical Volume Manager HOWTO:http://www.linux.or.jp/JF/JFdocs/LVM-HOWTO.html]]
 -[[特集:LVMによるディスクパーティションの動的化(前編):http://www.itmedia.co.jp/enterprise/0307/11/epn01.html]]
 -[[特集:LVMによるディスクパーティションの動的化(後編):http://www.itmedia.co.jp/enterprise/0308/08/epn01.html]]
 -[[LVM + reiserfs 適用時のスナップショットマウント不具合:http://murashima.net/rio/lvm_snap/]]
 -[[Software RAID & LVM on Vine linux:http://beer.dip.jp/unix/lvm.html]]
 -[[LVM (Logical Volume Manager):http://memo.blogdns.net/lvm.html]]
 
 この参考ページの方が役に立つような気がする(ぉ
 
 RIGHT:LVM

注意)このバージョンのsafariではjavascriptがうまく動作しないので、recaptchaはページ切り替え版を利用しています。
トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS