第三章 管理本地磁盘设备
目标:
描述基本的磁盘结构
描述磁盘的命名规则
列出设备
重新配置设备
执行硬盘分区
管理磁盘的label
描述SMC
使用SMC分区
首先,先来说一下物理磁盘的组成:
磁盘的存储区域是由一些碟片组成的。
这些碟片是旋转的
磁盘读写定位机械臂移动磁盘头来进行定位
读写把数据读写到碟片表面的磁介质上。
一个碟片又被分为:扇区(一个扇区为512byte,也就是一个磁盘块),磁道,柱面
磁盘slice就是将一个磁盘在逻辑上分出来的分区。一般来说一个磁盘可以分成8个区0~7。
一般slice2代表整个磁盘。
一般的分配方式为:
0 /
1 swap
2 整个磁盘
3
4
5 /opt
6 /usr
7 /export/home
但是,在安装的时候,可以根据自己的需要来安装很分配。
磁盘的命名规则一般为:c#t#d#s#的方式。但是如果加如了卷管理的方式,磁盘的命名规则会根据卷管理软件的要求进行更改的。比如:vertias volume manager下为/dev/vx/dsk/dgname/volume。
C:一般 controller number
T:代表target number
D: 一般代表disk number
S: 一般代表slice number
在solaris下所有的磁盘一般被分为3种命名方式:
逻辑设备名
物理设备名
实名
逻辑设备名是来源于物理设备名的一个连接,连接于/devices目录。所有的逻辑设备名都在目录/dev下。逻辑设备名的命名方式就是采用c#t#d#s#。所有在/dev下的设备又分为/dev/dsk和/dev/rdsk两中块设备和字符设备。
物理设备名
物理设备名是系统中唯一用来标识本地物理设备的。设备名在/devices下。物理设备名是由一系列的接点名组成的。用/来进行路径的区分。光纤盘与其他的不太一样是有WWN(world wide name)号来表示。
实名是有kernel为每个设备分配的一个缩写名。
Sdn:代表SCSI硬盘。
Dadn:代表ide硬盘
Ssdn:代表光纤盘
查看设备设备名可以在/etc/path_to_inst文件中,有详细的设备列表清单。(查看网卡设备的时候比较轻松)
也可以使用prtconf |grep –v not来查看设备列表的清单。
在一个就是format命令。
重新识别设备的时候,可以通过3种方式一种是:
Touch /reconfigure
Init 5
然后,加上设备然后再重新启动。(基本上已经不用这样的方式了)
另一种是用drvconfig
再一种是devfsadm(8以后开始出现的命令)
format实用程序是一个系统管理员工具,用于在Solaris操作环境中对硬盘的准备工作。
用户可以通过使用format实用程序来进行磁盘的分类管理,主要的目的是对磁盘进行分区。
为磁盘分区,系统管理员需要:
。正确的识别磁盘
。规划磁盘
。使用format实用程序分区
。为磁盘加上新分区的标签(label)
只有root用户可以使用format实用程序。如果普通用户运行了format实用程序,系统将显示没有权限或者没有找到磁盘。
磁盘卷标和分区表
在Solaris操作环境中,每一个磁盘都在存储区域旁边指定一个区域,来设置关于磁盘的控制器,表面分布和分区的信息。
这个信息称为磁盘的卷标。其他部分则是用于描述内容的卷表(volume table of contents,VTOC)。这个磁盘卷标或者VTOC保存在磁盘的第一个扇区。
为一个磁盘建立卷标是为了要在磁盘上写入分区的信息。如果系统管理员在定义分区后忘记了为磁盘加卷标,分区信息就会丢失。
磁盘卷标的一个重要部分就是定义磁盘分区的分区表,分区在柱头上的分界线和所有分区的长度。
Flag:wm=磁盘分区是可写并且可mount的
wu=磁盘分区是可写并且不可mount的
rm=磁盘分区是可读并且可mount的
ru=磁盘分区是可读并且不可mount的
Cylinders分区的起始柱头数和终止柱头数
Size分区的长度:Mbytes(mb),Gbytes(gb),Blocks(b),Cylinders(c)
Blocks每个分区的柱头的总数和扇区的总数
定义磁盘Slices
Slices是定义在一个柱头组和柱头的长度上的。柱头组的起始位置是柱头0
定义磁盘partitions
下面描述了定义磁盘的partitions先决条件。
不良的条件
当建立或者改变底盘的slices时,有2种可能发生的不良条件:浪费的磁盘空间和重叠的磁盘Slices。
浪费的磁盘空间:当一个或者多个柱头没有在Slices中定位所产生的空间
重叠的磁盘Slices:当一个或者多个柱头同时被多个Slices定位。
定位磁盘分区表
当root用户使用format实用程序选择磁盘的分区时,一个磁盘分区表的拷贝就被读入内存并且显示当前的磁盘卷标。
Format实用程序通常是依赖于/etc/format.dat文件来读或者调用format实用程序。可以使用/etc/format.dat文件来快速定义可用磁盘表和预先的分区表。
用户可以使用下列命令来将从/etc/format.da文件中预先设定的分区表读入当前卷标。
。select:从/etc/format.dat文件中选择一个预先设定的分区表
。print:显示选择的分区表
。label:将选择的分区表写入磁盘的卷标
。verify:定位磁盘卷标和显示新信息
。disk:选择磁盘
。name:为改变了的分区表建立一个名字
。save:保存名字到./format.dat文件中
进行磁盘分区
按照下面的步骤为磁盘分区
1.Root用户在提示符前输入format并且回车
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,4000/scsi@3/sd@0,0
1. c0t1d0
/pci@1f,4000/scsi@3/sd@1,0
Specify disk (enter its number): 1
Format实用程序搜索所有已经绑定的磁盘,每个被找到的磁盘,format都显示他的逻辑设备名,硬件名,物理参数和物理设备名。
2.选择在磁盘逻辑设备名左边的编号选择第二个磁盘。
selecting c0t1d0
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
! - execute , then return
quit
用于分割Slices的特定的菜单包括
。partition:显示分区菜单
。label:将当前定义的分区写入磁盘卷标
。verify:读并且显示磁盘卷标
。quit:退出format实用程序
3.在format提示符输入partition
format> partition
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition菜单已经显示了。这个菜单使用户可以执行下列功能
。0-7:指定8个分区的柱头组和长度
。select:从/etc/format.dat中选择之前定义的分区表
。modify:改变之前定义的分区表
。name:命名当前的分区表
。print:显示当前的分区表
。label:将当前分区表写入磁盘卷标
4.在partition提示符输入print显示在内存中的磁盘卷标的拷贝。
partition> print
Current partition table (original):;分区名
Total disk cylinders available: 4924 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
1 unassigned wm 0 0 (0/0/0) 0
2 backup wm 0 - 4923 8.43GB (4924/0/0) 17682084
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 home wm 0 - 4923 8.43GB (4924/0/0) 17682084
分区的名字显示在第一行的括号中
下面显示每列的含义
。Part:磁盘的Slice编号
。Tag:之前定义的可选的标记符
。Flag:之前定义的可选的标志位
。Cylinders:Slice的起始柱头和结束柱头
。Size:Slice的容量
。Blocks:每个Slice的柱头的总数和扇区的总数
5.输入0选择Slice 0
partition> 0
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 400
partition>
6.当提示ID tag时,输入问号可以列出所有的可选项
7.按回车键则使用默认的tag
8.当提示permission flags时,输入问号可以列出所有的可选项
9.按回车则使用默认的flag
10.输入回车可以设置起始的柱头
11.为Slice 0输入新的容量
12.输入print,显示改变后的当前Slice 0
13.输入1选择Slice 1
14.按回车选择默认的tag和flags
15.输入Slice 1的新起始柱头
16.输入Slice 1的新容量
17.输入print显示改变后的Slice
18.输入7选择Slice 7
19.按回车选择默认的tag和默认的flag
20.输入Slice 7的新起始柱头
21.输入Slice 7的新容量,可以输入$,表示自动分配到最后一个柱头
22.输入print显示分区表
23.检测没有错误后,使用label命令为磁盘建立卷标
保存分区表到/etc/format.dat文件
1.在partition菜单输入name,并且输入一个唯一的名字
2.输入quit命令退出分区菜单
3.输入save保存新的分区表信息。输入/etc/format.dat的完整路径名
定位和使用定制的分区表
1.进入partition菜单
2.使用select命令选择定制的分区表
3.将选择的分区保存到磁盘卷标中
4.退出partition菜单
5.读新的磁盘卷标
6.退出format实用程序
使用modify命令重新分配磁盘
用户有时需要改变Slice的容量,例如磁盘扩容,或者减少。最简单的办法就是在partition菜单中使用modify命令。
当一个磁盘现有的Slice被重新分区并重新设置了卷标,那么磁盘上所有现有的数据都将丢失。现有的重要数据必须备份。
Free hog分区是用于一个保存其他Slice容量改变的磁盘空间
使用modify命令
使用下列步骤改变磁盘Slice的容量
1.输入format并且回车
2.选择一个适当的磁盘
3.输入partition
4.输入modify并且回车
5.输入回车以认可默认的选择
6.选择默认的选项并且回车或者输入yes
7.按回车认可Slice 6是Free Hog分区。如果Slice 6没有分配空间,那么用户必须指定其他的Slice
使用Free Hog Slice
当root调用format实用程序改变一个或者多个磁盘的Slices,一个“临时性“的Slice必须被指定来为扩张和收缩调节运做
当其他Slics是扩展的,恢复,独占或者一个Slice变小是牺牲的空间时,这个临时Slice是用于调整空间的。所以,这个临时的Slice有时被成为free hog
free hog分区只在安装或者运行format时存在。普通情况下是没有free hog分区存在的
8.输入Slice 0的容量,并且回车
9.按回车默认其他分区的容量
10.按回车确认使用这个分区表
11.给当前的分区命名
12.将改变了的分区表写入磁盘卷标
13.输入quit退出
查看磁盘的VTOC
用户可以使用2个方法来查看,定位磁盘的卷标或者VTOC
第一个方法是在format实用程序中是verify
第二个方法是调用prtvtoc命令
使用verify命令读磁盘的VTOC
1.在format提示符下输入verify并且回车
format> verify
Primary label contents:
Volume name = < >
ascii name =
pcyl = 7508
ncyl = 7506
acyl = 2
nhead = 19
nsect = 248
Part Tag Flag Cylinders Size Blocks
0 root wm 446 - 1376 2.09GB (931/0/0) 4386872
1 swap wu 0 - 445 1.00GB (446/0/0) 2101552
2 backup wm 0 - 7505 16.86GB (7506/0/0) 35368272
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 home wm 1377 - 7505 13.77GB (6129/0/0) 28879848
2.输入quit退出
使用prtvtoc命令读磁盘的VTOC
# prtvtoc /dev/rdsk/c0t0d0s2
。Dimensions(尺度):描述磁盘的物理尺度
。Flags:描述分区表中的flags
。partition:描述分区表
。flags:00=wm/01=wu/10=rm/11=ru
。First Sector:定义Slice的起始扇区
。Sector Count:定义Slice的总共扇区
。Last Sector:定义Slice的结尾扇区
。Mount Directory:显示当前的分区是否被挂接在某一目录中
fmthard命令
使用prtvtoc命令,用户可以保存磁盘的VTOC到一个文件。这允许用户在下列情况下使用fmthard命令来从新为磁盘建立卷标。
。在磁盘上的VTOC被破坏掉了
。因为偶然的原因导致磁盘上的分区表变化了
为了将prtvtoc命令的输出保存到其他磁盘的一个文件中,用户可以在fmthard命令中使用datafile变量。
Fmthard –s datafile /dev/rdsk/c#t#d#s2
如果发生了上面描述的其中一种情况,并且先前保存了一个文件,用户可以:
1.运行format,选择磁盘并且为默认的分区表设置磁盘卷标
2.使用fmthard命令将datafile中的信息写回磁盘
# fmthard –s /vtoc/c1t3d0 /dev/rdsk/c1t3d0s2
SMC是一个图形界面的管理方式,可以很容易直观的来使用,具体的使用过程在这里就不在详细说明了。说明一下SMC的启动和停止的步骤。
/etc/init.d/init.wbem status 查看运行状态
/etc/init.d/init.wbem stop 停止服务
/etc/init.d/init.wbem start 启动服务
阅读(1129) | 评论(0) | 转发(0) |