雑記/2015-12-08

http://dexlab.net/pukiwiki/index.php?%BB%A8%B5%AD/2015-12-08
 

LVMで構成した起動用HDDを交換する

  • 状況
    • /dev/sda も4年以上可動していて古いので、東芝 MD04ACA300交換し、ブートドライブとしたい
    • ddやacronis true imageでもLVMパーティションのコピーはできるようだが、セクタ単位でデータが無い領域までコピーするため非常に遅い。rsyncで行いたい。
  • 結論
    • LVMを使うことで、UEFI非対応のマザーボードでも3TBのHDDを使えた。ただ、パーティションが少し複雑。2TBまでの方が管理は楽。
    • 514GBのコピーで95分かかった
  • 環境
    • OS: Ubuntu 12.04.5 LTS
    • HDD(交換元): /dev/sda 1TB (Hitachi HDS72101)
    • HDD(交換後): /dev/sdb 3TB (東芝 MD04ACA300)
    • マザーボード: Shuttle SA76G2 V2 BIOS。UEFI非対応

TOSHIBA-MD04ACA300.jpg

  • 現状の確認。3TB以上はpartedを使う
    1. df -h
    2. Filesystem                    Size  Used Avail Use% Mounted on
    3. /dev/mapper/mediacenter-root  906G  514G  346G  60% /
    4. udev                          1.8G   12K  1.8G   1% /dev
    5. tmpfs                         371M  1.3M  369M   1% /run
    6. none                          5.0M     0  5.0M   0% /run/lock
    7. none                          1.9G   76K  1.9G   1% /run/shm
    8. /dev/sda1                     228M   65M  152M  30% /boot
    9.  
    10. sudo pvs -o+pv_used
    11.   PV         VG          Fmt  Attr PSize   PFree   Used
    12.   /dev/sda5  mediacenter lvm2 a-   931.27g 676.00m 930.61g
    13.  
    14. LANG=C sudo parted -l
    15. Model: ATA Hitachi HDS72101 (scsi)
    16. Disk /dev/sda: 1000GB
    17. Sector size (logical/physical): 512B/512B
    18. Partition Table: msdos
    19.  
    20. Number  Start   End     Size    Type      File system  Flags
    21.  1      1049kB  256MB   255MB   primary   ext2         boot
    22.  2      257MB   1000GB  1000GB  extended
    23.  5      257MB   1000GB  1000GB  logical                lvm
    24.  
    25.  
    26. Error: /dev/sdb: unrecognised disk label
    27.  
    28. Model: Linux device-mapper (linear) (dm)
    29. Disk /dev/mapper/mediacenter-swap_1: 11.4GB
    30. Sector size (logical/physical): 512B/512B
    31. Partition Table: loop
    32.  
    33. Number  Start  End     Size    File system     Flags
    34.  1      0.00B  11.4GB  11.4GB  linux-swap(v1)
    35.  
    36.  
    37. Model: Linux device-mapper (linear) (dm)
    38. Disk /dev/mapper/mediacenter-root: 988GB
    39. Sector size (logical/physical): 512B/512B
    40. Partition Table: loop
    41.  
    42. Number  Start  End    Size   File system  Flags
    43.  1      0.00B  988GB  988GB  ext4
    44.  
    45. LANG=C sudo fdisk -l /dev/sdb
    46.  
    47. Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
    48. 255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
    49. Units = sectors of 1 * 512 = 512 bytes
    50. Sector size (logical/physical): 512 bytes / 4096 bytes
    51. I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    52. Disk identifier: 0x00000000
    53.  
    54. Disk /dev/sdb doesn't contain a valid partition table
  • SELinuxが無効な事を確認。有効だと正常に起動できない
  1. 交換先( /dev/sdb )での作業。
    1. # 2TBを超えるので、gptラベルを作成すべきだが、マザーボードが対応してないのでmsdosを設定。4パーティションまで(primary x3, extended x1)
    2. sudo parted -s -a optimal /dev/sdb mklabel msdos
    3.  
    4. # /boot 用に255MBを作成
    5. sudo parted -s -a optimal /dev/sdb mkpart primary ext2 1MB 256MB
    6. sudo parted -s -a optimal /dev/sdb set 1 boot on
    7.  
    8. # / 用にVMパーティションを作成。MBRの最大サイズ2TBを指定
    9. sudo parted -s -a optimal /dev/sdb mkpart primary 256MB 2000GB
    10.  
    11. # 残り容量のサイズを指定
    12. sudo parted -s -a optimal /dev/sdb mkpart extended 2000GB 100%
    13. sudo parted -s -a optimal /dev/sdb mkpart logical 2000GB 100%
    14. sudo parted -s -a optimal /dev/sdb set 5 lvm on
    15.  
    16. # 確認
    17. LANG=C sudo parted -l
    18.  
    19. Model: ATA TOSHIBA MD04ACA3 (scsi)
    20. Disk /dev/sdb: 3001GB
    21. Sector size (logical/physical): 512B/4096B
    22. Partition Table: msdos
    23.  
    24. Number  Start   End     Size    Type      File system  Flags
    25.  1      1049kB  256MB   255MB   primary   ext2         boot
    26.  2      256MB   2000GB  2000GB  primary                lvm
    27.  3      2000GB  3001GB  1001GB  extended               lba
    28.  5      2000GB  3001GB  1001GB  logical                lvm
  2. LVM作成
    1. sudo pvcreate /dev/sdb2 /dev/sdb5
    2. sudo vgcreate vg01 /dev/sdb2 /dev/sdb5
    3.  
    4. sudo lvcreate -L 10GB     -n swap_1 vg01
    5. sudo lvcreate -l 100%FREE -n root vg01
    6.  
    7. sudo pvs
    8.   PV         VG          Fmt  Attr PSize   PFree
    9.   /dev/sda5  mediacenter lvm2 a-   931.27g 676.00m
    10.   /dev/sdb2  vg01        lvm2 a-     1.82t      0
    11.   /dev/sdb5  vg01        lvm2 a-   931.87g      0
    12.  
    13. sudo vgs
    14.   VG          #PV #LV #SN Attr   VSize   VFree
    15.   mediacenter   1   2   0 wz--n- 931.27g 676.00m
    16.   vg01          2   2   0 wz--n-   2.73t      0
    17.  
    18. sudo lvs
    19.   LV     VG          Attr   LSize   Origin Snap%  Move Log Copy%  Convert
    20.   root   mediacenter -wi-ao 920.00g
    21.   swap_1 mediacenter -wi-ao  10.61g
    22.   root   vg01        -wi-a-   2.72t
    23.   swap_1 vg01        -wi-a-  10.00g
  3. フォーマット
    1. # /boot
    2. sudo mkfs.ext2 /dev/sdb1
    3.  
    4. # /
    5. sudo mkfs.ext4 /dev/mapper/vg01-root
    6.  
    7. # 一応リサイズ
    8. sudo resize2fs /dev/mapper/vg01-root
    9.  
    10. # swap
    11. sudo mkswap /dev/mapper/vg01-swap_1
  4. 既存ディスクから新ディスクへコピー。サービス(DB等)はなるべく止めておく。LiveCD/USBから起動して作業すると安心。514GBのコピーで95分かかった
    1. sudo mkdir -p /mnt/from-{boot,root}
    2. sudo mkdir -p /mnt/to-{boot,root}
    3. sudo mount /dev/sda1 /mnt/from-boot
    4. sudo mount /dev/mapper/mediacenter-root /mnt/from-root
    5. sudo mount /dev/sdb1 /mnt/to-boot
    6. sudo mount /dev/mapper/vg01-root /mnt/to-root
    7. time sudo rsync -auxHAX --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/lost+found/* --exclude='/*/.gvfs' /mnt/from-boot/ /mnt/to-boot/
    8. time sudo rsync -auxHAX --exclude=/boot --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/lost+found/* --exclude='/*/.gvfs' /mnt/from-root/ /mnt/to-root/
    9. sudo rmdir /mnt/to-root/boot
    10. umount /mnt/from-{boot,root} /mnt/to-{boot,root}
  5. ブートローダー(grub)のインストール。
    1. sudo mount /dev/sdb1 /mnt/to-boot
    2.  
    3. sudo grub-install --boot-directory=/mnt/to-boot/ /dev/sdb
    4. Installation finished. No error reported.
    5.  
    6. sudo umount /mnt/to-boot
  6. fstabを変更。
    • 交換元( /dev/sda )での作業。/dev/sdb構築後、交換して/dev/sdaにするため、/etc/fstabでUUIDを指定し、固定しておく
      1. sudo mount /dev/mapper/vg01-root /mnt/to-root
      2.  
      3. sudo blkid
      4. /dev/sda1: UUID="b599d616-e521-449f-89a0-7f838614bc56" TYPE="ext2"
      5. /dev/sda5: UUID="HOiXD0-6j1h-Q3up-Et62-fvHk-mPIr-Ynglet" TYPE="LVM2_member"
      6. /dev/sdb1: UUID="b26fb917-37f3-4cf3-b031-fd4738226e4c" TYPE="ext2"
      7. /dev/sdb2: UUID="fHeCcf-Xwa9-GS6d-af6D-f06p-hRNU-lx0ff7" TYPE="LVM2_member"
      8. /dev/sdb5: UUID="PnuZoF-Jj7i-cZM0-wLuh-hG0s-KMdD-YGkpdA" TYPE="LVM2_member"
      9. /dev/mapper/mediacenter-root: UUID="e0aeadc6-742f-42b4-b0e4-de4ecd6f5abd" TYPE="ext4"
      10. /dev/mapper/mediacenter-swap_1: UUID="9874055b-0ddc-4910-a319-fc3c1e20ab81" TYPE="swap"
      11. /dev/mapper/vg01-swap_1: UUID="0a0b0a43-8ec7-49d7-bd8f-0002c3988dbf" TYPE="swap"
      12. /dev/mapper/vg01-root: UUID="2d16694d-f16f-415c-a72e-25f3d41af1be" TYPE="ext4"
      13.  
      14. sudo vim /etc/fstab
      15. ----
      16. proc            /proc           proc    nodev,noexec,nosuid 0       0
      17. UUID=e0aeadc6-742f-42b4-b0e4-de4ecd6f5abd /               ext4    errors=remount-ro 0       1
      18. UUID=b599d616-e521-449f-89a0-7f838614bc56 /boot           ext2    defaults        0       2
      19. UUID=9874055b-0ddc-4910-a319-fc3c1e20ab81 none            swap    sw              0       0
    • 交換先での作業。
      1. sudo vim /mnt/to-root/etc/fstab
      2. ----
      3. proc            /proc           proc    nodev,noexec,nosuid 0       0
      4. UUID=2d16694d-f16f-415c-a72e-25f3d41af1be /               ext4    errors=remount-ro 0       1
      5. UUID=b26fb917-37f3-4cf3-b031-fd4738226e4c /boot           ext2    defaults        0       2
      6. UUID=0a0b0a43-8ec7-49d7-bd8f-0002c3988dbf none            swap    sw              0       0
      7. ----
      8.  
      9. sudo umount /mnt/to-root
  7. grub.confを変更
    • 交換先での作業。UUIDを交換先のものにする
      1. sudo mount /dev/sdb1 /mnt/to-boot
      2.  
      3. sudo perl -p -i -e 's/mediacenter-root/vg01-root/g' /mnt/to-boot/grub/grub.cfg
      4.  
      5. # /
      6. sudo perl -p -i -e 's/e0aeadc6-742f-42b4-b0e4-de4ecd6f5abd/2d16694d-f16f-415c-a72e-25f3d41af1be/g' /mnt/to-boot/grub/grub.cfg
      7. # /boot
      8. sudo perl -p -i -e 's/b599d616-e521-449f-89a0-7f838614bc56/b26fb917-37f3-4cf3-b031-fd4738226e4c/g' /mnt/to-boot/grub/grub.cfg
      9. # swap
      10. sudo perl -p -i -e 's/9874055b-0ddc-4910-a319-fc3c1e20ab81/0a0b0a43-8ec7-49d7-bd8f-0002c3988dbf/g' /mnt/to-boot/grub/grub.cfg
      11.  
      12. sudo umount /mnt/to-boot
  8. BIOSで交換先のHDDの優先度を上げる、またはドライブを指定(F11等)して起動。以下のように/bootが/sdb1になっており、/ボリュームサイズも増えているため、交換先のHDDで起動している。
    1. df -h
    2. Filesystem             Size  Used Avail Use% Mounted on
    3. /dev/mapper/vg01-root  2.7T  509G  2.1T  20% /
    4. udev                   1.8G  4.0K  1.8G   1% /dev
    5. tmpfs                  371M  1.1M  370M   1% /run
    6. none                   5.0M     0  5.0M   0% /run/lock
    7. none                   1.9G  644K  1.9G   1% /run/shm
    8. /dev/sdb1              236M   67M  157M  30% /boot
  9. 起動する事がわかったので、交換元のHDDは外しても良い
  • ベンチマーク
    • HDD(交換元): /dev/sda 1TB (Hitachi HDS72101)
      1. sudo hdparm -t /dev/mapper/mediacenter-root
      2.  
      3. /dev/mapper/mediacenter-root:
      4.  Timing buffered disk reads: 392 MB in  3.00 seconds = 130.62 MB/sec
    • HDD(交換後): /dev/sdb 3TB (東芝 MD04ACA300)
      1. sudo hdparm -t /dev/mapper/vg01-root
      2.  
      3. /dev/mapper/vg01-root:
      4.  Timing buffered disk reads: 562 MB in  3.01 seconds = 186.75 MB/sec

添付ファイル: fileTOSHIBA-MD04ACA300.jpg 232件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-18 (土) 13:37:50 (519d)