2013/06/16

複数のRAID1をLVMで管理してみた

1TBx2でRAID1を組んでいたのですが手狭になってきたので3TBx2を追加しました
追加したのはTOSHIBA DT01ACA300です
HGSTしか買ったことがなかったのですが、中身はHGSTとの事だったのでこれにしてみました
ちなみにHGSTと同じく hdparm -H /dev/sda で温度の取得ができました

現在の構成がDeskstar 7K1000.Dx2(RAID1)とDeskstar 7K1000(テンポラリ)
のような形でRAID1のストレージと単独のHDDを別々にマウントして使用していましたが
変更後はDT01ACA300x2(RAID1)とDeskstar 7K1000.Dx2(RAID1)を
LVMでひとつのストレージとしてまとめるようにしたいと思っています

MicroserverはHDDが4台入るのですが3台は使用中なのでとりあえず1台追加して縮退状態でアレイを構築
データ移行後にテンポラリで使用しているHDDを抜いて、差し替えることにします

縮退状態からのRAID作成
サーバー設定メモ/mdadmのRAID再構築 - トヤヲ.ネット
RAID、LVM作成時の注意点
LVM on RAID するときの注意点 | Green Rabbit
PEのサイズ
黒ぶちメガネのblog » Blog Archiv » partedでパーティッション作成してLVMを作ってみた
LVMの拡張
Pantora Networks » 3章 LVM操作 応用編

まず追加したディスク全体を使用して縮退状態でRAID1を作成
# mdadm --create /dev/md0 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sda missing
mdadm: array /dev/md0 started.

/dev/md0で作成されていることを確認 (md1は既存のRAID)
# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sda[0]
      2930266448 blocks super 1.0 [2/1] [U_]
      
md1 : active raid1 sdd1[0] sdc1[1]
      976760400 blocks super 1.2 [2/2] [UU]
      
unused devices: 

/etc/mdadm.conf に次のコマンドの結果を書き込んでおくと起動時に指定した名前でデバイスが作成される
# mdadm --detail --scan | grep /dev/md0
ARRAY /dev/md0 metadata=1.0 name=rabbithole:0 UUID=afb3398d:2dcfc178:37c00744:c4f0c767

LVM関係のコマンドをインストール
$ sudo emerge -av lvm2

作成したRAIDアレイにPVを作成します
# pvcreate --metadatatype 2 --dataalignment 64K /dev/md0
  Physical volume "/dev/md0" successfully created

# pvdisplay 
  "/dev/md0" is a new physical volume of "2.73 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/md0
  VG Name               
  PV Size               2.73 TiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw

PEを指定してVGを作成します
PEは8TBまで拡張できるように128MBにしました
# vgcreate -s 128m vg0 /dev/md0
  Volume group "vg0" successfully created

# vgdisplay -v
    Finding all volume groups
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.73 TiB
  PE Size               128.00 MiB
  Total PE              22356
  Alloc PE / Size       0 / 0   
  Free  PE / Size       22356 / 2.73 TiB
  VG UUID               u6MTky-7Fw1-hulq-9bvF-2xg3-bt3f-icPNXL
   
  --- Physical volumes ---
  PV Name               /dev/md0     
  PV UUID               9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw
  PV Status             allocatable
  Total PE / Free PE    22356 / 22356

VGからLVを作成
とりあえず2TBにしてみた
# lvcreate -L 2T -n lv0 vg0
  Logical volume "lv0" created

# vgdisplay -v
    Finding all volume groups
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.73 TiB
  PE Size               128.00 MiB
  Total PE              22356
  Alloc PE / Size       16384 / 2.00 TiB
  Free  PE / Size       5972 / 746.50 GiB
  VG UUID               u6MTky-7Fw1-hulq-9bvF-2xg3-bt3f-icPNXL
   
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                l9qC5J-DWOc-NL7T-PnTa-d7oq-b5al-vch9Ys
  LV Write Access        read/write
  LV Creation host, time rabbithole, 2013-06-05 04:50:39 +0900
  LV Status              available
  # open                 0
  LV Size                2.00 TiB
  Current LE             16384
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Physical volumes ---
  PV Name               /dev/md0     
  PV UUID               9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw
  PV Status             allocatable
  Total PE / Free PE    22356 / 5972

フォーマットしてマウント
# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.7 (21-Jan-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870912 blocks
26843545 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
 102400000, 214990848, 512000000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done       

# mkdir /mnt/lvm
# mount -t ext4 -o noatime /dev/vg0/lv0 /mnt/lvm/
# df -h /mnt/lvm/
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv0  2.0T  199M  1.9T   1% /mnt/lvm

既存のアレイと取り外したいHDDからデータを移行
# cd /mnt/raid
# tar cpf - ./ | (cd /mnt/lvm/ && tar xpfv -)
# cd /mnt/hdd
# tar cpf - ./ | (cd /mnt/lvm/ && tar xpfv -)

一度電源を落として、新しいHDDに差し替えてから起動
縮退状態のアレイに新規HDDを追加、リビルド状態を確認
# mdadm /dev/md0 -a /dev/sdb
# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdc1[1] sdd1[0]
      976760400 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sdb[2] sda[1]
      2930266448 blocks super 1.0 [2/1] [_U]
      [==>..................]  recovery = 10.7% (315106240/2930266448) finish=239.8min speed=181700K/sec
      
unused devices: 

ここまででRAID1上にLVMの領域の作成が終了しました
3TBから2TBだけ切り出して使用しているので試しに500GBほど追加するには以下のようにします
# lvextend -L +500G /dev/vg0/lv0 
  Extending logical volume lv0 to 2.49 TiB
  Logical volume lv0 successfully resized

# vgdisplay -v
    Finding all volume groups
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.73 TiB
  PE Size               128.00 MiB
  Total PE              22356
  Alloc PE / Size       20384 / 2.49 TiB
  Free  PE / Size       1972 / 246.50 GiB
  VG UUID               W8MkGo-vsDe-ffNR-BGSu-RLQJ-mRwP-8k1iVl
   
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                jN5sM0-HK7X-xpvU-PqiQ-cUD7-SVn1-JEHYwR
  LV Write Access        read/write
  LV Creation host, time rabbithole, 2013-06-07 00:53:53 +0900
  LV Status              available
  # open                 1
  LV Size                2.49 TiB
  Current LE             20384
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Physical volumes ---
  PV Name               /dev/md0     
  PV UUID               97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
  PV Status             allocatable
  Total PE / Free PE    22356 / 1972

これでLVM的には大きくなりました
ファイルシステムをLVMの領域に合わせて拡張します
# df -h /mnt/lvm/
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv0  2.0T  1.1T  825G  57% /mnt/lvm

# resize2fs /dev/vg0/lv0 
resize2fs 1.42.7 (21-Jan-2013)
Filesystem at /dev/vg0/lv0 is mounted on /mnt/lvm; on-line resizing required
old_desc_blocks = 128, new_desc_blocks = 160
The filesystem on /dev/vg0/lv0 is now 667942912 blocks long.

# df -h /mnt/lvm/
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv0  2.5T  1.1T  1.3T  46% /mnt/lvm

これで拡張の仕方もOKです
次は既存のアレイを一度解体、再構築してLVMのメンバとして追加してみます
パーティション切って使っていたのでsdd1とかになっています
(パーティションを切る必要がないので切らずに使うようにします)
# mdadm --detail /dev/md1 
/dev/md1:
        Version : 1.2
  Creation Time : Sat Jul 21 19:39:57 2012
     Raid Level : raid1
     Array Size : 976760400 (931.51 GiB 1000.20 GB)
  Used Dev Size : 976760400 (931.51 GiB 1000.20 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jun  7 20:19:17 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : rabbithole:1  (local to host rabbithole)
           UUID : 397bdef9:d9e30277:48fb1e60:2ee74aa9
         Events : 19

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       33        1      active sync   /dev/sdc1

まずアレイを停止して、スーパーブロックも削除
# mdadm -S /dev/md1 
mdadm: stopped /dev/md1

# mdadm --zero-superblock /dev/sdd1 
# mdadm --zero-superblock /dev/sdc1

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sda[0] sdb[2]
      2930266448 blocks super 1.0 [2/2] [UU]
      
unused devices: 

fdiskでパーティションを削除
# fdisk /dev/sdd
# fdisk /dev/sdc

同じようにRAID1でアレイを作成
# mdadm --create /dev/md1 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sdc /dev/sdd 
mdadm: array /dev/md1 started.

# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdd[1] sdc[0]
      976762448 blocks super 1.0 [2/2] [UU]
      [>....................]  resync =  0.0% (403968/976762448) finish=161.1min speed=100992K/sec
      
md0 : active raid1 sda[0] sdb[2]
      2930266448 blocks super 1.0 [2/2] [UU]
      
unused devices: 

/etc/mdadm.conf の/dev/md1を新しい値に変更しておく
# mdadm --detail --scan | grep /dev/md1
ARRAY /dev/md1 metadata=1.0 name=rabbithole:1 UUID=3735b68e:93098abd:cb8f64f5:0fd212d4

作成したアレイにPVを作成
# pvcreate --metadatatype 2 --dataalignment 64K /dev/md1 
  Physical volume "/dev/md1" successfully created

# pvdisplay -v
    Scanning for physical volume names
  --- Physical volume ---
  PV Name               /dev/md0
  VG Name               vg0
  PV Size               2.73 TiB / not usable 20.33 MiB
  Allocatable           yes 
  PE Size               128.00 MiB
  Total PE              22356
  Free PE               1972
  Allocated PE          20384
  PV UUID               97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
   
  "/dev/md1" is a new physical volume of "931.51 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/md1
  VG Name               
  PV Size               931.51 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               wrcffi-LQoQ-ctKc-ewxQ-X0Qg-JX3Y-AsqoRX

作成したPVをVGに追加
# vgextend vg0 /dev/md1 
  Volume group "vg0" successfully extended

# vgdisplay -v
    Finding all volume groups
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.64 TiB
  PE Size               128.00 MiB
  Total PE              29808
  Alloc PE / Size       20384 / 2.49 TiB
  Free  PE / Size       9424 / 1.15 TiB
  VG UUID               W8MkGo-vsDe-ffNR-BGSu-RLQJ-mRwP-8k1iVl
   
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                jN5sM0-HK7X-xpvU-PqiQ-cUD7-SVn1-JEHYwR
  LV Write Access        read/write
  LV Creation host, time rabbithole, 2013-06-07 00:53:53 +0900
  LV Status              available
  # open                 1
  LV Size                2.49 TiB
  Current LE             20384
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Physical volumes ---
  PV Name               /dev/md0     
  PV UUID               97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
  PV Status             allocatable
  Total PE / Free PE    22356 / 1972
   
  PV Name               /dev/md1     
  PV UUID               wrcffi-LQoQ-ctKc-ewxQ-X0Qg-JX3Y-AsqoRX
  PV Status             allocatable
  Total PE / Free PE    7452 / 7452

以上で作業は終了
これで必要に応じて動的に領域を拡張できるようになりました

0 件のコメント:

コメントを投稿