先在虚拟机上添加两块硬盘
查看一下操作系统
# uname -a Linux web1.abc.local 2.6.32-358.el6.x86_64#1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4(Santiago) 查看mdadm的版本信息 # rpm -qi mdadm Name : mdadm Relocations: (not relocatable) Version : 3.2.5 Vendor: Red Hat, Inc. Release : 4.el6 Build Date: Fri 07 Dec2012 12:14:45 AM CST Install Date: Fri 01 Aug 2014 06:05:19 PMCST Build Host:x86-003.build.bos.redhat.com Group : System Environment/Base Source RPM: mdadm-3.2.5-4.el6.src.rpm Size : 860588 License: GPLv2+ Signature : RSA/8, Mon 28 Jan 2013 10:48:06 PM CST, Key ID 199e2f91fd431d51 Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> URL : http://www.kernel.org/pub/linux/utils/raid/mdadm/ Summary : The mdadm program controls Linux md devices (software RAID arrays) Description : The mdadm program is used to create,manage, and monitor Linux MD (software RAID)devices. As such, it provides similarfunctionality to the raidtools package. However, mdadm is a single program, and it can perform almost all functions without aconfiguration file, though a configuration file can be used to help with some commontasks.
分区操作
# fdisk /dev/sdb WARNING:DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m forhelp): p Disk /dev/sdb:32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x09a1a34a Device Boot Start End Blocks Id System Command (m forhelp): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-3916, default 1): Using defaultvalue 1 Last cylinder, +cylinders or +size{K,M,G}(1-3916, default 3916): Using default value 3916 Command (m forhelp): p Disk /dev/sdb:32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x09a1a34a Device Boot Start End Blocks Id System /dev/sdb1 1 3916 31455238+ 83 Linux Command (m forhelp): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
对dev/sdc进行同样的操作
通过fdisk -l查看
# fdisk -l /dev/sdb Disk /dev/sdb:32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x09a1a34a Device Boot Start End Blocks Id System /dev/sdb1 1 3916 31455238+ 83 Linux # fdisk -l /dev/sdc Disk /dev/sdc:32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (minimum/optimal): 512 bytes / 512bytes Disk identifier: 0x6881f1ac Device Boot Start End Blocks Id System /dev/sdc1 1 3916 31455238+ 83 Linux
2.建立RAID1
# mdadm -C /dev/md0 -l 1 -n 2/dev/sdb1 /dev/sdc1 mdadm: Note: this array has metadata at thestart and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
输入tail -f /var/log/messages打开日志,在日志中可看到如下内容
md: bind<sdb1> md: bind<sdc1> md: raid1 personality registered for level1 bio: create slab <bio-1> at 1 md/raid1:md0: not clean -- startingbackground reconstruction md/raid1:md0: active with 2 out of 2mirrors md0: detected capacity change from 0 to32193249280 md: resync of RAID array md0 md: minimum _guaranteed_ speed: 1000 KB/sec/disk. md: using maximum available idle IObandwidth (but not more than 200000 KB/sec) for resync. md: using 128k window, over a total of31438720k. md0:unknown partition table
3.创建文件系统
先格式化该磁盘阵列
# mkfs.ext4 /dev/md0 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1966080 inodes, 7859680 blocks 392984 blocks (5.00%) reserved for thesuper user First data block=0 Maximum filesystem blocks=4294967296 240 block groups 32768 blocks per group, 32768 fragments pergroup 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inodetables: done Creating journal (32768 blocks): done Writing superblocks and filesystemaccounting information: done This filesystemwill be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 挂载 # mount /dev/md0 /data # ll /data total 16 drwx------2 root root 16384 Aug 13 19:18 lost+found # vi /etc/fstab # # /etc/fstab # Created by anaconda on Fri Aug 1 18:02:23 2014 # # Accessible filesystems, by reference, aremaintained under '/dev/disk' # See man pagesfstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/VolGroup-lv_root / ext4 defaults 1 1 UUID=e3738a2c-63a9-4c8d-99db-8e0794534f45/boot ext4 defaults 1 2 /dev/mapper/VolGroup-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/md0 /data ext4 defaults 0 0
# mdadm -Ds ARRAY /dev/md0 metadata=1.2name=web1.abc.local:0 UUID=562b4e91:606904d1:33e5d565:e5a9f609
写入到配置文件
# mdadm -Ds >>/etc/mdadm.conf
重新启动验证
# reboot # mount /dev/mapper/VolGroup-lv_root on / type ext4(rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/md0 on /data type ext4 (rw) none on /proc/sys/fs/binfmt_misc typebinfmt_misc (rw) [root@web1 ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[0] sdc1[1] 31438720 blocks super 1.2 [2/2] [UU] unused devices: <none>
4.模拟故障
删除一块硬盘
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[0](F) sdc1[1] 31438720 blocks super 1.2 [2/1] [_U] unused devices: <none>
5.RAID1重建
新添加一块名为30GBC的磁盘
在线加入新组成单元
# mdadm /dev/md0 -a /dev/sdb1 # cat /proc/mdstat