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. 每个硬盘最多可以划分4个Partition;
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. 每个物理硬盘原则上最多是有256个Slice,实际上使用的只有188个,而这188个slice在系统中的体现要靠节点设备文件表现出来,如/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卡外挂了一个磁盘阵列柜,阵列柜有三个70G的SCSI硬盘,做了RAID 5,阵列柜的两个外接SCSI通道的ID都设为5,阵列柜做了RAID 5后,在逻辑盘空间划分了三个分区,这三个对应的逻辑号分别为0、1、2,这样通过主机的操作系统就能够看到三个硬盘的标识,通过系统命令”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用户下执行的,通过前面的”#”提示符可以看出来。
第2、4两行是IDE通道的信息,它们分别接着本地IDE硬盘(即第3行所示信息)和IDE光驱(即第5行所示信息)。
第6行是我们主机上的SCSI卡的信息,也就是接磁盘阵列柜的SCSI通道的信息,第7、8、9三行是磁盘阵列柜的三个分区的信息,这里的分区不同于我们对物理硬盘分区(Partition)的概念,它们类似于一个物理硬盘,操作系统在处理过程中也是安装一个物理硬盘来进行的。
2、UnixWare7.1.x硬盘的标识
在任何一个Unix操作系统中,每一个硬件设备都对应着一个设备文件名,通过文件来对设备进行管理和操作,当然,UnixWare7.1.x也不例外,它对于SCSI和非SCSI硬盘的管理也是通过设备文件来进行的,有如下两种形式:
/dev/[r]dsk/cCbBtTdDsS
/dev/[r]dsk/cCbBtTdDpP
各个部分的解释如下:
1)[r]dsk
/rdsk目录下是原始设备(字符设备);/dsk目录下是块设备。
2)cC
C是系统中的主机通道适配器或者是IDE控制器的序列号,C的范围是0到31。
在UnixWare7.1.x中,不同于SCO OpenServer 5.0.x中不同的适配器或IDE控制器的序列号是没有关系的,不是顺序增加的,例如有两个IDE控制器和两个SCSI控制器,在OpenServer中,第一个IDE控制器的C是0,第二个IDE控制器的C是1,第一个SCSI控制器的C是0,第二个控制器的C是1;而在UnixWare中,第一个IDE控制器的C是0,第二个IDE控制器的C是1,第一个SCSI控制器的C是2,第二个控制器的C是3,当然也可以第一个SCSI控制器的C是0,第二个控制器的C是1,第一个IDE控制器的C是2,第二个IDE控制器的C是3,就是说UnixWare中,不会区分控制器的类型而进行排序,它对所有的控制器(不论什么类型,IDE、SCSI或者其他)进行排序。
3)bB
B是HBA总线编号,范围是0到7(依赖于增加的适配器),对于IDE硬盘来讲它总是0。
4)tT
T是SCSI目标控制器标号(ID),这个ID的范围从0到31。第一个IDE硬盘是0,第二个是1。
5)dD
D是硬盘设备的逻辑单元号(即LUN),范围从0到31,D对IDE硬盘来讲都是0。
6)sS
S是硬盘的Slice号,范围从0到b7(十六进制),十进制是0到183。
7)pP
P是fdisk(1M)硬盘分区号,范围是从0到4,在硬盘分区表中,p0代表整个硬盘,而p1到p4分别表示用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],不是代表0到X中的任何一个,而是一个实际的范围,例如c