これは何?

結論


以下、検証経緯

まずは、UEFI環境のパーティション構成を調べる

RAID 構成でインストール

パーティションテーブルを作成

GUI インストーラーは RAID 向けにうまくパーティションを設定できないので、少なくとも /boot /boot/efi は コマンドラインで作る

  1. Install DVD で起動
  2. "Install CentOS 7" を選択
  3. インストーラ起動後に Ctrl+Alt+F2 (Ctrl+Alt+Fn+F2) でコマンドプロンプトが起動
  4. パーティションテーブル破棄
    # sgdisk -Z /dev/sda
  5. GPT ラベル書き込み
    # sgdisk -o /dev/sda
  6. パーティションフラグの確認
    # sgdisk -L
    ef00EFI System
    fd00Linux RAID
    8200Linux swap
    8e00Linux LVM
  7. /dev/sda に、パーティションテーブルを作成
    こんな感じにしたい
             +-----------+-----------+-----------+-----------+
    /dev/sda |/boot/efi  |/boot      |swap1      |/          |
             | 256MB     |1024MB     |1024MB     |18GB       |
             +-----------+           +-----------+           |
    /dev/sdb |/boot/efi2 |           |swap2      |           |
             | 256MB     |           |1024MB     |           |
             +-----------+-----------+-----------+-----------+
    swap領域は、メモリ容量と同じになるようにする。合計でメモリ容量の 2 倍になる
    # sgdisk -n 1::+256M  -c 1:"EFI"    -t 1:ef00 /dev/sda
    # sgdisk -n 2::+1024M -c 2:"BOOTFS" -t 2:fd00 /dev/sda
    # sgdisk -n 3::+1024M -c 3:"SWAP"   -t 3:8200 /dev/sda
    # sgdisk -p /dev/sda
  8. /dev/sdb に /dev/sda のパーティションテーブルをコピーして、UUID を振り直す
    # sgdisk -R /dev/sdb /dev/sda
    # sgdisk -G /dev/sdb
  9. 結果確認
    $ sudo sgdisk -p /dev/sda
    Disk /dev/sda: 41943040 sectors, 20.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 71F73A8F-4BF8-48E9-A317-A557F6A8C4B9
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 41943006
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 4029 sectors (2.0 MiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048          526335   256.0 MiB   EF00  EFI System Partition
       2          526336         2623487   1024.0 MiB  FD00  BOOTFS
       3         2623488         4720639   1024.0 MiB  8200  SWAP
     
    $ sudo sgdisk -p /dev/sdb
    Disk /dev/sdb: 41943040 sectors, 20.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 1646BF39-D3C2-4716-8411-8CAE32701446
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 41943006
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 4029 sectors (2.0 MiB) 
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048          526335   256.0 MiB   EF00  EFI
       2          526336         2623487   1024.0 MiB  FD00  BOOTFS
       3         2623488         4720639   1024.0 MiB  8200  SWAP
  10. reboot
    # reboot

インストール

  1. パーティションは切れているけど、マウントポイントは UNKNOWN になってる
    raid-0.png
  2. マウントポイントを設定してフォーマットする
    • /boot xfs (RAID化はあとで)
      raid-1.png
    • /boot/efi efi (これはRAID化できない)
      raid-2.png
    • / RAID1
      raid-3.png
    • swap1
      raid-4.png
    • swap2
      raid-5.png
  3. インストールを開始すると、ディスクが2台とも動いている
    raid-6.png

/boot を RAID1 化する

現時点のディスク構成は、

               1           2           3           4
         +-----------+-----------+-----------+-----------+
/dev/sda |/boot/efi  |/boot      |swap1      |/          |
         | 256MB     |1024MB     |1024MB     |18GB       |
         +-----------+-----------+-----------+           |
/dev/sdb |/boot/efi2 |/boot2     |swap2      |           |
         | 256MB     |1024MB     |1024MB     |           |
         +-----------+-----------+-----------+-----------+
                                              /dev/md/root

これを次のようにする

               1           2           3           4
         +-----------+-----------+-----------+-----------+
/dev/sda |/boot/efi  |/boot      |swap1      |/          |
         | 256MB     |1024MB     |1024MB     |18GB       |
         +-----------+           +-----------+           |
/dev/sdb |/boot/efi2 |           |swap2      |           |
         | 256MB     |           |1024MB     |           |
         +-----------+-----------+-----------+-----------+
                      /dev/md/boot            /dev/md/root
  1. /deb/sdb2 に RAID1 (/dev/md/boot) を作成する
    # umount /dev/sdb2
    # rm -rf /boot2
    # mdadm --create /dev/md/boot --level=1 --raid-devices=2 missing /dev/sdb2
  2. /dev/md/boot をフォーマットする
    # mkfs.xfs -f /dev/md/boot
  3. /etc/mdadm.conf に /dev/md/boot を登録する
    # mdadm --examine --scan | grep "/dev/md/boot" >> /etc/mdadm.conf 
    # cat /etc/mdadm.conf 
    MAILADDR root
    AUTO +imsm +1.x -all
    ARRAY /dev/md/root level=raid1 num-devices=2 UUID=38a426a2:28d7f0c4:1a7a8885:9046ce52
    ARRAY /dev/md/boot  metadata=1.2 UUID=010cc6d9:d9013ef7:f129727f:5c13d628 name=localhost.localdomain:boot
  4. /boot の内容を /dev/md/boot にコピーする
    # mount /dev/md/boot /mnt
    # cd /boot
    # cp -av ./ /mnt
  5. /dev/md/boot に /dev/sda2 (元の/boot) を参加させる
    # umount /boot/efi
    # umount /boot/efi2
    # umount /boot
    # mdadm /dev/md/boot --add /dev/sda2 
    mdadm: added /dev/sda2
    # mdadm --detail /dev/md/boot
  6. /etc/fstab を編集して /dev/md/boot を /boot にマウントするようにする
    • まず、blkid (ファイルシステムのUID) を調べる
      # blkid /dev/md/root
      /dev/md/root: UUID="a98e4af5-4bdd-41d6-8b5e-2ae3e7b2c126" TYPE="xfs" 
      
      # blkid /dev/md/boot
      /dev/md/boot: UUID="3ae4266f-2a5d-4dc6-a592-7e40574f8908" TYPE="xfs" 
    • /etc/fstab(変更前)
      UUID=a98e4af5-4bdd-41d6-8b5e-2ae3e7b2c126 /                       xfs     defaults        0 0
      UUID=966d9a45-09bc-4d67-be43-bcb0dd39cfd4 /boot                   xfs     defaults        0 0
      UUID=6C13-A4A6          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
      UUID=6C15-E205          /boot/efi2              vfat    umask=0077,shortname=winnt 0 0
      UUID=bd2d4a6f-2ced-46ce-a4b5-f10f4242ee74 /boot2                  xfs     defaults        0 0
      UUID=855779cc-fdf1-4870-aaa1-8a247f7d5ebb swap                    swap    defaults        0 0
      UUID=5f577996-e4ec-4bab-a4b6-d38f5b8a9926 swap                    swap    defaults        
      
    • /etc/fstab(変更後)
      UUID=a98e4af5-4bdd-41d6-8b5e-2ae3e7b2c126 /                       xfs     defaults        0 0
      UUID=3ae4266f-2a5d-4dc6-a592-7e40574f8908 /boot                   xfs     defaults        0 0
      UUID=6C13-A4A6          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
      UUID=6C15-E205          /boot/efi2              vfat    umask=0077,shortname=winnt 0 0
      UUID=855779cc-fdf1-4870-aaa1-8a247f7d5ebb swap                    swap    defaults        0 0
      UUID=5f577996-e4ec-4bab-a4b6-d38f5b8a9926 swap                    swap    defaults        
      
  7. 新しい /boot をマウント
    # cd /
    # umount /mnt
    # mount /boot
    # mount /boot/efi
  8. 起動時の 初期RAMディスクイメージの作り直し (/etc/mdadm.conf と /etc/fstab を作り直したので)
    # cd /boot
    # mv initramfs-3.10.0-514.el7.x86_64.img initramfs-3.10.0-514.el7.x86_64.img.bak
    # dracut
  9. /etc/default/grub を編集して BOOT 時に /dev/md/boot をマウントできるようにする
    • まず、mdadmで RAIDデバイスのUIDを調べる
      # mdadm --detail /dev/md/root | grep UUID
                UUID : 38a426a2:28d7f0c4:1a7a8885:9046ce52
      # mdadm --detail /dev/md/boot | grep UUID
                UUID : 010cc6d9:d9013ef7:f129727f:5c13d628
    • /etc/default/grub(変更前)
      GRUB_TIMEOUT=5
      GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
      GRUB_DEFAULT=saved
      GRUB_DISABLE_SUBMENU=true
      GRUB_TERMINAL_OUTPUT="console"
      GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=38a426a2:28d7f0c4:1a7a8885:9046ce52 rhgb quiet"
      GRUB_DISABLE_RECOVERY="true"
      
    • /etc/default/grub(変更後)
      GRUB_TIMEOUT=5
      GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
      GRUB_DEFAULT=saved
      GRUB_DISABLE_SUBMENU=true
      GRUB_TERMINAL_OUTPUT="console"
      GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=010cc6d9:d9013ef7:f129727f:5c13d628 rd.md.uuid=38a426a2:28d7f0c4:1a7a8885:9046ce52 rhgb quiet"
      GRUB_DISABLE_RECOVERY="true"
      
  10. grub 再構築
    # cp -a /boot/efi/EFI/centos/grub.cfg /boot/efi/EFI/centos/grub.cfg.orig
    # grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
  11. 再起動することを祈ってから reboot
    # shutdown -r now
  12. 良さげな感じがします
    sda2.png
     
    sdb2.png
     
    md.boot.png

/boot/efi を /boot/efi2 にコピーしてブートできるようにする

  1. /dev/sda1 を /dev/sdb1 にコピーする
    # dd if=/dev/sda1 of=/dev/sdb1
    524288+0 records in
    524288+0 records out
    268435456 bytes (268 MB) copied, 1.60794 s, 167 MB/s
    ※ cp でもよい
    # cp -a /dev/sda1 /dev/sdb1 
    cp: overwrite ‘/dev/sdb1’? yes
  2. UUID (ファイルシステムID) がおなじになってしまったので /etc/fstab には PARTUUID (パーティションID) を記載する
    • PARTUUIDを確認
      # blkid /dev/sd[ab]1
      /dev/sda1: SEC_TYPE="msdos" UUID="6C13-A4A6" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="0624d820-b195-4622-8ade-5e5eff3ee6ae" 
      /dev/sdb1: SEC_TYPE="msdos" UUID="6C13-A4A6" TYPE="vfat" PARTLABEL="EFI" PARTUUID="c91b63dc-1195-4447-bc52-e04a331ddbd8" 
    • /etc/fstab
      UUID=a98e4af5-4bdd-41d6-8b5e-2ae3e7b2c126 /                       xfs     defaults        0 0
      UUID=3ae4266f-2a5d-4dc6-a592-7e40574f8908 /boot                   xfs     defaults        0 0
      PARTUUID="0624d820-b195-4622-8ade-5e5eff3ee6ae" /boot/efi         vfat    umask=0077,shortname=winnt 0 0
      PARTUUID="c91b63dc-1195-4447-bc52-e04a331ddbd8" /boot/efi2        vfat    umask=0077,shortname=winnt 0 0
      UUID=855779cc-fdf1-4870-aaa1-8a247f7d5ebb swap                    swap    defaults        0 0
      UUID=5f577996-e4ec-4bab-a4b6-d38f5b8a9926 swap                    swap    defaults        
      
  3. /boot/efi /boot/efi2 をマウントし直して比較
    # mount -a
    # diff -r /boot/efi /boot/efi2
  4. DISK2 (/deb/sdb) に bootmanager をインストール
    • 現状確認
      # efibootmgr -v
      BootCurrent: 0005
      BootOrder: 0005,0000,0001,0002,0003,0004
      Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0)	ACPI(a0341d0,0)PCI(10,0)SCSI(0,0)
      Boot0001* EFI VMware Virtual SCSI Hard Drive (1.0)	ACPI(a0341d0,0)PCI(10,0)SCSI(1,0)
      Boot0002* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)	ACPI(a0341d0,0)PCI(7,1)ATAPI(1,0,0)
      Boot0003* EFI Network	ACPI(a0341d0,0)PCI(11,0)PCI(1,0)MAC(MAC(000c29f5aebe,0)
      Boot0004* EFI Internal Shell (Unsupported option)	MM(b,e1a3000,e42ffff)FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)
      Boot0005* CentOS Linux	HD(1,800,80000,0624d820-b195-4622-8ade-5e5eff3ee6ae)File(\EFI\centos\shim.efi)
    • 登録
      # efibootmgr -c -d /dev/sdb -p 1 -L "CentOS-AltDrv" -l '\EFI\centos\shim.efi'
      BootCurrent: 0005
      BootOrder: 0006,0005,0000,0001,0002,0003,0004
      Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0)
      Boot0001* EFI VMware Virtual SCSI Hard Drive (1.0)
      Boot0002* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)
      Boot0003* EFI Network
      Boot0004* EFI Internal Shell (Unsupported option)
      Boot0005* CentOS Linux
      Boot0006* CentOS-AltDrv
    • (参考) 削除
      # efibootmgr --inactive --bootnum 0006
      # efibootmgr --delete-bootnum --bootnum 0006
  5. 起動順序 (BootOrder?) が変わってしまったので修正
    # efibootmgr --bootorder 0005,0006,0000,0001,0002,0003,0004
    BootCurrent: 0005
    BootOrder: 0005,0006,0000,0001,0002,0003,0004
    Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0)
    Boot0001* EFI VMware Virtual SCSI Hard Drive (1.0)
    Boot0002* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)
    Boot0003* EFI Network
    Boot0004* EFI Internal Shell (Unsupported option)
    Boot0005* CentOS Linux
    Boot0006* CentOS-AltDrv
  6. 再起動することを祈ってから reboot
    # shutdown -r now

/dev/sdb が故障した場合の復旧 [失敗]

  1. DISK2 死んじゃえー
    # dd if=/dev/zero of=/dev/sdb
  2. OSが落ちるので再起動
  3. 再起動...しないぞ...

CentOS のインストール DVD からレスキューモードで復旧する必要あり
ちょっと現実的でない。やっぱり Software RAID は無理かな
特に boot 領域の冗長化はハードでやらないといけなそう

/dev/sda が故障した場合の復旧 [失敗]

/dev/sdb の復旧も出来ないから /dev/sdb なんて無理

balkid の UUID と mdadm --detail の UUID の整理

コマンドUUID(ファイルシステムID)UUID_SUB(RAID構成枝番)PARTUUID(ディスクパーティションID)マウント先
blkid /dev/sda16C13-A4A60624d820-b195-4622-8ade-5e5eff3ee6ae/boot/efi
blkid /dev/sdb16C13-A4A6 (ddコマンドで/dev/sda1をコピー)c91b63dc-1195-4447-bc52-e04a331ddbd8/boot/efi2
blkid /dev/sda2010cc6d9-d901-3ef7-f129-727f5c13d628e0d4391e-f9ce-e92d-ca8f-4aeae390b02090bba3fa-d8ff-4303-95a4-b77cc4968b47RAID1(/dev/md/boot)
blkid /dev/sdb2010cc6d9-d901-3ef7-f129-727f5c13d628bad07b79-af39-8ad7-72cd-be420ef34cb1f794f6f6-04f4-4208-8234-305f48226c97RAID1(/dev/md/boot)
blkid /dev/md/boot3ae4266f-2a5d-4dc6-a592-7e40574f8908/etc/fstab ファイルシステムのマウント定義にはこっちを指定/boot
mdadm --detail /dev/md/boot010cc6d9:d9013ef7:f129727f:5c13d628/etc/mdadm.conf RAID構成定義ファイルにはこっちを指定/boot
blkid /dev/sda3855779cc-fdf1-4870-aaa1-8a247f7d5ebbddd84c28-4b74-462e-8d9e-452c91b2dd9fswap
blkid /dev/sdb35f577996-e4ec-4bab-a4b6-d38f5b8a992615eb37e2-70e5-4b20-a8df-0158de0f410fswap
blkid /dev/sda438a426a2-28d7-f0c4-1a7a-88859046ce522853e753-af8c-ced7-f513-031a7da50eda8cb47b7a-aa86-46e6-a5a7-3217f4ab1a3bRAID1(/dev/md/root)
blkid /dev/sdb438a426a2-28d7-f0c4-1a7a-88859046ce529cf3eded-2449-ca70-052e-7bc2c01be0fe573e751f-d860-431b-b2ea-7ae18001dcc5RAID1(/dev/md/root)
blkid /dev/md/roota98e4af5-4bdd-41d6-8b5e-2ae3e7b2c126/etc/fstab ファイルシステムのマウント定義にはこっちを指定/boot
mdadm --detail /dev/md/root38a426a2:28d7f0c4:1a7a8885:9046ce52/etc/mdadm.conf RAID構成定義ファイルにはこっちを指定/boot

OpenStack


添付ファイル: filemd.boot.png 22件 [詳細] filesdb2.png 26件 [詳細] filesda2.png 24件 [詳細] fileraid-6.png 28件 [詳細] fileraid-5.png 27件 [詳細] fileraid-4.png 26件 [詳細] fileraid-3.png 21件 [詳細] fileraid-2.png 30件 [詳細] fileraid-1.png 32件 [詳細] fileraid-0.png 26件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2017-02-19 (日) 22:57:20 (32d)
ISBN10
ISBN13
9784061426061