本文章 整合了SDS RAID 最常用的技术
文章包括了RAID 每条的使用最详细参数解释
一.
介绍SUN Solstice DiskSuite是SUN公司自主研发的磁盘管理软件,并向广大用户免费提供。此软件支持Solaris 2.6 、Solaris 7、 Solaris 8。虽然在Solaris 9中更名为“Sun Volume Manager”,但原理和命令几乎没有任何改变。SUN Solstice DiskSuite最常用的用途是磁盘镜像RAID 1,串连RAID 0(striping,concatenation),RAID 5,RAID 0+1,RAID 1+0,磁盘热备(hotspare),Diskset,操作系统扩容(growfs),文件系统日志(UFS logging),具体见下图:二. SUN Solstice DiskSuite软件安装 SUN Solstice DiskSuite软件免费提供于Solaris 2.6、Solaris 7、Solaris 8、Solaris 9及最新发布的Solaris 10中。在Solaris 9和Solaris 10中,SUN Solstice DiskSuite已经集成在操作系统当中,不需要安装就可以直接使用。在Solaris 2.6、Solaris 7、 Solaris 8的操作系统环境下,需要对SUN Solstice DiskSuite进行安装。以下介绍具体安装过程(以Solaris 8为例)。 SUN Solstice DiskSuite软件存在于Solaris8系统安装盘的software 2 of 2中,也就是平常所说的Solaris 8安装盘的第3张(通常所说的Solaris 8安装盘有4张:install ,software 1 of 2,software 2 of 2,language)。软件具体目录如下: /sol_8_401_sparc_2/Solaris_8/EA/products/DiskSuite_4.2.1
其中,sol_8_401为操作系统版本号,本例中的操作系统版本号为Solaris 8 0401。DiskSuite_4.2.1为SUN Solstice DiskSuite软件版本号,此版本为4.2.1(如果没有安装介质,可以到SUN的网站免费下载软件包)。SUN Solstice DiskSuite软件的安装路径在/usr/opt下,所以您的/usr下至少需要30兆空间来安装SUN Solstice DiskSuite软件。 软件安装方法有两种,在图形界面环境下可以直接执行以上路径中的installer脚本程序。启动图形界面,进而根据下一步提示完成安装。除了 installer脚本程序,我们通常利用命令行通过安装软件包来安装SUN Solstice DiskSuite。SUN Solstice DiskSuite软件包存在目录为: sol_8_401_sparc_2/Solaris_8/EA/products/DiskSuite_4.2.1/sparc/packages/ 以下为安装实例: 1.进入Packages所在的目录 #cd /cdrom/cdrom0/Solaris_8/EA
#cd /products/DiskSuite_4.2.1/sparc/Packages
2.查看软件包 # ls
SUNWlvma SUNWlvmg SUNWlvmr SUNWmdg SUNWmdja SUNWmdnr SUNWmdnu SUNWmdr SUNWmdu SUNWmdx[size=10.5pt] [size=10.5pt]3[size=10.5pt].添加软件包[size=10.5pt] [size=10.5pt]# pkgadd -d .
[size=10.5pt](注:[size=10.5pt]“.”
[size=10.5pt]为安装路径为当前目录,不可省略)[size=10.5pt] [size=10.5pt]he following packages are available:
[size=10.5pt] [size=10.5pt]1 SUNWlvma Solaris Volume Management API's
[size=10.5pt] [size=10.5pt](sparc) 1.0,REV=2001.11.02.03.17
[size=10.5pt] [size=10.5pt]2 SUNWlvmg Solaris Volume Management Application
[size=10.5pt] [size=10.5pt](sparc) 1.0,REV=2001.11.14.03.19
[size=10.5pt] [size=10.5pt]3 SUNWlvmr Solaris Volume Management (root)
[size=10.5pt] [size=10.5pt](sparc) 1.0,REV=2001.11.14.03.19
[size=10.5pt] [size=10.5pt]4 SUNWmdg Solstice DiskSuite Tool
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.11.04.18.29
[size=10.5pt] [size=10.5pt]5 SUNWmdja Solstice DiskSuite Japanese localization
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.12.09.15.37
[size=10.5pt] [size=10.5pt]6 SUNWmdnr Solstice DiskSuite Log Daemon Configuration Files
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.11.04.18.29
[size=10.5pt] [size=10.5pt]7 SUNWmdnu Solstice DiskSuite Log Daemon
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.11.04.18.29
[size=10.5pt] [size=10.5pt]8 SUNWmdr Solstice DiskSuite Drivers
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.12.03.10.00
[size=10.5pt] [size=10.5pt]9 SUNWmdu Solstice DiskSuite Commands
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.11.04.18.29
[size=10.5pt] [size=10.5pt]10 SUNWmdx Solstice DiskSuite Drivers(64-bit)
[size=10.5pt] [size=10.5pt](sparc) 4.2.1,REV=1999.11.04.18.29
[size=10.5pt] [size=10.5pt]Select package(s) you wish to process (or 'all' to process all packages). (default: all)
[size=10.5pt]
三. Metadevice State Database介绍 SUN Solstice DiskSuite软件在使用的时候需要调用一个其特有的Metadevice State Database小数据库。Metadevice State Database通常被称为Metadb,Metadb用来存储SUN Solstice DiskSuite软件对服务器硬盘的所有配置信息。换句话说,我们所做的所有磁盘、卷、RAID的结构,都存储在Metadb当中。每当服务器重新启动,SUN Solstice DiskSuite软件就会自动调用Metadb中的信息,从而按照这些信息配置物理磁盘,挂接UFS文件系统,从而使操作系统正常启动。相反,如果 Metadb被破坏了,操作系统就有可能无法正常启动,进入单用户状态,甚至可能丢失硬盘数据。 Metadb对于SUN Solstice DiskSuite软件来讲是异常重要的。因此我们会在建立Metadb时建立很多备份。一旦Metadb被破坏,SUN Solstice DiskSuite软件可以自动将其恢复,如果Metadb损坏严重,我们也可以手动恢复Metadb,Metadb和其备份之间是实时备份的。 在物理磁盘中,Metadb通常是磁盘的一个专有分区,也就是说在安装操作系统的时候要预留出一个分区给Metadb。这个分区不能存在文件系统,一旦这个分区被做成Metadb,它也就不能再做其他应用。我们通常把磁盘的7号分区预留给Metadb,其大小通常为10兆到50兆。当然,大家也可以用别的分区代替7号分区预留给Metadb。 在实际应用中,我们通常把SUN Solstice DiskSuite软件下的所有硬盘都建立一个Metadb。每个硬盘上的Metadb分区又可以存在多个备份,所有这些备份之间都是实时同步的。这样,我们就基本可以保证Metadb不会被破坏。 Metadb必须在SUN Solstice DiskSuite软件使用之前建立,否则SUN Solstice DiskSuite软件不会生效。我们使用metadb命令,建立Metadevice State Database。下面是一个建立Metadevice State Database的实例: # metadb -a -f -c 3 cxtxdxsx cytydysy
metadb为软件命令;-a参数为增加metadb;-f参数为建立一个初始的metadb;-c参数后边要加个数字,表示在一个物理分区里的 metadb备份的数目,此例中为每个分区里面3个备份;cxtxdxsx cytydysy 则是要建立metadb的物理分区,可以增加他的个数。注意,一旦metadb命令执行成功,预留分区上的其他数据将会被破坏。所以此条命令可以解释为:在cxtxdxsx cytydysy两个硬盘分区上建立初始的Metadb,每块硬盘分区上的备份数目为3。 下面介绍一个删除Metadb的实例: # metadb –d cxtxdxsx
-d参数为删除metadb。这条命令可以解释为:在cxtxdxsx分区上删除原有的Metadb。我们要查看已经存在的Metadb可以用以下命令: # metadb –I
最后,总结介绍一下metadb的参数:-a 参数意为增加一个metadb;-f 参数意为建立一个初始化的Metadb;-c n 其中n为数字,此参数意为在每一个分区中建立n个Metadb备份,如果不指定此参数,默认只建立一个Metadb;-d 参数意为删除一个Metadb;-I参数意为查询现有的Metadb的信息,包括备份个数,分布情况和Metadb的健康状况。 SUN Solstice DiskSuite软件的使用接口有三种:基于图形界面操作系统的GUI软件界面方式、命令行方式、修改/etc/opt/SUNWmd/md.tab文件方式。其中,命令行方式应用广泛,本文着重介绍命令行方式。四. RAID 0 我们通常所说的RAID 0就是对硬盘进行串连,把两个或更多的硬盘或分区串接起来,当做一个逻辑设备使用。RAID 0增加了X倍的数据空间(X为磁盘个数),但是数据的危险性也同时增加到X倍。例如,我们做一个3块硬盘的RAID 0,那么数据空间就是原来的3倍,危险性也是原来的3倍,坏掉3块盘中任何一块硬盘,整个RAID的数据将会全部丢失。 SUN Solstice DiskSuite软件通过把物理硬盘上的逻辑分区设备转换成特殊的DiskSuite设备,通常我们将DiskSuite设备称为 “metadevice”,可以通过metainit命令把一个系统逻辑分区做成一个metadevice。metadevice的设备路径和系统原来的设备路径不同,块设备路径在/dev/md/dsk下,裸设备路径在/dev/md/rdsk下。 SUN Solstice DiskSuite软件下的RAID 0有两种方式:concatenation方式和 striping方式。它们为RAID 0提供了两种不同的结构,而且各有各的优、缺点。 1.concatenation方式 concatenation方式把多个逻辑硬盘或分区首尾相接做成一个metadevice。具体结构如下图: 由于数据是从第一个block顺序往下写的,因此,concatenation方式具有良好的可扩展性。也就是说,管理员可以根据文件系统的实时使用情况随时扩充metadevice的大小。然而,就是因为这种顺序写入的结构,使得concatenation方式有个致命的缺点,即IO性能降低。因为当数据写入的时候,只要第一块硬盘没有写满,在其后的硬盘上,都不会有任何的写入动作。这样,也就造成了后面硬盘IO带宽的浪费,从而使整个 concatenation方式的RAID 0 IO性能降低。下面是一个制作Concatenation方式RAID 0的实例: # metainit d1 2 1 /dev/dsk/c0t0d0s1 1 /dev/dsk/c0t1d0s5
metainit为制作metadevice的命令;d1为metadevice的名字;metadevice的名字用dN表示,N可以从0到 127;2 为RAID 0的子盘个数,子盘实际上是以striping的方式做成的;1 为每个striping的方式做成的子盘中的分区个数,只有当这个数字为1的时候,我们做成的metadevice才是真正的concatenation 方式;/dev/dsk/c0t0d0s1 为要做成metadevice的物理分区。这条命令可以解释为,用metainit命令制作一个concatenation方式的包含两个子盘名为d1的RAID 0,两个子盘分别为/dev/dsk/c0t0d0s1和/dev/dsk/c0t1d0s5。 2.striping方式 striping方式把多个逻辑硬盘以条带化的方式连接成一个metadevice。具体方式参照下图: striping方式就是把硬盘分割成若干条带,数据写入的时候和concatenation方式不同。striping方式在写入数据的时候由于条带化的分割,对所有的磁盘都有写入操作,因此striping方式比concatenation方式有着良好的IO。但是,也由于这种条带结构, striping方式不可以在线扩充文件系统容量。下面是一个制作striping方式RAID 0的实例: # metainit d2 1 2 /dev/dsk/c0t0d0s4 /dev/dsk/c0t0d0s5 –i 32k
metainit为制作metadevice的命令;d2为metadevice的名字;1 为RAID 0的子盘个数,只有当这个数字为1的时候,我们做成的RAID 0才是真正的striping方式;2 为striping方式做成的子盘中的分区个数;/dev/dsk/c0t0d0s4 为要做成metadevice的物理分区;-i 参数为每个条带的大小;-i 32k的意思是每个条带为32k字节。 这条命令可以解释为,用metainit命令制作一个striping方式的包含两个子盘名为d2的RAID 0,两个子盘分别为/dev/dsk/ c0t0d0s4和/dev/dsk/ c0t0d0s4,每个条带大小为32k。 除了striping方式和concatenation方式,我们还可以通过metainit命令制作混合方式的RAID 0,不过很少有客户会要求把RAID 0制作成混合方式。 下面是一个制作混合RAID 0的实例: #metainit d12 3 2 c0t1d0s1 c1t1d0s1 1 c0t2d0s3 3 c0t3d0s4 c1t3d0s4 c2t3d0s4
这条命令可以解释为,用metainit命令制作一个包含3个子盘名为d12的RAID 0,第一个子盘分别为c0t1d0s1和c1t1d0s1做成的striping,第二个子盘分别为c0t2d0s3,第三个子盘分别为c0t3d0s4 c1t3d0s4 c2t3d0s4做成的striping。
(2007-09-17 12:36:40, Size: 12.1 KB, Downloads: 94)