Chinaunix首页 | 论坛 | 博客
  • 博客访问: 127994
  • 博文数量: 38
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 385
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-14 17:13
文章分类

全部博文(38)

文章存档

2009年(3)

2008年(35)

我的朋友

分类:

2008-12-01 15:06:42

第三章 管理本地磁盘设备
目标:
描述基本的磁盘结构
描述磁盘的命名规则
列出设备
重新配置设备
执行硬盘分区
管理磁盘的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) |
0

上一篇:solaris笔记一

下一篇:solaris笔记叁

给主人留下些什么吧!~~