Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7933236
  • 博文数量: 124
  • 博客积分: 2880
  • 博客等级: 少校
  • 技术积分: 873
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 17:08
文章分类

全部博文(124)

文章存档

2011年(28)

2010年(60)

2009年(36)

我的朋友

分类:

2011-03-28 09:16:19

UnixWare7.1.x操作系统下的硬盘管理

作者:whan

1. 硬盘管理概述

UnixWare7.1.x对硬盘的管理分为两个步骤,或者说是两个层次。一个就是用众所周知的fdisk命令划分的硬盘分区,应该说大部分操作系统都使用这一工具进行硬盘的分区划分和管理,为了与另一个管理方式“slice”相区别,我们用英文表示为”partition”,此硬盘分区不能在UnixWare7.1.x操作系统下直接进行操作,只能通过UnixWare7.1.x所特有的slice进行映射或者重新划分后才能够进行操作;另一个就是”slice”,它是UnixWare7.1.x所特有的管理硬盘的工具,并且UnixWare只有通过slice对硬盘进行访问。

1.1 Partition具有如下特点:

1.一个开始Sector

2. 该分区的长度,用Sector计算的;

3. 该分区操作系统的类型,如UNIX, DOS, 或者 Extended DOS等等;

4. 如果是可引导分区必须具有Active标志;

5. 每个硬盘最多可以划分4Partition

6. 如果硬盘要被UnixWare操作系统使用则必须至少有一个分区(Partition)

7. UnixWare7.1.x操作系统利用命令fdisk进行划分。

1.2 Slice特点如下:

1.一个开始的Sector

2. Slice的长度,用Sector计算。

3. Slice的类型,例如root, user, swap, stand等等。

4. 访问限制(valid and mountable/unmountable)

5. UnixWare7.1.x操作系统只有通过Slice才能够访问和管理硬盘,而不能够通过其他方式对硬盘进行管理和访问。

6. 每个物理硬盘原则上最多是有256Slice,实际上使用的只有188个,而这188slice在系统中的体现要靠节点设备文件表现出来,如/dev/rdsk/c0b0t0d0s0,就是当前状态为ACTIVE的整个unix分区(P),下面将更详细的讨论。

7. 在一个物理硬盘上的当前活动的UNIX分区可以可以通过slice进行管理,而slice也只能对当前活动的UNIX分区进行更进一步的划分分区和管理。

8.  一个slice可以用做一个文件系统,可以被用做swap空间,可以作为生设备使用,也可以被其他应用程序使用,例如被数据库管理和使用。

 

1.3 Slice、分区(P)和节点设备文件的关系:

1、学习环境

首先让我们来看一个环境,主机的硬盘总容量是6173.4 MB,分了两个分区(P),第一个分区容量为1851.2MB,是当前的活动的UNIX系统分区,安装了SCO OpenServer 5.0.5;第二个分区容量为4322.2MB,是非活动UNIX系统分区,安装了UnixWare7.1.1操作系统,而当前正在运行的系统是第二分区的UnixWare,对操作系统本身来讲,第二个分区是当前UNIX系统分区(P)。具体分区情况如下所示:

Total disk size is 787 cylinders (6173.4 MB)

Cylinders               Approx

Partition   Status       Type       Start   End   Length    %      MB

=====  ====== ===========   =====   ===   ======   ===   ======

1       Active    UNIX System      0    235     236     30    1851.2

2                UNIX System    236    786     551     70    4322.2

1-1

 

该主机通过一个SCSI Ultra160卡外挂了一个磁盘阵列柜,阵列柜有三个70GSCSI硬盘,做了RAID 5,阵列柜的两个外接SCSI通道的ID都设为5,阵列柜做了RAID 5后,在逻辑盘空间划分了三个分区,这三个对应的逻辑号分别为012,这样通过主机的操作系统就能够看到三个硬盘的标识,通过系统命令”sdiconfig –l”可以看到如下信息:(我们在每一行的前面加了行号,这是为了我们方便的加以解释和说明)

1     # sdiconfig -l

2     0:0,7,0: HBA     : (ide,1) Generic ESDI/IDE/ATA

3       0,0,0: DISK    : Generic IDE/ESDI        1.00

4     1:0,7,0: HBA     : (ide,2) Generic ESDI/IDE/ATA

5       0,0,0: CDROM   : ATAPI   CD-ROM DRIVE-32XT2DP

6     2:0,7,0: HBA     : (adst70,2) Adaptec Ultra160

7       0,5,0: DISK    : NetStor DA8160          0001

8       0,5,1: DISK    : NetStor DA8160          0001

9       0,5,2: DISK    : NetStor DA8160          0001

1-2

1行是系统命令,这是在root用户下执行的,通过前面的”#”提示符可以看出来。

24两行是IDE通道的信息,它们分别接着本地IDE硬盘(即第3行所示信息)和IDE光驱(即第5行所示信息)。

6行是我们主机上的SCSI卡的信息,也就是接磁盘阵列柜的SCSI通道的信息,第789三行是磁盘阵列柜的三个分区的信息,这里的分区不同于我们对物理硬盘分区(Partition)的概念,它们类似于一个物理硬盘,操作系统在处理过程中也是安装一个物理硬盘来进行的。

 

2UnixWare7.1.x硬盘的标识

在任何一个Unix操作系统中,每一个硬件设备都对应着一个设备文件名,通过文件来对设备进行管理和操作,当然,UnixWare7.1.x也不例外,它对于SCSI和非SCSI硬盘的管理也是通过设备文件来进行的,有如下两种形式:

/dev/[r]dsk/cCbBtTdDsS

/dev/[r]dsk/cCbBtTdDpP

各个部分的解释如下:

1[r]dsk

/rdsk目录下是原始设备(字符设备);/dsk目录下是块设备。

2cC

C是系统中的主机通道适配器或者是IDE控制器的序列号,C的范围是031

UnixWare7.1.x中,不同于SCO OpenServer 5.0.x中不同的适配器或IDE控制器的序列号是没有关系的,不是顺序增加的,例如有两个IDE控制器和两个SCSI控制器,在OpenServer中,第一个IDE控制器的C0,第二个IDE控制器的C1,第一个SCSI控制器的C0,第二个控制器的C1;而在UnixWare中,第一个IDE控制器的C0,第二个IDE控制器的C1,第一个SCSI控制器的C2,第二个控制器的C3,当然也可以第一个SCSI控制器的C0,第二个控制器的C1,第一个IDE控制器的C2,第二个IDE控制器的C3,就是说UnixWare中,不会区分控制器的类型而进行排序,它对所有的控制器(不论什么类型,IDESCSI或者其他)进行排序。

3bB

BHBA总线编号,范围是07(依赖于增加的适配器),对于IDE硬盘来讲它总是0

4tT

TSCSI目标控制器标号(ID),这个ID的范围从031。第一个IDE硬盘是0,第二个是1

5dD

D是硬盘设备的逻辑单元号(即LUN),范围从031DIDE硬盘来讲都是0

6sS

S是硬盘的Slice号,范围从0b7(十六进制),十进制是0183

7pP

Pfdisk(1M)硬盘分区号,范围是从04,在硬盘分区表中,p0代表整个硬盘,而p1p4分别表示用fdisk命令显示的硬盘的分区1到分区4

3、分析

我们来看一下目录/dev/rdsk/下有那些内容:

# pwd

/dev/rdsk

# lf

c0b0t0d0p0   c2b0t5d0s1   c2b0t5d1s7   c2b0t5d2sd   f05q         f15d16

c0b0t0d0p1   c2b0t5d0s2   c2b0t5d1s8   c2b0t5d2se   f05qt        f15d16t

c0b0t0d0p2   c2b0t5d0s3   c2b0t5d1s9   c2b0t5d2sf   f0d8d        f15d4

c0b0t0d0p3   c2b0t5d0s4   c2b0t5d1sa   f0           f0d8dt       f15d4t

c0b0t0d0p4   c2b0t5d0s5   c2b0t5d1sb   f03c         f0d8t        f15d8

c0b0t0d0s0   c2b0t5d0s6   c2b0t5d1sc   f03ct        f0d9d        f15d8t

c0b0t0d0s1   c2b0t5d0s7   c2b0t5d1sd   f03d         f0d9dt       f15d8u

c0b0t0d0s2   c2b0t5d0s8   c2b0t5d1se   f03dt        f0d9t        f15d9

c0b0t0d0s3   c2b0t5d0s9   c2b0t5d1sf   f03e         f0q15d       f15d9t

c0b0t0d0s4   c2b0t5d0sa   c2b0t5d2p0   f03et        f0q15dt      f15h

c0b0t0d0s5   c2b0t5d0sb   c2b0t5d2p1   f03h         f0q18d       f15ht

c0b0t0d0s6   c2b0t5d0sc   c2b0t5d2p2   f03ht        f0q18dt      f15q

c0b0t0d0s7   c2b0t5d0sd   c2b0t5d2p3   f03m         f0q9dt       f15qt

c0b0t0d0s8   c2b0t5d0se   c2b0t5d2p4   f03mt        f0t          f1d8d

c0b0t0d0s9   c2b0t5d0sf   c2b0t5d2s0   f03n         f1           f1d8dt

c0b0t0d0sa   c2b0t5d1p0   c2b0t5d2s1   f03nt        f13c         f1d8t

c0b0t0d0sb   c2b0t5d1p1   c2b0t5d2s2   f05d16       f13ct        f1d9d

c0b0t0d0sc   c2b0t5d1p2   c2b0t5d2s3   f05d16t      f13d         f1d9dt

c0b0t0d0sd   c2b0t5d1p3   c2b0t5d2s4   f05d4        f13dt        f1d9t

c0b0t0d0se   c2b0t5d1p4   c2b0t5d2s5   f05d4t       f13e         f1q15d

c0b0t0d0sf   c2b0t5d1s0   c2b0t5d2s6   f05d8        f13et        f1q15dt

c2b0t5d0p0   c2b0t5d1s1   c2b0t5d2s7   f05d8t       f13h         f1q18dt

c2b0t5d0p1   c2b0t5d1s2   c2b0t5d2s8   f05d8u       f13ht        f1q9dt

c2b0t5d0p2   c2b0t5d1s3   c2b0t5d2s9   f05d9        f13m         f1t

c2b0t5d0p3   c2b0t5d1s4   c2b0t5d2sa   f05d9t       f13mt

c2b0t5d0p4   c2b0t5d1s5   c2b0t5d2sb   f05h         f13n

c2b0t5d0s0   c2b0t5d1s6   c2b0t5d2sc   f05ht        f13nt

1-3

在表1-3中具有/dev/[r]dsk/cCbBtTdDsS或者/dev/[r]dsk/cCbBtTdDpP格式的设备文件名称都代表了系统中的硬盘,可以归纳如下4行。

1     c0b0t0d0p[0-4]c0b0t0d0s[0-f]

2     c2b0t5d0p[0-4]c2b0t5d0s[0-f]

3     c2b0t5d1p[0-4]c2b0t5d1s[0-f]

4     c2b0t5d2p[0-4]c2b0t5d2s[0-f]

1-4

注意:以上4行中[0-X],不是代表0X中的任何一个,而是一个实际的范围,例如c0b0t0d0p[0-4]代表c0b0t0d0p0c0b0t0d0p1c0b0t0d0p2c0b0t0d0p3

1-4中的每一行都代表着一个硬盘,实际情况是第1行代表本地IDE硬盘,即表1-2中第3行所示之硬盘;第2行代表磁盘阵列柜的逻辑分区1,设置此分区的LUN号为0,即表1-2中第7行对应磁盘阵列的逻辑分区1;第34两行代表磁盘阵列的逻辑分区23LUN号分别为12

我们结合上面的说明对表1-2重新进行分析:

2     0:0,7,0: HBA     : (ide,1) Generic ESDI/IDE/ATA

3       0,0,0: DISK    : Generic IDE/ESDI        1.00

 

 

 

 

适配器号,对应C

 

 

 

 

 

 

 

逻辑单元号,对应D

目标控制器标号,对应T

HBA总线号,对应B

 

 

 

 

 

 

 

 

 

 

 


上图中标出了表1-2每一个字符代表的意思,从表1-2可以看出三个控制器(第246行)是按照顺序进行编号012,不分控制器的类型,第24行代表的是IDE类型,第6行代表的是SCSI类型;每一个控制器都有自己的BTD号,巧合的是本系统中的三个控制器的Ttarget)都是7,这样通过该控制器相连接的设备的T就不能是7;同时我们看到,磁盘阵列上设置的通道IDUnixWare7.1.x操作系统中是T,而磁盘阵列柜的逻辑盘中的分区对应的ID号(LUN),对应着系统中的D,况且这样的分区是作为一个完整的硬盘来进行处理的。

我们再回过头来看看表1-4,发现每一个硬盘对应的系统自动创建的设备文件都是一样的cXbXtXDxp[0-4]cXbXtXdXs[0-f]21个设备文件。这些设备文件是系统启动时由VTOC(Volume Table of Contents)驱动程序自动为硬盘创建的,这些设备文件是Slice的体现。下面我们具体的来看一下Slice与设备文件的对应情况。

1cXbXtXdXs0Slice0,对应整个活动的UNIX系统分区;

2cXbXtXdXs1slice1,slice0所代表的当前活动的UNIX系统分区的第一个slice(类似于子分区,它可以用做swap分区、root分区或者boot分区等等)

3cXbXtXdXs2slice2,对应当前活动的UNIX系统分区的第二个子分区(请允许我如此称呼它),依次类推,直到cXbXtXdXsb7slice183,它对应的是当前活动的UNIX系统分区的第183b7是十六进制,换算到十进制是183)个子分区,也就是说,当前活动的UNIX系统分区最多具有184slice,同时也说明了slice管理机制只能对当前活动的UNIX系统分区通过slice0slice183来进行子分区的划分和管理;

4cXbXtXdXp0对应slice184,代表整个硬盘;

5cXbXtXdXp1cXbXtXdXp4对应slice185slice188,代表了硬盘的fdisk分区1到分区4

 

4. 总结

综合以上123的内容可以看出slicePartition和文件名称的关系如图1-1所示,对图中的内容说明如下:

1)用fdisk命令可以将一个硬盘划分为最多4个分区,当然也可以是一个分区。

2UnixWare7.1.x操作系统在启动是由VTOC驱动程序自动为每个硬盘创建了设备文件名/dev/[r]dsk/cXbxtXdXp0-4/dev/[r]dsk/cXbxtXdXs0-f21slice,他们的对应情况如图1-1所示。

3)从s0sb7Partition分区进一步分区只对activePartition有效。

4)对于系统通过VTOC驱动程序自动创建的21个设备文件在硬盘还没有做fdisk分区的时候是没有什么作用的,如硬盘还没有用fdisk分区,则只能通过/dev/[r]dsk/cXbxtXdXp0/dev/[r]dsk/cXbxtXdXs02个文件中对该硬盘进行操作,在对硬盘进行了fdisk分区以后,s1-15文件仍然无法使用,只有通过命令disksetup –I /dev/[r]dsk/cXbxtXdXs0对活动分区创建了slice子分区以后才能够正常使用,而pX则对应着具体的fdisk分区。

5)如果硬盘的fdisk分区只有2个,p1p2对应着分区1和分区2,而p3p4其实没有任何作用了,应为它们没有对应的fdisk分区。

6)系统自动创建的s1-sf15slice有对应的文件,如果通过命令prtvtocedvtoc去增加slice时,系统会在启动时为增加的slice创建设备文件,它们从s11开始,最多到sb7

Partition1

Partition2

(ACTIVE)

Partition3

Partition4

cXbXtXdXp1

(sb9)

cXbXtXdXp2

(sba)

cXbXtXdXp3

(sbb)

cXbXtXdXp4

(sbc)

s1

cXbXtXdXs0

(s0,代表整个Partition 2)

cXbXtXdXp0(sb8)

(代表整个硬盘)

s2

s3

s4

… …

sb6

sb7

1-1

阅读(1169) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~