RAID全程指导.docx

上传人:b****7 文档编号:24042035 上传时间:2023-05-23 格式:DOCX 页数:21 大小:32.30KB
下载 相关 举报
RAID全程指导.docx_第1页
第1页 / 共21页
RAID全程指导.docx_第2页
第2页 / 共21页
RAID全程指导.docx_第3页
第3页 / 共21页
RAID全程指导.docx_第4页
第4页 / 共21页
RAID全程指导.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

RAID全程指导.docx

《RAID全程指导.docx》由会员分享,可在线阅读,更多相关《RAID全程指导.docx(21页珍藏版)》请在冰豆网上搜索。

RAID全程指导.docx

RAID全程指导

Solaris软RAID指导

内容简介

1、简单的镜像实例

2、简单的metadevice概念

3、concatenation、stripe,RAID1,raid10,raind01...

4、补充说明和常见问题

5、相关命令详细解说

看贴学习要回贴哦~做人要厚道呀~

第一章请用1小时跟着作试验,后面的内容就好理解,本人作完各种RAID试验用了一周

第一章:

原系统单硬盘新增一块硬盘后,把根文件系统和SWAP分区作镜像

一、假设目前的情况,如果不符合,请先搭建环境:

1-有2个disks-c0t0d0(disk0)andc0t1d0(disk1).disk1为新增磁盘

2–原系统安装在disk0,disk1未使用.

3-disk0磁盘都有以下的分片(slices),最好disk1手工创建和disk0一样的分片:

0-/

1-swap

2-whole-disk

3-unassigned64-MB----未使用的空间

4-unassigned64-MB----未使用的空间

Slice3和4是用来存放meta-database日志,磁盘必须有至少128M的空余日志空间,每片64M

如果disk0上没有空余没用的slice也没关系,添加另外一个硬盘随便分区,只要有空余的分区用来存放metadb就行(没有说一定要分区3和4哦),假设这里我们用来存放metadb数据库的分区是c0t2d0s3,c0t2d0s4下面我们开始制作根系统的镜像实例

(1cylinder=16track=1008block=1008sector,1track=63block,1block=512byte)

重要提示:

动手前,请先备份系统

二、动手

1.复制disk0的分片信息到disk1:

prtvtoc/dev/rdsk/c0t0d0s2|fmthard-s-/dev/rdsk/c0t1d0s2

因为metadevices是工作在块级别的,所以两个磁盘必须所有物理信息一致(几何匹配)

2.建立meta-databases

metadb-af-c2/dev/dsk/c0t2d0s3/dev/dsk/c0t2d0s4

在每个分片上建立2个meta-database,-a添加,-c2数量为2个,-f是第一次建metadb必须的参数,如果有多个disks,可以把数据库分布在多个磁盘上以获得更好的性能和故障冗余

3.建立镜像设备(raid-device)

在一个2-disk的系统里,我们要做的就是把disk0和disk1结合在一起。

建立以下的镜像设备和成员(d0表示slice0的raid-device,d10表示d0的成员1):

d0-/mirror

d10-/dev/dsk/c0t0d0s0

d20-/dev/dsk/c0t1d0s0

d1-swap

d11-/dev/dsk/c0t0d0s1

d21-/dev/dsk/c0t1d0s1

metainit-fd1011/dev/dsk/c0t0d0s0

metainit-fd2011/dev/dsk/c0t1d0s0

metainit-fd0-md10

metainit-fd1111/dev/dsk/c0t0d0s1

metainit-fd2111/dev/dsk/c0t1d0s1

metainit-fd1-md11

4.metainit初始化了设备,metastat已经可以查看,不过还不能使用(因为mirror-halves还没attached)(有时系统已经自动attach了d10和d11)

metattach  d0d10

metattach  d1d11

现在我们已经把镜像的一半(firsthalf,即正在运行的磁盘,disk0)attached上来了.

在后面的步骤中,我们会把另外一半attach上来,一旦attach磁盘会立刻疯狂同步!

5.指定系统使用metadevices,指定根文件系统:

metarootd0

修改/etc/vfstab

让swap使用metadevices的d1(/dev/md/dsk/d1)

根文件系统(d0)的mountoption下标记写为“logging”

如果镜像的所有子镜像(请注意是所有子镜像)都没创建文件系统,在mounted之前必须:

newfs/dev/md/dsk/d1

6.最后重新启动系统

lockfs–fa  锁定文件系统,这个没什么好商量的,为了防止出现文件不同步之类的情况

init6

7.启动后会有类似以下的一些错误信息,不用管它,因为我们还没完成raid-devices的操作:

forceloadofmisc/md_transfailed

forceloadofmisc/md_raidfailed

forceloadofmisc/md_hotsparesfailed

现在把镜像的另外一半attach上来:

metattach  d0d20

metattach  d1d21

这时候,磁盘开始疯狂转动,进行同步(yourdisksaresyncing)

8.把启动扇区的信息复制到disk1,以便disk1也可以启动:

installboot/usr/platform/`uname-i`/lib/fs/ufs/bootblk  /dev/rdsk/c0t1d0s0

`uname-i`指的是用uname–i看到的平台名字

s10中已经用installgrub命令代替insallboot,命令如下

installgrub/boot/grub/stage1/boot/grub/stage2/dev/rdsk/c0t1d0s0

9.如果disk0无法启动的时候,我们可以设置OPB,让系统从disk1启动,进入ok模式:

setenvboot-devicediskdisk1

nvstore

bootdisk1

X86的也可以直接编辑/boot/solaris/bootenv.rc文件,或者用

#eepromboot-devicediskdisk1?

也可从BIOS设置disk1启动,可看到disk1的硬盘先闪

Thiswillsetupafailoverboottodisk1.Theverylastcommandtherewillalsobootfromdisk1,provingtoyouthatthisworks.Dobesuretosubstitutethecorrectdiskfor"disk1".

强烈推荐去看SUN的在线文档,There'salotmorethatyoucandowithitthat'snotcoveredhere.Oh,andyou'llprobablywanttoreaduponhowtoactuallyreplaceafaileddisk.

三、换盘/替换坏盘:

1、关机、替换硬盘、format-->fdisk-->复制另一盘的分区信息

2、然后

#metastat|more看哪些盘提示需要metareplace,然后按照提示输入类似如下:

#metareplace-ed1c1d1s1

3、或者重新创建metadevice和attach....

具体例子:

RAID5坏掉一个盘的恢复方法:

例阵列d55中一个组件c1t4d0s2盘坏掉,更换坏硬盘后作如下工作:

okboot-r(X86#touch/reconfigure;sync;init6或者重启后#devfsadm)

注意,只有加入"-r"选项时,系统在起动时才给所识别了的设备(包括SCSI设备)生成相应的设备文件。

#metareplace–ed55c1t4d0s2如果新硬盘插的地方和旧硬盘不一样,比如是c1t5d0s2,那么用以下命令

#metareplace–ed55c1t4d0s2c1t5d0s2

#metastatd55

#metastat-i看进度

#metastat-id0

d0:

Mirror

  Submirror0:

d10

    State:

Okay

  Submirror1:

d20

    State:

Resyncing

  Resyncinprogress:

19%done

  Pass:

1

  Readoption:

roundrobin(default)

  Writeoption:

parallel(default)

  Size:

1434384blocks

详见本人网站:

[本帖最后由yuhuohu于2006-11-1717:

26编辑]

yuhuohu(盘丝大仙)

天使

斑竹申请中

2楼发表于2006-9-2709:

01 

metadb命令:

建立meta-database

-a建立一个新的meta-database的副本(replica)

-f建立一个初始化meta-database

-af只有刚开始的时候使用-af,因为此时没有meta-database

-c指定放在每个设备上的副本的数量,默认为1

-d删除指定设备上的副本,删除所有的副本将导致现有的metadevices无法使用

metadb-ac0t0d0s2c0t1d0s2将在2个磁盘上建立2个副本(一磁盘一个副本)

/etc/lvm/mddb.conf:

metadevice的状态数据库的每个拷贝的存放位置

/etc/lvm/md.tab:

存放metadevice的数据库的工作文件(workspacefile),比如内容如下:

  d718c2t1d16s2c3t0d17s2c2t1d14s2c3t0d15s2c2t1d12s2c3t0d13s2c2t1d11s2c3t0d9s2-i32k

/kernel/drv/md.conf:

本系统所有metadevice的数据库的副本信息,通常也包括SVM的配置信息

yuhuohu(盘丝大仙)

天使

斑竹申请中

3楼发表于2006-9-2709:

02 

metainit创建metadevice(动态设备)

-f强行执行metainit命令,即使某一分片(slice)中含有已经mounted的文件系统,或者该分片正在作为swap使用,通常在配置根(/),swap,/usr时使用

concat/stripe指定metadevice的名字,建立metadevice的时候,先指定名字,然后指定该设备由几条组成,每条有几片组成。

根据不同的条片组合情况,可以分为以下几种:

  concatenation(串,即可能单条单片、多条单片),

  stripe(条:

多片)

  concatenationofstripe(条串:

多条多片)

numstripes指定在metadevice中独立的stripe的数量,对于一个简单的stripe来说通常为1,对于一个concatenation来说,numstripes等于slices的数量,对于concatenationofstripes来说,numbtripes随着stripes的数量而变化

width组成一个stripe的slice的数量componet一个磁盘中对应每一个分片(分区)的逻辑名字,比如/dev/dsk/c0t0d0s2,对于RAID5的metadevice来说,至少需要3个slice分片来分布奇偶信息

-i交替写的数据大小,告诉SVM,在每个metadevice(stripe或者RAID5)的分片上写多少k/m/b后转到另一个分片去写

例子:

metainitd0

根据/etc/lvm/md.conf中关于d0的配置信息去配置d0这个metadevice

metainit-a

激活/etc/lvm/md.conf中定义的所有metadevices

1.one-on-one的concatenation(即单stripe单slice)

#metainit-fd111c0t0d0s0    使d1成为一个使用rootslice的one-on-oneconcatenation.

#metainitd0-md1  使镜像设备d0成为one-waymirror(单向镜像)

2.Concatenation(多条单片),以下每分片大小可以不一样,可用空间是各分片的和:

#metainitd741c0t1d0s01c0t2d0s01c0t3d0s01/dev/dsk/c0t4d0s0

d7=该metadevice名字

4=由4个stripe组成

1c*t*d*s*=每个stripe由1个slice组成,c*t*d*s*为slice的逻辑名字

3。

stripe(单条多片)

#metainitd1512c0t1d0s2c0t2d0s2-i32k

d15这个metadevice包含1个stripe,每个stripe由2个slice组成,交替写数据的大小为32k,默认16k.每片大小必须一样,不然浪费空间,因为条带区的大小算法根据最小的分片来计算。

4.ConcatentationofStripes(多条多片)

#metainitd7523c0t1d0s2c0t2d0s2\

      c0t3d0s2-i16k\

    3c1t1d0s2c1t2d0s2c1t3d0s2-i32k

5.mirroring,下面是个two-waymirror的例子

#metainitd5111c0t1d0s2

#metainitd5211c0t2d0s2

#metainitd50-md51  -m说明是d51作为mirrord50的submirror

#metattachd50d52

d51,d52这2个submirror(子镜像)由metainit创建,c0t2d0s2可以比c0t1d0s2大

然后通过init-md51,创建了一个one-waymirror(单向镜像):

d50

最后通过metattachd50d52把第2个submirrord52attach上来,完成two-waymirror的建立。

在建立mirror的时候,可以使用任意条和串的组合(Whencreating  a

mirror,anycombinationofstripesandconcatenationscanbe

used.)

6.Logging(trans)

#metainitd1111c0t1d0s2

#metainitd1211c0t2d0s2

#metainitd2111c1t1d0s3

#metainitd2211c1t2d0s3

#metainitd10-md11

#metattachd10d12

#metainitd20-md21

#metattachd20d22

#metainitd1-td10d20

最后一个命令:

建立了一个d1(transmetadevice,因为使用了-t),使用d10作为主设备(masterdevice),d20用来loggingdevice.

8.RAIDLevel5

#metainitd80-rc1t0d0s2c1t1d0s2c1t3d0s2-i20k  -r说明是RAID5,-i是交替写的大小

9.softpartition软分区

#metainitd1-pd100100M

#metainitd2-pd100100M

....

#metainitd99-pd100100M

在建立好的逻辑设备(动态设备d100上)上继续划分分区,每个100M,一共99个分区。

10.softpartitiononfulldisk

#metainitd1-p-ec3t4d09Gb

Thefollowingexampleshowsa  soft  partition  device,  d1,builtondiskc3t4d0,Inthisexample,thediskisrepartitionedandasoftparti-tionisdefinedtooccupyall9Gbytesofdiskc3t4d0s0.

11.hotsparepool热备盘池

#metainithsp001c2t2d0s2c3t2d0s2c1t2d0s2

#metainitd4111c1t0d0s2-hhsp001

#metainitd4211c3t0d0s2-hhsp001

#metainitd40-md41

#metattachd40d42

建立了一个hot-spare-poolhsp001,d41和d42都使用hsp001,然后d41和d42组成d40.

12.RAID0+1

#metainit-fd1012c0d0s2c0d1s2

#metainit-fd2012c1d0s2c1d1s2

#metainit-fd0-md10

#metattachd0d20

12.RAID1+0

#metainit-fd1021c0d0s21c0d1s2

#metainit-fd2021c1d0s21c1d1s2

#metainit-fd0-md10

#metattachd0d20

写数据的时候,同时写c0d0s2和c1d0s2,写满后接着同时写c0d1s2和c1d1s2

备注:

当mirroringdata的时候,可能由于内容数据变化导致写入镜像盘中的数据不同而产生数据不同步,可以在/etc/system中加入以下行:

setmd_mirror:

md_mirror_wow_flg=0x20

设置这个flag将导致性能下降。

.

可用空间上的区别

分片情况如下:

c0d1s0c1d0s0c1d1s0  1434384blocks

c0d1s1c1d0s1c1d1s1  392112blocks

1stripe2slice按照条带卷的计算方法得出可用空间,由小的分片决定可用空间

1434384+392112=783216blocks

392112+392112  =783216blocks

2strips1slice2个条带组合:

可用空间为条带卷的空间和

1434384+392112=1826496blocks

392112+392112  =784224blocks

RAID5:

c0d1s1c1d0s1c1d1s1  

size:

783216blocks

RAID5:

c0d1s0c0d1s1c1d0s1c1d1s1  

size:

1175328blocks可用空间约等于最小的分片*(N-1)/N

yuhuohu(盘丝大仙)

天使

斑竹申请中

4楼发表于2006-9-2709:

03 

相关补充知识:

删除所有的metadevice

metaclear-a

对于已经mounted的metadevice,要先umount文件系统,再删除

删除metadeviced0

metacleard0

换盘,替换坏盘

metareplace

从mirror(d0)中分离submirror(d10,d20)

metadetachd0d20

只显示分区(分片信息)

prtvtoc-h/dev/rdsk/c0d0s2

mount_option如何指定:

具体见manmount_ufsormanmount_nfs

logging|nologging

    Ifloggingisspecified,  then  logging  is

    enabled  for  the  duration  ofthemounted

    filesystem.  Logging  is  the  process  of

    storing  transactions(changesthatmakeup

    acompleteUFSoperation)ina  log  before

    the  transactions  are  appliedtothefile

    system.Onceatransactionis  stored,  the

    transactioncanbeappliedtothefilesys-

    temlater.Thispreventsfilesystems  from

    becoming  inconsistent,thereforeeliminat-

    ingtheneedto  run  fsck.  And,  because

    fsck  can  bebypassed,loggingreducesthe

    timerequiredto  reboot  a  system  if  it

    crashes,  or  after  an  unclean  halt.The

    defaultbehaviorisnologging.

    Thelogisallocatedfrom  free  blocks  on

    thefilesystem,andissized

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1