2016年2月21日日曜日

ソフトウェアRAIDからハードウェアRAIDへ移行(バックアップから書き戻し)

データをバックアップから戻す。
[root@papa ~]# mount /dev/VGhome_tmp/home /backup/
[root@papa ~]# xfsdump -J - /home/backup/home/      | xfsrestore -J - /backup/
dumpはデバイス全体(/home)を指定しないと動かないので↓こうしないといけない。
[root@papa ~]# xfsdump -J - /home      | xfsrestore -J - /backup/
rsyncでも良かったかもしれないけど遅いからコピー後にmvする。

ソフトウェアRAIDからハードウェアRAIDへ移行(データ用HDDをRAIDカード側に)

RAIDカードでRAID10を作って再起動してOSで使えるように。
sda RAIDカードの1,2     システム
sdb RAIDカードの3,4,5,6 今回作ったもの
sdc SATAにつながったHDD
となっていて、今回増えたものがsdbで、sdb->sdcに動いているので作業対象はsdb。

パーティション設定は名前をhomeにするだけで後はbackupと同じ
parted /dev/sdb
(parted) mklabel gpt
(parted) unit s
(parted) mkpart home 2048s -1s
(parted) set 1 lvm on
(parted) p
Model: LSI MegaRAID 8708EM2 (scsi)
Disk /dev/sdb: 7811891200s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End          Size         File system  Name  Flags
 1      2048s  7811891166s  7811889119s               home  lvm
(parted) q

LVMを作る。
KVMのHDDイメージでもそんなに無いからスナップショット領域は50GBもあればいいと思うので
3.6TB。残り42GBをスナップショット用に。

[root@papa ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@papa ~]# pvdisplay -C
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  417.25g   4.00m
  /dev/sdb1         lvm2 ---    3.64t   3.64t      <-今回作成
  /dev/sdc1  VGhome lvm2 a--    3.64t 142.00g

現在VGhomeが稼動しているのでVGhome_tmpとしておく。
[root@papa ~]# vgcreate -s 64m VGhome_tmp /dev/sdb1
  Volume group "VGhome_tmp" successfully created
[root@papa ~]# vgdisplay -C
  VG         #PV #LV #SN Attr   VSize   VFree
  VGhome       1   1   0 wz--n-   3.64t 142.00g
  VGhome_tmp   1   0   0 wz--n-   3.64t   3.64t      <-今回作成
  centos       1   2   0 wz--n- 417.25g   4.00m
[root@papa ~]# lvcreate -L 3.6t -n home VGhome_tmp
[root@papa ~]# lvdisplay -C
  LV   VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home VGhome     -wi-ao----   3.50t
  home VGhome_tmp -wi-a-----   3.60t      <-今回作成
  root centos     -wi-ao---- 410.00g
  swap centos     -wi-ao----   7.25g
確認したら空き(スナップショット領域)は38.5GBと思っていたより小さい。
[root@papa ~]# vgdisplay -C
  VG         #PV #LV #SN Attr   VSize   VFree
  VGhome       1   1   0 wz--n-   3.64t 142.00g
  VGhome_tmp   1   1   0 wz--n-   3.64t  38.50g
  centos       1   2   0 wz--n- 417.25g   4.00m

xfsでフォーマット。間違えたら死ぬ(データ消失)するのでHDD外すとかRAIDカードごと別マシンに繋いでやる方がいいかも。
[root@papa ~]# mkfs.xfs -s size=4096 -m crc=1 /dev/VGhome_tmp/home
SATAのときより時間がかかって不安になるも何とか終了。

ソフトウェアRAIDからハードウェアRAIDへ移行(バックアップ側データで起動)

SATAのRAID10をバックアップ用にコピーが終わったのでこっちを使ってこれまでどおりに稼動できるようにする。

元々は/dev/md2直下にデータがあった。
/dev/md2 -> /home/各ディレクトリ
バックアップ用は/dev/VGhome/homeにさらにbackupと一階層深い。
なので同じようにマウントすると以下のようになる。
/dev/VGhome/home -> /home/backup/各ディレクトリ
ディレクトリの数が3つなので
ln -s /backup/backup/hoge /backup/
でリンクを作ればうまくいった。

fstabを書き換えて再起動・・・しなかった。
fstabの古い行をコピってデバイス名だけ書き換えたら、新しいパーティションはxfsなのにext4のままだったのが原因。
書き換えて動作を確認できたらSATAのRAID10ディスクをRAIDカードに接続。

これが
SATA
0         バックアップ用(4TB)
2,3,4,5 データ(2TB*4のRAID10)
RAIDカード
0,3      システム(500GBのRAID1)

こうなる
SATA
0         バックアップ用(4TB) 現在利用中
RAIDカード
0,3      システム(500GBのRAID1)
4,5,6,7 2TB*4 (これをRAID10にする)

2016年2月20日土曜日

ソフトウェアRAIDからハードウェアRAIDへ移行(データ用HDDのバックアップ)

SATAでRAID10になっている4台のHDDをRAIDカードに繋ぎかえるため、バックアップ用4TBに退避。

partedでパーティションを作成。
[root@papa ~]#parted /dev/sdb
(parted) mklabel gpt
(parted) unit s
(parted) mkpart backup 2048s -1s
(parted) set 1 lvm on
(parted) p
Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdb: 7814037168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End          Size         File system  Name    Flags
 1      2048s  7814037134s  7814035087s  ext4         backup  lvm
(parted) q

4TBのHDDをLVMで作る。3.6TB。
[root@papa ~]# pvcreate /dev/sdb1
[root@papa ~]# pvdisplay -C
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  417.25g 4.00m
  /dev/sdb1         lvm2 ---    3.64t 3.64t
[root@papa ~]# vgcreate -s 64m VGhome /dev/sdb1
[root@papa ~]# vgdisplay -C
  VG     #PV #LV #SN Attr   VSize   VFree
  VGhome   1   0   0 wz--n-   3.64t 3.64t
  centos   1   2   0 wz--n- 417.25g 4.00m
[root@papa ~]# lvcreate -L 3.6t -n home VGhome
[root@papa ~]# lvdisplay -C
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home VGhome -wi-a-----   3.60t
  root centos -wi-ao---- 410.00g
  swap centos -wi-ao----   7.25g

homeのスナップショットを作る場合こんな感じ
[root@papa ~]# lvcreate -s -L 36.93g -n home_snap /dev/VGhome/home
[root@papa ~]# lvdisplay -C
  LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home      VGhome owi-a-s---   3.50t
  home_snap VGhome swi-a-s--- 36.93gg      home   0.00
  root      centos -wi-ao---- 410.00g
  swap      centos -wi-ao----   7.25g

xfsでフォーマット
[root@papa ~]# mkfs.xfs -m crc=1 /dev/VGhome/home
中々終わらなくて変だと思ったらスナップショットを作っていたからだった。
[root@papa ~]# lvremove /dev/VGhome/home_snap
lvremoveで削除したらすぐに終わった。

システム、データをバックアップ
mount /dev/VGhome/home /backup/
mkdir /backup/backup
xfsdump -J - /      | xfsrestore -J - /backup/backup/
dump 0af - /home | ( cd /backup/backup/home && restore rf -)
2.1TBぐらいあるので今日はここまで。

ソフトウェアRAIDからハードウェアRAIDへ移行(システムHDD)

間違えてデータ消えたら悲しいので別のPCにRAIDカードとHDDを繋いでOSをインストール。
その後、元のPCに繋ぐ

SATA
0,1      システム(80GBのRAID1)
2,3,4,5 データ(2TB*4のRAID10)
RAIDカード
0,3      システム(500GBのRAID1)  <- OSインストール、アップデート済み。

旧システムを移行させる。cp -pRとかだとうまくいかず、最終的にはxfsdimp,xfsrestoreで移行。

mount /dev/centos/root /mnt
cd /mnt
cp -pR etc etc.org
rm -rf etc.org以外
/sbin/xfsdump -J - /      | /sbin/xfsrestore -p 10 -J - /mnt/    (-pオプションで10秒毎に状況を表示する)
cp etc/fstab etc.org/fstab     <- UUIDのことがあるから元のファイルで書き戻し
元の/etc/fstabから不足している行(/home)を追加
RAIDカードから起動、して動作を確認。データもマウントできて第一段階はクリアできたたので元のシステムHDDを外してバックアップ用の4TBを繋ぐ。

ひょっとしたらネットワークカードの設定はやり直しが必要かも知れない。

現在のHDD状況
SATA
0         バックアップ用(4TB)
2,3,4,5 データ(2TB*4のRAID10)
RAIDカード
0,3      システム(500GBのRAID1)

ソフトウェアRAIDからハードウェアRAIDへ移行(確認)

まずはN8103-117の管理画面でもみてみようとところ、2台繋いだHDDが1つしか見えない。
合わせて買ったケーブルがおかしいのか繋ぎ変えてしたところ0~3、4~7のうち、1,2に繋ぐと見えないことが発覚。
ジャンク扱いとはいえ残念だけど、システムを0と3、データを4~7にすれば今の状態で移行できるからよしとする。

2016年2月17日水曜日

ソフトウェアRAIDからハードウェアRAIDへ移行(計画)

今の環境
OS CentOS Linux release 7.2.1511 (Core)
RAID mdadamで構築
sdaとsdbでRAID1'(各2.5inchの80GB)
 /dev/md126       /
 /dev/md125       /boot
 /dev/md127       swap
sdcとsddでRAID1、sdeとsdfでRAID1。この2組でRAID10(各2TBで計4TB)
 /dev/md2          /home
マザーボードにSATAは6ポートで空きは無し。

ここにバックアップ用にSATAのカード(asrockの!!)を使って4TBのHDDを追加したけど
エラー頻発で切断されたりまともに使えない。

そこでN8103-117ってのがジャンク扱いで980円だったので買ってみた。
(megaRAIDの8708EM2のOEM)

初めは
8708EM2に4TBを繋いで/homeをコピー
2TB*4でRAID10を作り直して4TBはマザーのSATAに繋いでバックアップ用
とするつもりだったけど、このカードは2TBまでしか認識しないのでらしいので4TBは使えない。(しまった)

そこで、ノートPCをSSDにして余ってる500GBが2台あったので、まずこれを8708EM2でRAID1に。
マザーのSATAに4TBを繋いで/homeをコピー
8708EM2で2TB*4でRAID10にして再度コピー
とする方針に変更。

面倒くさ~