LVM on RAID on Ubuntu

PC

工事中! 以下は仕掛かり中のメモ書きです
LVMパーティションをソフトウェアRAID1の上に作成するまでの手順。

RAID1の設定

単独RAID1立ち上げ

 foo@bar:~$ sudo mdadm --create /dev/md1 --level=1 --raid-devices=1 --force /dev/sda1
 mdadm: array /dev/md1 started.
 foo@bar:~$ sudo mdadm --detail --scan
 # UUIDはマスキングしています
 ARRAY /dev/md1 level=raid1 num-devices=1 UUID=00000000:00000000:00000000:00000000

LVM初期設定

PV(Physical Volume)作成(RAIDアレイを使用)

 foo@bar:~$ sudo pvcreate -v /dev/md1
     Wiping cache of LVM-capable devices
     Set up physical volume for "/dev/md1" with 2930271872 available sectors
     Zeroing start of device /dev/md1
   Physical volume "/dev/md1" successfully created

VG(Volume Group)作成

 foo@bar:~$ sudo vgcreate -s16m data /dev/md1
   Volume group "data" successfully created
 foo@bar:~$ sudo vgdisplay
   --- Volume group ---
   VG Name               data
   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               1.36 TB
   PE Size               16.00 MB
   Total PE              89424
   Alloc PE / Size       0 / 0   
   Free  PE / Size       89424 / 1.36 TB
   VG UUID               ZcgQ57-QhgB-H2sa-1x87-oi8f-82yA-xxxxxx

LV作成

foo@bar:~$ sudo lvcreate -nvideo -L512G data
   Logical volume "video" created
 foo@bar:~$ sudo lvdisplay /dev/data/video
   --- Logical volume ---
   LV Name                /dev/data/video
   VG Name                data
   LV UUID                JSU0nb-5KLN-baZA-vyuv-TD0X-ktJZ-xxxxxx
   LV Write Access        read/write
   LV Status              available
   # open                 0
   LV Size                512.00 GB
   Current LE             32768
   Segments               1
   Allocation             inherit
   Read ahead sectors     0
   Block device           254:0

LVの初期化

 foo@bar:~$ sudo mke2fs -j -m 0 /dev/data/video
 mke2fs 1.40.8 (13-Mar-2008)
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 33554432 inodes, 134217728 blocks
 0 blocks (0.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=0
 4096 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

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

 This filesystem will be automatically checked every 24 mounts or
 180 days, whichever comes first.  Use tune2fs -c or -i to override.

LVリサイズ(拡張)

LVの拡張

 foo@bar:~$ sudo lvextend -L 800G /dev/data/video
   Extending logical volume video to 800.00 GB
   Logical volume video successfully resized

ext3ファイルシステムの拡張

ext2resizeコマンドでオンライン拡張ができる、とあったが、

 foo@bar:~$ sudo ext2resize /dev/data/video
 ext2resize v1.1.19 - 2001/03/18 for EXT2FS 0.5b
 ext2_open: fs has unsupported feature(s) enabled: recover
 ext2resize: can't open /dev/data/video

fs設定上の問題で使えないらしい。仕方が無いのでオフラインで拡張する。

 foo@bar:~$ sudo resize2fs /dev/data/video
 resize2fs 1.40.8 (13-Mar-2008)
 Please run 'e2fsck -f /dev/data/video' first.

 foo@bar:~$ sudo e2fsck -f /dev/data/video
 e2fsck 1.40.8 (13-Mar-2008)
 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
 /dev/data/video: 21/33554432 files (4.8% non-contiguous), 20204280/134217728 blocks
 foo@bar:~$ sudo resize2fs /dev/data/video
 resize2fs 1.40.8 (13-Mar-2008)
 Resizing the filesystem on /dev/data/video to 209715200 (4k) blocks.
 The filesystem on /dev/data/video is now 209715200 blocks long.

リサイズが完了したのでマウントしてみる。

 foo@bar:~$ sudo mount -a
 foo@bar:~$ df
 Filesystem           1K-blocks      Used Available Use% Mounted on
 /dev/sdb1              5915324   2553304   3302396  44% /
 varrun                  452592       260    452332   1% /var/run
 varlock                 452592         0    452592   0% /var/lock
 udev                    452592        36    452556   1% /dev
 devshm                  452592         0    452592   0% /dev/shm
 /dev/mapper/data-video
                      832252328  76586376 755665952  10% /var/www/epgrec/video
 foo@bar:~$ sudo lvdisplay /dev/data/video
   --- Logical volume ---
   LV Name                /dev/data/video
   VG Name                data
   LV UUID                JSU0nb-5KLN-baZA-vyuv-TD0X-ktJZ-xxxxxx
   LV Write Access        read/write
   LV Status              available
   # open                 1
   LV Size                800.00 GB
   Current LE             51200
   Segments               1
   Allocation             inherit
   Read ahead sectors     0
   Block device           254:0

片肺RAID1の立ち上げ

片肺状態でのアレイの状態

root@bar:/# mdadm -E --scan
 # UUIDはマスキングしています
 ARRAY /dev/md4 level=raid1 num-devices=1 spares=1 UUID=00000000:00000000:00000000:00000000
 ARRAY /dev/md1 level=raid1 num-devices=1 spares=1 UUID=00000000:00000000:00000000:00000000

 root@bar:/# cat /proc/mdstat
 Personalities : [raid1]
 md4 : active raid1 dm-6[0]
       1003904 blocks [1/1] [U]

 md1 : active raid1 dm-2[0]
       243191872 blocks [1/1] [U]

 unused devices: <none>
</none>

データの移動

rsyncを使用して、RAID構築前のデータを片肺状態のRAID1アレイにコピー

RAID1再構築

  • データ移動完了後のディスクをRAID1アレイとして初期化。パーティションを片肺RAID1に合わせて切り直す。
  • アレイにスペアとして追加する

    root@bar:/# mdadm  /dev/md4 -a /dev/hdg1
    mdadm: hot added /dev/hdg1
    root@bar:/# mdadm  /dev/md1 -a /dev/hdg2
    mdadm: hot added /dev/hdg2
    
    root@bar:/# cat /proc/mdstat
    Personalities : [raid1]
    md4 : active raid1 hdg1[1](S) dm-6[0]
       1003904 blocks [1/1] [U]
    
    md1 : active raid1 hdg2[1](S) dm-2[0]
       243191872 blocks [1/1] [U]
    
    unused devices: <none>
    </none>

    スペアでは同期が取れないので、アレイの設定を変更し、構成デバイスを1から2に変更

    mdadm -G /dev/md1 -n 2
    mdadm -G /dev/md4 -n 2

    同期が始まった。

    root@bar:/# cat /proc/mdstat
    Personalities : [raid1]
    md4 : active raid1 hdg1[2] dm-6[0]
       1003904 blocks [2/1] [U_]
       [====>................]  recovery = 20.0% (202368/1003904) finish=3.2min speed=4154K/sec
    
    md1 : active raid1 hdg2[2] dm-2[0]
       243191872 blocks [2/1] [U_]
         resync=DELAYED
    
    unused devices: <none>
    </none>

参考URL

Last Updated on 2024-08-13 by spicebeat

タイトルとURLをコピーしました