Cài đặt RAID 1 trên hệ thống LVM trong Ubuntu 10.04

Chia sẻ: Thanh Cong | Ngày: | Loại File: PDF | Số trang:40

0
85
lượt xem
15
download

Cài đặt RAID 1 trên hệ thống LVM trong Ubuntu 10.04

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết sau sẽ hướng dẫn và giải thích với các bạn cách thiết lập, cài đặt phần mềm theo chuẩn RAID1 trên hệ thống LVM đang hoạt dộng trong nền tảng Ubuntu 10.04. Và GRUB2 bootloader sẽ được thiết lập để hệ thống không thể khởi động khi 1 trong 2 ổ cứng có vấn đề. Lưu ý sơ bộ Trong thí nghiệm này sử dụng hệ điều hành Ubuntu 10.04 và 2 ổ cứng (/dev/sda và /dev/sdb), trong đó /dev/sdb không sử dụng, /dev/sda có các phân vùng sau: /dev/sda1: phân vùng boot - ext2 /dev/sda2: là phân...

Chủ đề:
Lưu

Nội dung Text: Cài đặt RAID 1 trên hệ thống LVM trong Ubuntu 10.04

  1. Cài đặt RAID 1 trên hệ thống LVM trong Ubuntu 10.04 Bài viết sau sẽ hướng dẫn và giải thích với các bạn cách thiết lập, cài đặt phần mềm theo chuẩn RAID1 trên hệ thống LVM đang hoạt dộng trong
  2. nền tảng Ubuntu 10.04. Và GRUB2 bootloader sẽ được thiết lập để hệ thống không thể khởi động khi 1 trong 2 ổ cứng có vấn đề. Lưu ý sơ bộ Trong thí nghiệm này sử dụng hệ điều hành Ubuntu 10.04 và 2 ổ cứng (/dev/sda và /dev/sdb), trong đó /dev/sdb không sử dụng, /dev/sda có các phân vùng sau: /dev/sda1: phân vùng boot - ext2 /dev/sda2: là phân vùng extended, có chứa /dev/sda5 /dev/sda5: được sử dụng cho LVM (volume group server1) và có ký tự / (root) và swap (swap_1) Và đến khi kết thúc, chúng ta sẽ có được kết quả như sau: /dev/md0 (tạo ra từ /dev/sda1 và /dev/sdb1): phân vùng /boot - ext2 /dev/md1 (tạo ra từ /dev/sda5 và /dev/sdb5): LVM (volume group server1) có ký tự / (root) và swap (volume swap_1) Còn đây là hiện tại: df -h root@server1:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/server1-root 4.5G 809M 3.5G 19% / none 243M 176K 242M 1% /dev none 247M 0 247M 0% /dev/shm none 247M 36K 247M 1% /var/run none 247M 0 247M 0% /var/lock
  3. none 247M 0 247M 0% /lib/init/rw /dev/sda1 228M 17M 199M 8% /boot root@server1:~# fdisk -l root@server1:~# fdisk -l Disk /dev/sda: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0006b7b7 Device Boot Start End Blocks Id System /dev/sda1 * 1 32 248832 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 32 653 4990977 5 Extended Partition 2 does not end on cylinder boundary. /dev/sda5 32 653 4990976 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
  4. Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table root@server1:~# pvdisplay root@server1:~# pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name server1 PV Size 4.76 GiB / not usable 2.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 1218 Free PE 3 Allocated PE 1215 PV UUID bsF5F5-s2RN-ed1h-zjeb-4mAJ-aktq-kEn86r root@server1:~# vgdisplay root@server1:~# vgdisplay --- Volume group --- VG Name server1 System ID
  5. Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 4.76 GiB PE Size 4.00 MiB Total PE 1218 Alloc PE / Size 1215 / 4.75 GiB Free PE / Size 3 / 12.00 MiB VG UUID hMwXAh-zZsA-w39k-g6Bg-LW4W-XX8q-EbyXfA root@server1:~# lvdisplay root@server1:~# lvdisplay --- Logical volume --- LV Name /dev/server1/root VG Name server1 LV UUID b5A1R5-Zhml-LSNy-v7WY-NVmD-yX1w-tuQVUW
  6. LV Write Access read/write LV Status available # open 1 LV Size 4.49 GiB Current LE 1149 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 251:0 --- Logical volume --- LV Name /dev/server1/swap_1 VG Name server1 LV UUID 2UuF7C-zxKA-Hgz1-gZHe-rFlq-cKW7-jYVCzp LV Write Access read/write LV Status available # open 1 LV Size 264.00 MiB Current LE 66 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 251:1 root@server1:~#
  7. Cài đặt mdadm Một trong những công cụ quan trọng nhất để thiết lập chế độ RAID là mdadm. Sử dụng câu lệnh sau để cài đặt: aptitude install initramfs-tools mdadm Sau đó, tiến hành tải thêm 1 vài module kernel khác (để tránh phải khởi động lại hệ thống): modprobe linear modprobe multipath modprobe raid0 modprobe raid1 modprobe raid5 modprobe raid6 modprobe raid10 Tiếp theo chạy câu lệnh sau: cat /proc/mdstat Và kết quả trả về sẽ có dạng như sau: root@server1:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] unused devices: root@server1:~# Chuẩn bị cho phân vùng /dev/sdb
  8. Để tạo RAID1 array trên hệ thống đang hoạt động sẵn, chúng ta cần chuẩn bị phân vùng /dev/sdb cho RAID1, sau đó copy toàn bộ nội dung của /dev/sda tới phân vùng đó, và cuối cùng thêm /dev/sda tới RAID1 array. Trước tiên ta copy toàn bộ bảng phân vùng từ /dev/sda tới /dev/sdb, vì vậy cả 2 ổ đĩa đều có kết quả như nhau: sfdisk -d /dev/sda | sfdisk --force /dev/sdb Và kết quả trả về sẽ có dạng như sau: root@server1:~# sfdisk -d /dev/sda | sfdisk --force /dev/sdb Checking that no-one is using this disk right now ... Warning: extended partition does not start at a cylinder boundary. DOS and Linux will interpret the contents differently. OK Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an msdos signature /dev/sdb: unrecognized partition table type Old situation: No partitions found New situation: Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sdb1 * 2048 499711 497664 83 Linux /dev/sdb2 501758 10483711 9981954 5 Extended /dev/sdb3 0 - 0 0 Empty
  9. /dev/sdb4 0 - 0 0 Empty /dev/sdb5 501760 10483711 9981952 8e Linux LVM Warning: partition 1 does not end at a cylinder boundary Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).) root@server1:~# Sử dụng câu lệnh sau: fdisk -l và cả 2 ổ cứng sẽ như thế này: root@server1:~# fdisk -l Disk /dev/sda: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0006b7b7 Device Boot Start End Blocks Id System /dev/sda1 * 1 32 248832 83 Linux Partition 1 does not end on cylinder boundary.
  10. /dev/sda2 32 653 4990977 5 Extended Partition 2 does not end on cylinder boundary. /dev/sda5 32 653 4990976 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 * 1 32 248832 83 Linux Partition 1 does not end on cylinder boundary. /dev/sdb2 32 653 4990977 5 Extended Partition 2 does not end on cylinder boundary. /dev/sdb5 32 653 4990976 8e Linux LVM root@server1:~# Tiếp theo, tiến hành chuyển đổi định dạng của 3 phân vùng trên /dev/sdb thành Linux raid autodetect: fdisk /dev/sdb root@server1:~# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
  11. switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
  12. 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16
  13. Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help):
  14. /dev/sda1 * 1 32 248832 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 32 653 4990977 5 Extended Partition 2 does not end on cylinder boundary. /dev/sda5 32 653 4990976 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 * 1 32 248832 fd Linux raid autodetect Partition 1 does not end on cylinder boundary. /dev/sdb2 32 653 4990977 5 Extended Partition 2 does not end on cylinder boundary. /dev/sdb5 32 653 4990976 fd Linux raid autodetect root@server1:~# Để chắc chắn rằng không còn gì sót lại từ quá trình cài đặt RAID trước trên /dev/sdb, thực hiện câu lệnh sau: mdadm --zero-superblock /dev/sdb1 mdadm --zero-superblock /dev/sdb5 Nếu không còn gì sót lại từ RAID trước kia, mỗi câu lệnh bên trên sẽ trả lại thông báo lỗi như sau (không có gì phải lo lắng):
  15. root@server1:~# mdadm --zero-superblock /dev/sdb1 mdadm: Unrecognised md component device - /dev/sdb1 root@server1:~# Còn lại với các trường hợp khác, câu lệnh sẽ không hiển thị bất kỳ thông báo nào. Tạo hệ thống RAID Arrays Trong bước tiếp theo, chúng ta sẽ tiến hành khởi tạo RAID arrays /dev/md0 và /dev/md1. Trong đó, /dev/sdb1 sẽ được thêm vào /dev/md0 và/dev/sdb5 tới /dev/md1. Nhưng /dev/sda1 và /dev/sda5 vẫn chưa thể thêm vào thời điểm hiện tại (bởi vì hệ thống được cài đặt và hoạt động trên những phân vùng này), do vậy ta phải sử dụng cú pháp missing trong các câu lệnh sau: mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5 Câu lệnh: cat /proc/mdstat chỉ ra rằng chúng ta đang có 2 RAID arrays xuống cấp ([_U] hoặc [U_] có nghĩa là 1 array bị xuống cấp, còn [UU] vẫn ổn): root@server1:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sdb5[1] 4990912 blocks [2/1] [_U] md0 : active raid1 sdb1[1] 248768 blocks [2/1] [_U]
  16. unused devices: root@server1:~# Tiếp theo, tạo file hệ thống (ext2) trên RAID array non-LVM /dev/md0: mkfs.ext2 /dev/md0 Và LVM RAID array trên /dev/md1. Để chuẩn bị cho LVM, thực hiện lệnh sau: pvcreate /dev/md1 Sau đó thêm /dev/md1 tới volume group server1: vgextend server1 /dev/md1 Kết quả của pvdisplay sẽ trông giống như sau: root@server1:~# pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name server1 PV Size 4.76 GiB / not usable 2.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 1218 Free PE 3 Allocated PE 1215 PV UUID bsF5F5-s2RN-ed1h-zjeb-4mAJ-aktq-kEn86r
  17. --- Physical volume --- PV Name /dev/md1 VG Name server1 PV Size 4.76 GiB / not usable 1.94 MiB Allocatable yes PE Size 4.00 MiB Total PE 1218 Free PE 1218 Allocated PE 0 PV UUID rQf0Rj-Nn9l-VgbP-0kIr-2lve-5jlC-TWTBGp root@server1:~# Kết quả của vgdisplay sẽ có dạng như sau: root@server1:~# vgdisplay --- Volume group --- VG Name server1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0
  18. Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 9.52 GiB PE Size 4.00 MiB Total PE 2436 Alloc PE / Size 1215 / 4.75 GiB Free PE / Size 1221 / 4.77 GiB VG UUID hMwXAh-zZsA-w39k-g6Bg-LW4W-XX8q-EbyXfA You have new mail in /var/mail/root root@server1:~# Bước tiếp theo là điều chỉnh /etc/mdadm/mdadm.conf như sau: cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig mdadm --examine --scan >> /etc/mdadm/mdadm.conf Hiển thị nội dung của file: cat /etc/mdadm/mdadm.conf Và bạn sẽ thấy thông tin chi tiết của 2 RAID array: # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. #
  19. # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST # instruct the monitoring daemon where to send mail alerts MAILADDR root # definitions of existing MD arrays # This file was auto-generated on Wed, 16 Jun 2010 20:01:25 +0200 # by mkconf $Id$ ARRAY /dev/md0 level=raid1 num-devices=2 UUID=90f05e41:bf936896:325ecf68:79913751 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=1ab36b7f:3e2031c0:325ecf68:79913751 Tiếp theo là chính sửa /etc/fstab: vi /etc/fstab # /etc/fstab: static file system information. #
  20. # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name # devices that works even if disks are added and removed. See fstab(5). # # proc /proc proc nodev,noexec,nosuid 0 0 /dev/mapper/server1-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation #UUID=67b1337f-89a2-4729-a6c8-6d43ba82d1f1 /boot ext2 defaults 0 2 /dev/md0 /boot ext2 defaults 0 2 /dev/mapper/server1-swap_1 none swap sw 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 Thay thế /dev/sda1 với /dev/md0 trong /etc/mtab: vi /etc/mtab /dev/mapper/server1-root / ext4 rw,errors=remount-ro 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 none /sys sysfs rw,noexec,nosuid,nodev 0 0 none /sys/fs/fuse/connections fusectl rw 0 0 none /sys/kernel/debug debugfs rw 0 0 none /sys/kernel/security securityfs rw 0 0 none /dev devtmpfs rw,mode=0755 0 0 none /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0 none /dev/shm tmpfs rw,nosuid,nodev 0 0 none /var/run tmpfs rw,nosuid,mode=0755 0 0 none /var/lock tmpfs rw,noexec,nosuid,nodev 0 0
Đồng bộ tài khoản