在已运行的CentOS 5.3上建立Linux Software Raid 1 and raid5
在已运行的CentOS 5.3上建立Linux Software Raid 1本来想自己写一个的,不过看到网上有达人已经写了,就无耻的转载了。
我用红字标注自己的备注。
还要补充几个mdadm的命令,万一有什么闪失的话,备用
1. 从raid中移出一个分区
mdadm –manage /dev/md1 –remove /dev/sda1
2. 停用一个md设备
mdadm –stop /dev/md1
原文见:http://hi.baidu.com/enjoyunix/blog/item/4f152e3d820dfc0abba167ca.html
FT越来越爱用软Raid,因为实在廉价性能与硬Raid差别不大。而且最重要的功能是监控磁盘的状况。呵呵~~
这篇文章介绍如何在运营中的CentOS 5.3系统上安装上软Raid。 马上开始:
看看我们的磁盘结构
/dev/sda1: /boot partition, ext3;
/dev/sda2: swap;
/dev/sda3: / partition, ext3
分区的结构和我的完全一样。
我想把以上的磁盘转换为 md0、md1、md2
/dev/md0 (made up of /dev/sda1 and /dev/sdb1): /boot partition, ext3;
/dev/md1 (made up of /dev/sda2 and /dev/sdb2): swap;
/dev/md2 (made up of /dev/sda3 and /dev/sdb3): / partition, ext3
# df -h
Filesystem SizeUsed Avail Use% Mounted on
/dev/sda3 9.1G1.1G7.6G12% /
/dev/sda1 190M 12M169M 7% /boot
tmpfs 252M 0252M 0% /dev/shm
# fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks IdSystem
/dev/sda1 * 1 25 200781 83Linux
/dev/sda2 26 90 522112+82Linux swap / Solaris
/dev/sda3 91 1305 9759487+83Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn’t contain a valid partition table
安装需要用到的软件
#yum install mkinitrd mdadm
把模组到核心挂载
#modprobe linear
#modprobe multipath
#modprobe raid0
#modprobe raid1
#modprobe raid5
#modprobe raid6
#modprobe raid10
前期的功夫都准备好了!现在正式开始
1. 把磁盘挂上,分区。
#sfdisk -d /dev/sda | sfdisk /dev/sdb
把/dev/sda 的分区附到 /dev/sdb上
第一次看到sfdisk,记一下
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now …
OK
Disk /dev/sdb: 1305 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 #sectorsIdSystem
/dev/sdb1 * 63 401624 40156283Linux
/dev/sdb2 401625 1445849 104422582Linux swap / Solaris
/dev/sdb3 144585020964824 1951897583Linux
/dev/sdb4 0 - 0 0Empty
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).)
然后把/dev/sdb 3个分区改变id 为 fd
#fdisk /dev/sdb
按t 然后 1 然后 fd
按t 然后 2 然后 fd
按t 然后 fd
最后w
为安全起见,把/dev/sdb 上的raid设备初次化
#mdadm –zero-superblock /dev/sdb1
#mdadm –zero-superblock /dev/sdb2
#mdadm –zero-superblock /dev/sdb3
raid设备初始化这步我是省略了。
2 建立software Raid 1
#mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
#mdadm –create /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb2
#mdadm –create /dev/md2 –level=1 –raid-disks=2 missing /dev/sdb3
格式化
#mkfs.ext3 /dev/md0
#mkswap /dev/md1
#mkfs.ext3 /dev/md2
写入/etc/mdadm.conf
#mdadm –examine –scan > /etc/mdadm.conf
建立临时目录
#mkdir /mnt/md0
#mkdir /mnt/md2
挂载
#mount /dev/md0 /mnt/md0
#mount /dev/md2 /mnt/md2
修改 /etc/fstab
#vim /etc/fstab
/dev/md2 / ext3 defaults 1 1
/dev/md0 /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devptsgid=5,mode=6200 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/md1 swap swap defaults 0 0
开机时自动把 / 分区 挂载到 /dev/md2
开机时自动把 /boot 分区 挂载到 /dev/md0
其实这里改/etc/fstab是为了下一步mkinitrd时,以及为了以后升级kernel时,可以把root=/dev/md2写入grub.conf
修改/etc/mtab
#vim /etc/mtab
/dev/md2 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/md0 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
为毛要改/etc/mtab?不懂,照做!
开机时自动把 / 分区 挂载到 /dev/md2
开机时自动把 /boot 分区 挂载到 /dev/md0
修改/boot/grub/menu.lst
[...]
#加入#title CentOS (2.6.18-128.el5)
#加入# root (hd1,0)
#加入# kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
#加入# initrd /initrd-2.6.18-128.el5.img
#原来#title CentOS (2.6.18-128.el5)
#原来# root (hd0,0)
#原来# kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/
#原来# initrd /initrd-2.6.18-128.el5.img
告诉grub开启服务器时root的位置.
调整ramdisk 现在的分区状况
#mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
#mkinitrd /boot/initrd-`uname -r`.img `uname -r`
复制数据
#cp -dpRx / /mnt/md2
#cp -dpRx /boot/ /mnt/md0
为毛要cp,不能直接在最后做mirroring吗?
cp的这个参数有什么讲究吗?
3. 告诉GRUB boot sector 位置
#grub
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
完成:重启动
#reboot
4.把/dev/sda 加入到software Raid 1 中
#fdisk /dev/sda
按t 然后 1 然后 fd
按t 然后 2 然后 fd
按t 然后 fd
最后w
加入到Software Raid 1
#mdadm --add /dev/md0 /dev/sda1
#mdadm --add /dev/md1 /dev/sda2
#mdadm --add /dev/md2 /dev/sda3
查看重建Software Raid 1的情况
# cat /proc/mdstat
Personalities :
md0 : active raid1 sda1 sdb1
200704 blocks
md1 : active raid1 sda2 sdb2
522048 blocks
md2 : active raid1 sda3 sdb3
9759360 blocks
[====>................]recovery = 22.8% (2232576/9759360) finish=2.4min speed=50816K/sec
unused devices: <none>
同步完成后把Software Raid 1 状态写入/etc/mdadm.conf
#mdadm --examine --scan > /etc/mdadm.conf
5.更好地修改/boot/grub/menu.list
title CentOS (2.6.18-128.el5)
root (hd1,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
initrd /initrd-2.6.18-128.el5.img
title CentOS (2.6.18-128.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
initrd /initrd-2.6.18-128.el5.img
告诉GRUB两块磁盘都可以随时启动.
http://www.cnblogs.com/buffer/archive/2011/07/26/2116903.html 1:Raid定义
RAID,全称Redundant Array of Inexpensive Disks,中文名为廉价磁盘冗余阵列.RAID可分为软RAID和硬RAID,软RAID是通过软件实现多块硬盘冗余的.而硬RAID是一般通过RAID卡来实现RAID的.前者配置简单,管理也比较灵活.对于中小企业来说不失为一最佳选择.硬RAID往往花费比较贵.不过,在性能方面具有一定优势.
2:RAID分类
RAID可分为以下几种,做个表格认识下:
RAID 0 存取速度最快 没有容错
RAID 1 完全容错 成本高,硬盘使用率低.
RAID 3 写入性能最好 没有多任务功能
RAID 4 具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈
RAID 5 具备多任务及容错功能 写入时有overhead
RAID 0+1 速度快、完全容错 成本高
3:Linux RAID 5实验详解
假设我有4块硬盘,(没有条件的朋友可以用虚拟机设置出4块硬盘出来).分别为/dev/sda /dev/sdb /dev/sdc /dev/sdd.首先做的就是分区了.
# fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won’t be recoverable.
Warning: invalid flag 0×0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n #按n创建新分区
Command action
e extended
p primary partition (1-4) #输入p 选择创建主分区
p
Partition number (1-4): 1 #输入 1 创建第一个主分区
First cylinder (1-130, default 1): #直接回车,选择分区开始柱面这里就从 1 开始
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 130):
Using default value 130
Command (m for help): w #然后输入w写盘
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
其它分区照这样做全部分出一个区出来.下面是总分区信息:
# fdisk -l
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 130 1044193+ 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux
Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ 83 Linux
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 130 1044193+ 83 Linux
下一步就是创建RAID了.
# mdadm –create /dev/md0 –level=5 –raid-devices=3 –spare-devices=1 /dev/sd1 #意思是创建RAID设备名为md0, 级别为RAID 5
mdadm: array /dev/md0 started. 使用3个设备建立RAID,空余一个做备用.
OK,初步建立了RAID了,我们看下具体情况吧.
# mdadm –detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Fri Aug 3 13:53:34 2007
Raid Level : raid5
Array Size : 2088192 (2039.25 MiB 2138.31 MB)
Device Size : 1044096 (1019.63 MiB 1069.15 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri Aug 3 13:54:02 2007
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 -1 spare /dev/sdd1
UUID : e62a8ca6:2033f8a1:f333e527:78b0278a
Events : 0.2
让RAID开机启动.配置RIAD配置文件吧.默认名字为mdadm.conf,这个文件默认是不存在的,要自己建立.该配置文件存在的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理.
说明下,mdadm.conf文件主要由以下部分组成:DEVICES选项制定组成RAID所有设备, ARRAY选项指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号.
# mdadm –detail –scan > /etc/mdadm.conf
# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a
devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
#默认格式是不正确的,需要做以下方式的修改:
# vi /etc/mdadm.conf
# cat /etc/mdadm.conf
devices /dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a
将/dev/md0创建文件系统,
# mkfs.ext3 /dev/md0
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
261120 inodes, 522048 blocks
26102 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.内容
挂载/dev/md0到系统中去,我们实验是否可用:
# cd /
# mkdir mdadm
# mount /dev/md0 /mdadm/
# cd /mdadm/
# ls
lost+found
# cp /etc/services .
# ls
lost+found services
好了,如果其中某个硬盘坏了会怎么样呢?系统会自动停止这块硬盘的工作,然后让后备的那块硬盘顶上去工作.我们可以实验下.
# mdadm /dev/md0 –fail /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0
# cat /proc/mdstat
Personalities :
md0 : active raid5 sdc1(F) sdd1 sdb1 sda1 # F标签以为此盘为fail.
2088192 blocks level 5, 64k chunk, algorithm 2
unused devices:
如果我要移除一块坏的硬盘或添加一块硬盘呢?
#删除一块硬盘
# mdadm /dev/md0 –remove /dev/sdc1
mdadm: hot removed /dev/sdc1
# cat /proc/mdstat
Personalities :
md0 : active raid5 sdd1 sdb1 sda1
2088192 blocks level 5, 64k chunk, algorithm 2
unused devices:
#增加一块硬盘
# mdadm /dev/md0 –add /dev/sdc1
mdadm: hot added /dev/sdc1
# cat /proc/mdstat
Personalities :
md0 : active raid5 sdc1 sdd1 sdb1 sda1
2088192 blocks level 5, 64k chunk, algorithm 2
unused devices:
http://www.opsers.org/linux-home/base/detailed-set-up-linux-software-raid-5-tutorial-environment.html
http://video.sina.com.cn/search/index.php?k=raid&page=1 本帖最后由 liyihongcug 于 2011-09-27 16:08 编辑
http://blog.163.com/buypc_hao/blog/static/107920775200931543343346/
http://blog.sina.com.cn/s/blog_5f66526e0100jo0t.html
我用两个完全相同的硬盘做raid1安装centos5 ,两个盘分别为/dev/hda和/dev/hdb 系统的主引导区也放在raid 1的/boot分区中。
结果某天hdb硬盘出故障了,我拆掉了hdb,让系统以单硬盘启动,用cat /proc/mdstat查看了下:
centos <wbr>raid <wbr>1 <wbr>恢复方法
raid1 缺少了块硬盘。
我买了块一样型号的硬盘,关机插上硬盘后,启动系统
这时可以查看到新加的硬盘hdb
centos <wbr>raid <wbr>1 <wbr>恢复方法
导入hda的分区表:
# /sbin/sfdisk -d /dev/hda > partitions.hda
再把此分区导入新加的盘
# /sbin/sfdisk -d /dev/hdb < partitions.hda
# /sbin/mdadm /dev/md0 -a /dev/hdb3
# /sbin/mdadm /dev/md1 -a /dev/hdb2
# /sbin/mdadm /dev/md2 -a /dev/hdb1
# /sbin/cat /proc/mdstat
块 17 G 的 SCSI 硬盘。
1、安装 CentOS 时在 Disk Setup 步骤时采用人工操作;
2、先单独在第 1 块硬盘上创建 / 分区 (root 分区);
3、在第 1 块硬盘上依次按 Raid 按钮建立需要的分区;
(选择 Create a software raid 选项)
在第 2 块硬盘上同样操作,分区个数和大小相同;
4、再按 Raid 按钮建立 Raid 的 逻辑盘;
(选择 Create a Raid device 选项)
Raid level: Raid 1
Raid members: 选择分别位于第 1 ,2 块硬盘上的 2 个对应 Raid 分区
重复 N 次直至各个盘都创建完毕。
/dev/md0 /var ext3 4996.78 (5GB)
/dev/md1 swap 1200.17 (1.2GB)
/dev/md2 /boot ext3 996.188 (1GB)
/dev/md3 /usr ext3 9169.88 (9GB)http://bbs.et8.net/bbs/showthread.php?t=832785 最好的 冗余磁盘命令
Centos 5 创建软件Raid (Mdadm用法)
post by 后山一根葱 / 2011-5-1 7:50 Sunday
系统环境:Centos 5
事项:Centos 5 创建软件Raid 即 Mdadm用法
基本语法 : mdadm <raid-device> <component-devices>
mode 有7种:
Assemble:将以前定义的某个阵列加入当前在用阵列。
Build:Build a legacy array ,每个device 没有 superblocks
Create:创建一个新的阵列,每个device 具有 superblocks
Manage: 管理阵列,比如 add 或 remove
Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。
Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态
Grow:改变raid 容量或 阵列中的 device 数目
可用的 :
-A, --assemble:加入一个以前定义的阵列
-B, --build:Build a legacy array without superblocks.
-C, --create:创建一个新的阵列
-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分
-D, --detail:打印一个或多个 md device 的详细信息
-E, --examine:打印 device 上的 md superblock 的内容
-F, --follow, --monitor:选择 Monitor 模式
-G, --grow:改变在用阵列的大小或形态
-h, --help:帮助信息,用在以上选项后,则显示该选项信息
--help-options
-V, --version
-v, --verbose:显示细节
-b, --brief:较少的细节。用于 --detail 和 --examine 选项
-f, --force
-c, --config= :指定配置文件,缺省为 /etc/mdadm .conf
-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。
配置文件/etc/mdadm .conf
可以通过以下方式生成配置文件
mdadm -Ds >> /etc/mdadm.conf
mdadm .conf 格式:
DEVICE 所用到的设备分区列表(在mdadm 扫描时,将扫描这些分区)
ARRAY 定义实际的磁盘阵列
简单实例:
DEVICE /dev/sda10 /dev/sda11 /dev/sdb10 /dev/sdb11
ARRAY /dev/md0 devices=/dev/sda11, /dev/sda10
1.实战RAID
下面将通过实际操作,创建一个RAID1:
1.1 格式化待做软RAID的分区:
准备两个待做RAID1的分区/dev/sda10, /dev/sdb10:
要求: 大小近乎相等,格式为Linux raid autodetect (即:fd);
# fdisk /dev/sda //使用fdisk创建分区
The number of cylinders for this disk is set to 9964.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n //新建分区
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1012-9964, default 1012):
Using default value 1012
Last cylinder or +size or +sizeM or +sizeK (1012-1039, default 1012): 1025
Command (m for help): p //查看当前分区情况
Disk /dev/sda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 9964 80035798+ 5 Extended
/dev/sda5 917 927 88326 7 HPFS/NTFS
/dev/sda6 928 996 554211 b Win95 FAT32
/dev/sda7 997 1011 120456 7 HPFS/NTFS
/dev/sda8 1040 9964 71690031 83 Linux
/dev/sda9 1 916 7357707 83 Linux
/dev/sda10 1012 1025 112423+ 83 Linux
Partition table entries are not in disk order
Command (m for help): t //更改分区类型;
Partition number (1-10): 10
Hex code (type L to list codes): fd //设置分区类型为 Linux raid autodetect;
Command (m for help): w //保存退出;
# fdisk -l /dev/sda //查看驱动"/dev/sda"分区
Disk /dev/sda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 9964 80035798+ 5 Extended
/dev/sda5 917 927 88326 7 HPFS/NTFS
/dev/sda6 928 996 554211 b Win95 FAT32
/dev/sda7 997 1011 120456 7 HPFS/NTFS
/dev/sda8 1040 9964 71690031 83 Linux
/dev/sda9 1 916 7357707 83 Linux
/dev/sda10 1012 1025 112423+ fd Linux raid autodetect
Partition table entries are not in disk order
# fdisk -l /dev/sdb //同样创建另一分区/dev/sdb10
Disk /dev/sdb: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb2 4501 9964 43889580 5 Extended
/dev/sdb3 667 4500 30796605 83 Linux
/dev/sdb4 658 666 72292+ 83 Linux
/dev/sdb5 5114 5362 2000061 83 Linux
/dev/sdb6 5751 5878 1028128+ 83 Linux
/dev/sdb7 5721 5750 240943+ 83 Linux
/dev/sdb8 5620 5720 811251 83 Linux
/dev/sdb9 6261 9964 29752348+ 83 Linux
/dev/sdb10 4501 4514 112423+ fd Linux raid autodetect
Partition table entries are not in disk order
创建RAID1
#mdadm -C --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda10 /dev/sdb10
#或 mdadm -Cv /dev/md0 -l1 -n2 /dev/sda10 /dev/sdb10
mdadm : chunk size defaults to 64K
mdadm : /dev/sda10 appears to contain an ext2fs file system
size=112320K mtime=Sat Jan 1 06:39:59 2011
mdadm : /dev/sdb10 appears to be part of a raid array:
size=112320K ctime=Sat Jan 1 02:45:14 2011
Continue creating array? y
mdadm : array /dev/md0 started.
# mkfs.ext3 /dev/md0 //格式化raid分区类型为ext3
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
28112 inodes, 112320 blocks
5616 blocks (5.00%) reserved for the super user
First data block=1
14 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# mdadm -D /dev/md0 //查看raid信息
/dev/md0:
Version : 00.90.01
Creation Time : Sat Jan 1 02:45:14 2011
Raid Level : raid1
Array Size : 112320 (109.71 MiB 115.02 MB)
Device Size : 112320 (109.71 MiB 115.02 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sat Jan 1 05:08:27 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
Events : 0.10
Number Major Minor RaidDevice State
0 8 10 0 active sync /dev/sda10
1 8 26 1 active sync /dev/sdb10
# cat /proc/mdstat
Personalities :
md0 : active raid1 sda10 sdb10
112320 blocks raid autodetect
unused devices: <none>
# mount /dev/md0 /share/raid //挂载raid
# cp /share/partitionA2 /share/raid
# ls /share/raid
lost+found asdf.asf
netatalk.tar
# umount /share/raid
# mdadm /dev/md0 -r /dev/sda10 //将sda10从raid中移除
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Sat Jan 1 02:45:14 2000
Raid Level : raid1
Array Size : 112320 (109.71 MiB 115.02 MB)
Device Size : 112320 (109.71 MiB 115.02 MB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sat Jan 1 05:30:28 2000
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
Events : 0.52
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 26 1 active sync /dev/sdb10
# cat /proc/mdstat
Personalities :
md0 : active raid1 sdb10
112320 blocks
unused devices: <none>
将sda10的分区类型改为linux (即83),然后重启,重新挂载,查看分区里的文件:
# fdisk /dev/sda
t-->11 --> 83 --> w
# reboot
# mount /dev/sda10 /share/partition
# ls /share/partition
lost+found asdf.asf
netatalk.tar
和原来作为raid时的内容完全一样,说明raid1 的确是在每个硬盘都写入数据,有较高的可靠性。
1.3 数据恢复:
下面在sda上新建另一分区,sda11,并把它作为raid1的一个分区,即替代原来的sda10;
# mdadm /dev/md0 -a /dev/sda11
mdadm : hot added /dev/sda11
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Sat Jan 1 02:45:14 2000
Raid Level : raid1
Array Size : 112320 (109.71 MiB 115.02 MB)
Device Size : 112320 (109.71 MiB 115.02 MB)
Raid Devices : 2
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sat Jan 1 05:50:00 2000
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
UUID : 797b80d8:4b70e2d1:7e427c7e:c9546d1b
Events : 0.111
Number Major Minor RaidDevice State
0 8 11 0 active sync /dev/sda11
1 8 26 1 active sync /dev/sdb10
# mount /dev/md0 /share/raid
# ls /share/raid
lost+found asdf.asf
netatalk.tar
1.4 其他操作:
# mdadm -S /dev/md0 (停止raid)
# mdadm -As /dev/md0 (根据mdadm .conf文件启动raid)
# modprobe raid0.ko
# lsmod
raid0 5984 0 - Live 0xbf000000
# mdadm -C --verbose /dev/md0 -l0 -n2 /dev/sda11 /dev/sdb11 (raid0)
# modprobe xor.ko
# modprobe raid5.ko
# lsmod
Module Size Used by Not tainted
raid5 20544 0 - Live 0xbf006000
xor 5544 1 raid5, Live 0xbf003000
raid0 5984 0 - Live 0xbf000000
# mdadm -C --verbose /dev/md0 -l5 -n3 /dev/sda10 /dev/sda11 /dev/sdb11 (raid5)
常用命令:
mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb7 /dev/sdb8 //创建Raid
mdadm -D /dev/md0 //查看Raid
mdadm -S /dev/md0 //停止Raid
mdadm -R /dev/md0 //
mdadm -As (-s指pg mdadm 的配置文件,如果没有指定,则使用/etc/mdadm .conf
http://www.qiujicai.com/?post=49
要点
#mdadm -C --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda10 /dev/sdb10
# mkfs.ext3 /dev/md0 //格式化raid分区类型为ext3
# mdadm -D /dev/md0 //查看raid信息
测试
# mount /dev/md0 /share/raid //挂载raid
# cp /share/partitionA2 /share/raid
测试移除
# umount /share/raid
# mdadm /dev/md0 -r /dev/sda10 //将sda10从raid中移除
# mdadm -D /dev/md0
数据恢复:
下面在sda上新建另一分区,sda11,并把它作为raid1的一个分区,即替代原来的sda10;
# mdadm /dev/md0 -a /dev/sda11
mdadm : hot added /dev/sda11
# mdadm -D /dev/md0 Linux裸设备总结(ZT)
2009-12-31 17:15
1、什么裸设备?字符设备?块设备?
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。
字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。
块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。
2、一个系统可以有多少个裸设备?
这个与linux的版本相关,在旧版本中,最多只可以有256个裸设备,Linux 4下做多可以绑定8192个裸设备。
但是在linux下,最多只能有255个分区,所以,如果用裸设备绑定分区,最多只能绑定255个裸设备。
如果是用lvm,则没有这个限制。
3、Linux下单个磁盘最多可以有多少个分区?
15个。3个主分区 + 1个扩展分区 + 11个逻辑分区。
建议的分区方法是:先分3个主分区,第四个分区为扩展分区,然后在扩展分区中再分成11个逻辑分区。
注意,裸设备不要绑定在扩展分区上。
4、linux下是否需要绑定裸设备?unix呢?
linux下如果需要使用裸设备,则需要手工进行绑定。
unix下则不用。
因为Unix中每一个块设备都会有一个对应的字符设备用于非缓存(unbuffered)I/O,这就是他对应的裸设备了。
而Linux中rawio的则实现了一套非绑定(unbound)的裸设备/dev/rawN或者/dev/raw/rawN和一个控制设备 /dev/rawct用来把他们绑定到块设备上。所以当需要使用一个裸设备的时候,就需要把他和一个真实存在的块设备对应起来,这一个步骤实际上就是完成 了Unix里的自动对应一个非缓存字符设备。
5、linux如何绑定裸设备?
两种方式:
1)命令绑定
raw /dev/raw/raw /dev/xxx
其中n的范围是0-8191。raw目录不存在可以创建。
执行这个命令,就会在/dev/raw下生成一个对应的raw文件
用命令方式绑定裸设备在系统重启后会失效。
2)修改文件
修改/etc/sysconfig/rawdevices文件如下,以开机时自动加载裸设备,如:
/dev/raw/raw1 /dev/sdb1
这种方式是通过启动服务的方式来绑定裸设备。
也可以把这个命令写在/etc/rc.local上,使每次启动都执行这些命令。
6、如何把裸设备作为oracle数据文件?有什么需要注意的?
1)绑定裸设备
参考上文
2)改变裸设备属主
两种方法:
. 把命令卸载/etc/rc.local上
chown oracle:oinstall /dev/raw/raw1
. 修改/etc/udev/permissions.d/50-udev.permissions文件
将/etc/udev/permissions.d/50-udev.permissions的113行
从
raw/*:root:disk:0660
修改为
raw/*:oracle:oinstall:0660
这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660。
如果是用lvm,也需要把逻辑卷绑定到裸设备上,过程和绑定到普通分区类似。
7、使用裸设备作为oracle数据文件有什么需要注意的?
使用裸设备作为oracle的数据文件必须注意以下几点:
1)一个裸设备只能放置一个数据文件
2)数据文件的大小不能超过裸设备的大小
如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)
如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)
为了简单起见,对所有的文件设置称比裸设备小1M即可。
3)数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小
8、是否可以直接用逻辑卷作为oracle数据文件?
linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。
9、如何知道当前绑定了什么裸设备?
rqw -qa命令列出当前绑定的所有裸设备。
10、如何知道某个裸设备的大小
比较笨的办法是,找出看裸设备对应的是那个实际的块设备,然后用fdisk -l /dev/dXN看那个块设备的大小就好了。
比较简单的办法是用blockdev命令来计算,如:
#blockdev --getsize /dev/raw/raw1
11718750
11718750表示有多少OS BLIOCK。
一般一个OS BLOCK大小是512字节,所以11718750*512/1024/1024/1024 = 5722(m) 就是裸设备的大小。
11、数据库中可以同时以文件和裸设备作为数据文件吗?
可以。甚至在同一个表空间中,也可以部分数据文件用文件系统,部分文件用裸设备。
但是不建议这样做,因为会增加管理的复杂度。
12、可以把至于裸设备的数据文件设成自动扩展吗?
可以,但同时要设置maxsize,且maxsize不能超过:裸设备大小 - 2*db_block_size
13、如何修改裸设备的默认权限
两种方法:
1)要修改/etc/rc.d/rc.local文件,加入如下:
chown root:oinstall /dev/raw/raw1
chown root:oinstall /dev/raw/raw2
chown root:oinstall /dev/raw/raw3
...
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
...
2)实际上还有更简单的方法就是,修改/etc/udev/permissions.d/50-udev.permissions文件:
raw/*:root:disk:0660
为
raw/*:root:oinstall:0660
这样就可以了!
14、如何取消裸设备的绑定
用raw把major and minor设成0就可以取消裸设备的绑定。如:
raw /dev/raw/raw1 0 0
这个命令取消绑定裸设备的绑定,/dev/raw/raw1会被删除
15、裸设备可以绑定的对象可以什么?
可以绑定整个没有分区的硬盘、可以绑定硬盘的某个分区、可以绑定逻辑卷等。
//***************************************************************************************************************
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Linux通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作,不经过文件系统的缓冲.
1.裸设备的创建
裸设备的分区可以是没有格式化的普通分区,也可以是LVM中没有格式化的LV
#vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/vg01/lv02
其中/dev/raw/raw1为裸设备,/dev/vg01/lv02为对应分区
2.激活裸设备
#service rawdevices restart
3.裸设备在oracle中的使用
1).更改权限
如果是供oracle使用,则需修改/dev/raw/*的权限:
#chown root:dba /dev/raw/*
#chmod g+w /dev/raw/*
2).在裸设备上创建数据文件
create tablespace raw_ts
datafile ‘/dev/raw/raw1’ size 100m,
‘/dev/raw/raw2’ size 100m
//***********************************
http://hi.baidu.com/danghj/blog/item/1760e3f26c8aa718b07ec5ae.html 本帖最后由 liyihongcug 于 2011-09-27 18:37 编辑
存储设备之NAS
http://social.technet.microsoft.com/Forums/en/winserverfiles/thread/8ac66914-1e23-40ad-bbfa-bb36c32cedf5
http://www.linuxquestions.org/questions/linux-server-73/mount-block-device-is-write-protected-mounting-read-only-572371/
http://forums.buffalotech.com/t5/Storage/How-to-Mount-NFS-on-a-Windows-2008-server/td-p/35849
一 NAS
1)NAS 的定义
NAS 的中文名称是网络附加存储,是基于硬盘的专业存储技术。它可以直接接入计算机网络,为各种操作系统的客户端提供集中式的数据存取服务。
2)NAS 的优势
NAS 的专业存储设计和为多种客户端服务的特点,让数据更加安全和便于访问。不像一般的存储设备,如 U 盘、1394接口存储或者CD / DVD,NAS 拥有嵌入式操作系统。操作系统赋予 NAS 内置的智能,支持它独立的在网络上为各种客户端提供服务。NAS不需要依靠任何其他主机设备,不会出现当其他设备停机,NAS 就不能访问的问题。另外,NAS 包括了 RAID 技术,数据在多个硬盘间作冗余备份,一旦某个硬盘遇到硬件故障也可以提供轻松的数据恢复。
3) NAS 支持不同的操作系统平台
由于删减了自身操作系统的多余功能,NAS 设备比一般服务器能连接更加多种类的操作系统。NAS 运行自己的操作系统,它不要求特定的客户端支持,即可供 Windows、UNIX、Linux、Mac 等操作系统访问。
4) RAID 的重要性
众所周知数据备份的重要,但是现实是,我们通常并没有严格地按照要求去做。RAID 可以保护您的数据安全,当遇到硬盘故障时,提供保障。基于您正在使用 RAID 的级别(至少 RAID 1),即使一个硬盘故障而您的数据依然可以恢复。如果您正在使用一个没有 RAID 的独立硬盘,一旦故障出现,您的数据就无法挽回了。
二 NAS 与DAS和SAN的比较
1) NAS 可以代替服务器的原因
作为专业的存储和文件服务器,NAS 比传统服务器更加便宜和更加方便。如果您需要完整的服务能力——应用程序、服务或者监控、以及硬件外设——额外的存储和文件服务,那么传统服务器可以是您的选择。但 NAS 更专注于它最重要的存储工作。剥离了其他功能。一台 NAS 设备变得更少出现系统冲突和安全攻击问题,提供了更加高的读写性能和系统稳定性。而且,当出现一个问题时,NAS 系统由于具有更加低的系统复杂性,可以更快的处理故障。
2) NAS 代替 DAS 的原因
Direct Attached Storage (DAS)的意思是直连存储,例如U盘和火线接口磁盘(1394接口)。DAS 目前依然有市场空间,但它并没有 NAS 那样功能广泛。DAS直接连接到计算机,但是不能在直连的同时供其他客户端访问。一个 DAS 设备完全依靠主机(计算机),因此,DAS 可以是个人用户的有效选择,但很难为多用户服务。另外,大部分 DAS 产品不包括用于数据保护的 RAID 技术。对于多客户端或者网络应用,NAS 具有更加高的效率、安全性、易用性和可管理特性。
3) NAS 对垒 SAN
NAS 和 SAN 是两大主流存储技术,关于他们异同的讨论一直持续着。简练的答案是,NAS 出自于文件服务器的概念,在网络中为多客户端服务。NAS 作为一个文件服务器在前台,大量物理存储可以挂载于 NAS,作为 NAS 的物理容量。而 NAS 为客户端提供基于文件的服务。各客户端数据的管理和备份可以脱离于客户端主机,在 NAS 中集中进行。
Storage Area Networks (SAN)存储网络,出自于网络组织存储和存储网络提供高负荷流量的概念。存储包含在专用的网络中,没有了公共网络的其他业务影响,非常适合于大流量数据传送。相反的,NAS是直接连接到现存的公共局域网中,可以承受比较差的网络吞吐量。
基本原理和架构的不同,导致了复杂性、可用性和性能的不同。SAN 可以提供高性能和更加多的配置选项。但在大部分的案例中,NAS 比 SAN 更加便宜而且应用起来更加方便。
三 NetGear网件公司的存储ReadyNAS
1)安装
启动 ReadyNAS,并把 ReadyNAS 连接到网络上。ReadyNAS 默认情况下是自动获取IP地址的,如果找到网络中其他 DHCP 服务器,则会使用成功获取到的地址作为自己的 IP 地址。如果没有找到 DHCP 服务器,ReadyNAS 会给自己分配一个 IP 地址:192.168.168.168,然后启用自己的 DHCP 服务器。这时您只需要把 PC 设置成自动获取IP地址,然后用网线连接 PC 和 ReadyNAS 的以太网口。这时 PC 会获取到 ReadyNAS 分配的地址,地址是属于192.168.168.0网段,网关就是192.168.168.168。
在与 ReadyNAS 同网段的 PC 中,安装随机光盘中的 RAIDar 软件,启动 RAIDar 软件,RAIDar 会自动搜索同一个广播区中所有的 ReadyNAS 设备。点击选定需要使用的 ReadyNAS,然后选择“浏览”,即可进入界面,存取 ReadyNAS 中内容。如果 PC 没有安装 RAIDar 软件,只要通过网络能连通该 ReadyNAS,也可以访问存取 ReadyNAS 中的内容。方法和访问网上邻居共享文件夹方式相同,在浏览器中,敲入以下 url:\\IP即可(此处 IP 为 ReadyNAS 的 IP 地址)。
2)设置共享
设置CIFS使windows用户可以访问共享;
设置NFS使Linux用户可以访问共享;
设置AFP使Mac用户可以访问共享;
设置FTP/HTTP/SSH+Rsync使所有系统的用户都可以访问共享;
3) 设置共享为共享模式/用户模式/区域模式。
4)在Windows中访问:\\主机名(或主机地址)\共享名;在Linux和Mac中mount nfs后访问;使用ReadyNAS Remote 将readynas挂载为到本地。
5)使用 ReadyNAS 作为 VMware ESX 的数据中心。
6)ReadyNAS 的内置备份,在 ReadyNAS 上如何配置热备盘,实时备份软件 Memeo,Symantec Backup Exec™ 12.5与 ReadyNAS 配合使用。
四 开源的NAS系统
http://www.openfiler.com/ (支持NAS 和 SAN)
http://www.openqrm.com/
http://opennas.codigolivre.org.br/ (支持NAS)
http://sourceforge.net/projects/freenas/files/ (支持NAS)
五参考
http://readynas.netgear.cn/how_to_deploy.asp
完!
感谢,Thanks!
作者:iTech
出处:http://itech.cnblogs.com/
http://www.cnblogs.com/itech/archive/2010/06/13/1751559.html
页:
[1]