Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299797
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-15 10:51:44


管理磁盘
2 管理磁盘
2.1 逻辑设备名
所有磁盘都使用通用命名方案进行编号。此系统包含四个部分:
c 控制器编号
t 目标 ID(对于 SCSI 设备,此编号与 SCSI-ID 对应)
d 驱动器编号或 RAID 设备的 LUN(一个 ID,多个磁盘)
s 片、分区编号(见下面部分)
这些逻辑设备名作为链接存储在目录 /dev/dsk 和 /dev/rdsk 下。这些链接指向物理设备名,但仅在
执行引导设备更改之类的任务时才需要它们。用于管理驱动器的典型 Solaris OS 命令将逻辑设备名视为
其参数。
示例:c0t0d0s0 通常是工作站中的第一个驱动器,c0t1d0s0 是第二个驱动器,c0t6d0s0 是内置
CD-ROM 驱动器(通常 SCSI-ID 为 6)等。
在以下两种情况下会刷新 /dev/dsk 和 /dev/rdsk 目录:引导(在 OK 提示符下输入 boot -r)
时,或使用 devfsadm(在 Solaris 8 OS 之前使用 drvconfig;disks;devlinks)执行 Solaris OS 操
作时。刷新之后,便可看到引导时通过 probe-scsi-all 发现的所有设备的逻辑链接。
2.2 分区
在带有两个内置磁盘驱动器的工作站上,使用 format 命令会生成以下输出:
c0t0d0
c0t1d0
此列表将显示磁盘,而不是单个片或分区。format 就是用于创建和管理这些片(或分区)的。一个磁
盘最多可以包含八个片。可以使用 format 子命令 print - partition 显示这些片。
如果使用缺省安装,则 Solaris 安装程序工具便会将 OS 磁盘分为数个片:/(根)、/usr、/var 和
/export/home。Solaris 8 OS 缺省安装将创建三个片:(i) 约 1 GB 的根区,(ii) 交换空间(取决于内存
容量),以及 (iii) /export/home 的剩余磁盘空间。
对于工作站,此分区方案不是最优的。如果扩充分区的容量,则会丢失数据。在分区空间用尽的情况
下,必须创建指向其他分区的符号链接。尤其是对于服务器,必须为 /var 目录保留一个分区,这样,
用户存储在 /var/tmp 中的逐渐增长的日志文件或大文件便不会填满根分区,从而避免出现 OS 问题。
Solaris OS 初级系统管理员指南 5 版本 1.20e,2004 年 6 月
管理磁盘
工作站 OS 磁盘应当按照以下方式进行分区:
slice 0: / root-Partition, incl. /usr, /var, /opt plus
/export/home
slice 1: swap swap-Partition, as large as physical memory
slice 2: backup Do not change this partition!
It is always as big as the whole disk
slice 7: sds A small space reserved for Solstice DiskSuite(TM)
metadata
要准备使用 Solstice DiskSuite 逻辑卷管理器 (SDS),建议保留一些空间(30 MB,约 60 个柱面)用于复
制“状态副本数据库”。(后面提供详细信息。另请参见有关使用 SDS 镜像引导磁盘章节。)
从 Solaris 8 02/02 OS 开始,将会自动安装 Solaris Live Upgrade 软件。使用 Solaris Live Upgrade 软件,可
以于系统仍在运行时更新当前根环境的副本。要使用此功能(例如,不更改当前运行的系统,直接测试
新的 OS 版本),必须具有足够的空间以创建备用引导环境 (alternate boot environment, ABE)。现在的磁
盘容量通常足以允许使用下面的分区:
slice 0: / root-partition, incl. /usr, /var, /opt
slice 1: swap swap-Partition, as large as physical memory
slice 2: backup Do not change this partition!
It is always the size of the whole disk
slice 3: /export OS-independent data, home-directories
slice 4: , to be used as ABE with Live Upgrade
( about 150% of the expected size of / )
slice 7: sds A small space reserved for Solstice Disksuite metadata
此示例中的重要分区("/" 和 "/export")应当挂载 "logging"。这样,当机器在非正常关闭后重新引
导时,可以避免执行长时间的手动文件系统检查。缺省情况下不会启用此选项。安装之后,需要在
"/etc/vfstab" 的最后一列中手动将 "-" 替换为 "logging"。
2.3 故障转储
从 Solaris 7 OS 开始,故障转储缺省情况下写入 swap 分区。这也是为什么 swap 与物理内存一样大的
原因之一。
下次重新引导时,从 swap 中读回此文件,压缩后再写入 /var/crash/,用于以后分
析。因此,/var(或 /,前提是没有为 /var 定义特殊分区)也不应太小。
如果具有几千兆字节的系统使用交换分区作为转储设备,则由于存在上述复制过程,引导过程可能需要
一段时间。在这些情况下,最好是使用 dumpadm 定义专用转储分区。从专用转储设备(而不是从交换
空间)复制到 /var/crash 的操作在后台执行。
提示:经常检查并清理 /var/crash/ 的内容,保证此目录中的空间足以进行下一次故障
转储。
Solaris OS 初级系统管理员指南 6 版本 1.20e,2004 年 6 月
管理磁盘
2.4 示例
假设您具有 Sun Enterprise™ 450 系统和一个上面安装有完整配置的演示版的可引导磁盘,但是您不知道
以下两点:
1. 将磁盘插在哪里(此系统有 20 个插槽,只有当磁盘插入安装系统时其所在的插槽时,系统才能正常
引导)
2. 超级用户口令
首先将磁盘插入任意插槽,然后执行以下过程:
步骤 1:插入可引导 CD (Solaris Installation CD) 并重新引导系统。使用 STOP-A 中断,键入 boot
cdrom -s. cdrom 是内置 CD-ROM 驱动器的别名。如果使用外置驱动器,请找出设备路径(使用
probe-scsi-all)并从以下路径引导:boot -s。
引导系统之后,无需输入口令便可拥有根 shell。
步骤 2:现在挂载磁盘。首先让 Solaris OS 使用 devfsadm 重新生成设备树。随后在 /dev/dsk 下面应
有八个新文件。
现在使用 format 子命令 disk-print-partition 验证是否已正确连接新的磁盘,并确定已在哪个
片上定义根分区。通常,片 0 包含根分区。假设已将磁盘插入系统的插槽 2。格式化之后,会将磁盘识
别为 c1t2d0(连接到第一个控制器的 SCSI-ID 2),将片 c1t2d0s0 识别为根分区。因此可以挂载磁
盘:fsck -Y /dev/rdsk/c1t2d0s0; mkdir /tmp/disk; mount /dev/dsk/c1t2d0s0
/tmp/dsk
步骤 3:首先,通过删除 /tmp/dsk/etc/shadow 中冒号之间的加密字符,将超级用户口令重置为
“空”。然后,查看 /tmp/dsk/etc/vfstab 以确定此磁盘是否位于原有系统的插槽 2 中。如果
是,则根文件系统 "/" 应已挂载在 /dev/dsk/c1t2d0s0 上。如果在 /tmp/dsk/etc/vfstab 中
找到的挂载点为其他挂载点,请相应地更换磁盘的插槽。
步骤 4:假设 /tmp/dsk/etc/vfstab 中中中中中 /dev/dsk/c1t2d0s0。。。。。磁盘占用了原
有系统中的插槽 2。通常,Sun Enterprise 450 系统从第一个插槽 (c1t0d0s0) 中引导。使用 /dev/dsk
目录找出 c1t2d0s0 指向的物理设备名并将其记下。
步骤 5:重新引导。使用 STOP-A 并键入:boot
步骤 6:您可以定义别名 nvalias mydisk ,这样便可从现在开始
只需键入 boot mydisk。如果接着定义 setenv boot-device mydisk,则系系系系系系 mydisk
引引。
Solaris OS 初级系统管理员指南 7 版本 1.20e,2004 年 6 月
管理磁盘
2.5 可移除设备
2.5.1 卷管理
可移除设备由 Solaris Volume Manager 软件进行处理。此 Solaris Volume Manager 对 CD-ROM 进行检测
并自动将它们挂载到 /cdrom/cdrom0。
手动禁用 Solaris Volume Manager 时,将会出现错误;例如,使用纸夹而不是使用相应的 eject cdrom
命令移除 CD 时,便会出现这种情况。
在这种情况下,可以使用 /etc/init.d/volmgt stop; /etc/init.d/volmgt start 重新启动
Solaris Volume Manager。
2.5.2 软盘
插入软盘(UNIX® 或 MS-DOS 格式)之后,必须手动告知 Solaris Volume Manager:volcheck
如果成功执行了 volcheck,则会将磁盘挂载到 /floppy/floppy0。不要手动弹出软盘,应始终使
用 eject floppy。
2.5.3 CD-ROM
CD-ROM 不需要执行 volcheck。系统将自动检测到它们并将其挂载到 /cdrom/cdrom0。仅当 cdrom
路径中不存在 shell 或命令时,才能使用 eject cdrom 弹出 CD。fuser -c /cdrom/cdrom0 可输
出此 shell 或命令的进程 ID(fuser -k 可立即中止此进程)。
如果未安装卷管理,则必须明确挂载和弹出 CD-ROM(SCSI-ID 6 的示例):
- mkdir /tmp/cdrom
- mount -F hsfs /dev/dsk/c0t6d0s0 /tmp/cdrom
-(使用 /tmp/cdrom 上挂载的 CD)
- umount /tmp/cdrom
- eject /dev/dsk/c0t6d0s0
注意:仅当使用标准 ISO-9660 Rock Ridge 扩展创建了 CD 时,Solaris OS 才会检测到此 CD 上文件名和扩
展名的字符数分别超过了 8 个和 3 个。如果仅存在 Microsoft Joliet 扩展(大多数 Microsoft Windows CD
烧录工具的缺省设置),则所有文件名均被截断为 8.3(即为 "long~f.txt" 而不是 "LongFilename.txt")。
烧录 CD 时,应始终创建 Rock Ridge 扩展和 Joliet 扩展,以确保可在所有平台上读取 CD。
解决方法:创建文件名和扩展名分别不超过 8 个和 3 个字符的 ZIP 文件,然后将此文件烧录到 CD。在
目标平台上解压缩归档文件将会正确恢复所有长文件名。
Solaris OS 初级系统管理员指南 8 版本 1.20e,2004 年 6 月
管理磁盘
2.5.4 CD-R 和 CD-RW
Solaris 8 OS 软件捆绑有一种工具 cdrw,用于烧录 CD-R 或 CD-RW 介质。此工具可烧录 ISO 映像,
此映像可使用 mkisofs 从 Solaris OS 的文件系统或目录创建。
请看以下确切参数的示例:
#! /bin/sh
# ./nfscd
# PARAMETER1 = Application ID
# PARAMETER2 = from where
#
# ./nfscd SunNetManager /net/center2000/export/pkg/SUNWsnm
# set Umask
umask 022
# Remove old image
rm /data/disk.img
# Create image
mkisofs -A $1 -d -l -L -o /data/disk.img -P "Sun Microsystems" -p
"Solaris SPARC" -r -R -J -V "$1" -v $2
# Burn
cdrw -i /data/disk.img
2.5.5 USB 内存条
大多数较新的 Sun 系统都具有 USB 端口。因此,内存条将由 Solaris Volume Manager 识别和挂载,并创
建与 /cdrom 具有相同拥有权和权限属性的目录 /rmdisk。将 FAT 文件系统内存条插入 USB 插槽之
后,其内容应可作为 /rmdisk/ 进行读取。如果不能读取内存条的内容,请在指向 usb 路径的
/dev/dsk/... 中查找刚刚创建的链接,并尝试进行手动挂载:
mkdir /tmp/usbstick
mount -F pcfs /dev/dsk/c1t0d0s2:c /tmp/usbstick
2.5.6 磁带
磁带机不受卷管理的控制,而必须使用 tar 等命令进行处理。通常,磁带机作为外置 SCSI 设备连接到
系统。可以在 Solaris OS 运行时执行连接和配置操作。使用以前的 Solaris OS 版本运行 devfsadm
(Solaris 8 OS) 或 drvconfig;tapes;devlinks 时,您将会发现 /dev/rmt 目录中存在一些逻辑链
接。0 描述找到的第一个磁带机,1 描述第二个磁带机,依此类推。
随后便可使用 tar tvf /dev/rmt/0 访访访访访访访访。
注意:通过 SGI 系统写入的磁带通常只能使用不同的块大小进行读取:
tar tvfb 512 /dev/rmt/0
在极少数情况下,还必须执行一些字节交换:
dd if=/dev/rmt/0 conv=swab | tar tvfb 512 -
Solaris OS 初级系统管理员指南 9 版本 1.20e,2004 年 6 月
管理磁盘
2.6 克隆磁盘
使用此方法,可以将一个系统“克隆”到另一个系统。这两个系统必须属于相同的硬件系列。例如,可
以将 Ultra™ 10 工作站克隆到另一台 Ultra 10 机器,但是不能克隆到 Ultra 60 工作站。
如果目标系统的硬件配置确实与源机器存在细微的差别(不同的帧缓冲区或 NIC 等),则应在进行克隆
之后使用 boot -r 重重重重重重系系。
2.6.1 使用内置磁盘进行克隆
此方法适用于下列可轻松更换内置磁盘的系统:
• Ultra 30、Ultra 60、Ultra 80、Sun Blade™ 100 工作站或 E220R/E420R/E250/E450。
• Sun EnterpriseTM 220R、420R、250 或 450 服务器。
下面是使用 Ultra 60 工作站的示例:
• 将目标磁盘插入第二个内置磁盘托架。
• 使用单用户模式进行引导 (STOP-A; boot -s)。
• 使用 devfsadm 重重配配访配。
• 键入 format 以查找磁盘的名称。在 Ultra 60 工作站中,您将发现 c0t0d0 和 c0t1d0。c0t1d0 是
最上面的内置磁盘。
• 确定哪个磁盘为源磁盘,哪个磁盘为目标磁盘(请不要忘记备份数据!)。在我们的示例中,
c0t0d0(下面的磁盘)用作源磁盘,c0t1d0(上面的磁盘)为目标磁盘。
• dd if=/dev/rdsk/c0t0d0s2 of=/dev/dsk/c0t1d0s2 Bs=128k(此命令可按 1:1 比例复制
整个磁盘,其中包括分区表。如果源磁盘的容量为 9 GB,而目标磁盘的容量为 18 GB,则会浪费
9 GB 的容量。)警告:请仔细检查此步骤,以免无意中损坏源磁盘!
• fsck -Y /dev/rdsk/c0t1d0s0(根分区的文件系统检查,根分区通常为片 0。)
• 移除源磁盘,并将克隆磁盘插入以前的源插槽。重新引导新创建的克隆系统。
• 具有内置 FC-AL 磁盘的系统(例如在 Sun Blade 2000 工作站以及 Sun FireTM 280R 或 V880 服务器
上)需要执行附加操作:使用可引导的 Solaris CD-ROM 引导系统,挂载根文件系统并删除文件
/etc/path_to_inst 和 /etc/path_to_inst.old。然后使用 OK> boot -ar 以交互方式重
新引导系统,并在引导期间选择 recreate /etc/path_to_inst。
Solaris OS 初级系统管理员指南 10 版本 1.20e,2004 年 6 月
管理磁盘
2.6.2 使用交叉电缆进行克隆
此方法的克隆速度慢于上一节中所述的内置磁盘复制过程,但是它适用于不太容易更换内置磁盘的系统
(如在 Ultra 10 或 Ultra 5 工作站中)。
警告:请记住,只能将 /.rhosts 文件用于此任务。完成任务之后请删除此文件,以免存在永久性安
全风险。
目标源
boot
在登录屏幕上使用“命令行登录”
尽可能多地停止那些导致磁盘 I/O 操作的进程
TERM=vt100
vi /etc/inet/hosts
-> 插入目标磁盘和源磁盘
ifconfig hme0 plumb
ifconfig hme0 netmask 255...
up
-> 使用以下命令进行测试:rsh source ls
rsh source "dd if=/dev/rdsk/c0t0d0s2
ibs=128k obs=8k" |
dd of=/dev/rdsk/c0t0d0s2
ibs=8k obs=128k
(如果容量为 9 GB,则等待时间大约为 40 分钟。)
STOP-A
boot cdrom -s(使用可引导 CD)
fsck -Y /dev/rdsk/c0t0d0s0
在 /.rhosts
sync; sync 中插入目标 IP
2.7 使用 SDS 镜像引导磁盘
Solaris Volume Manager (SVM) 以前称为 Solstice DiskSuite (SDS) 软件,可用于配置磁盘子系统 RAID 0、
1、0+1 或 5。用于工作站安装的最杰出的功能为 RAID 1,使用此功能可以镜像包含根文件系统的磁盘以
防止磁盘出现故障。
SVM 是 Solaris 9 OS 的一部分。对于 Solaris 8 OS,SDS 软件位于第二张 CD 的目录 "EA" 中。对于
Solaris 7 OS Server Edition 或 Solaris 2.6 OS Server Edition,此软件位于 "Easy Access Server" CD 上。
假设某个工作站有两个内置磁盘:c0t0d0 和 c0t1d0。应该以完全相同的方式对这两个磁盘进行分区:
片 0 用作 /(根分区),片 1 用作交换空间,较小的片 7 用作状态副本数据库。片 2 始终定义为备份分区
(请参见“分区”一章)。
要将分区信息从第一个磁盘复制到第二个磁盘,请使用以下命令:
# prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2
Solaris OS 初级系统管理员指南 11 版本 1.20e,2004 年 6 月
管理磁盘
状态副本数据库是一些包含镜像状态信息的小文件。双向镜像中的每个磁盘都应至少包含三个状态副本
数据库:
# metadb -a -f -c 3 c0t0d0s3 c0t1d0s3
在下一步中,在包含根文件系统的第一个磁盘上创建第一个子镜像:
# metainit -f d50 1 1 c0t0d0s0
然后在第二个磁盘上创建第二个子镜像:
# metainit d52 1 1 c0t1d0s0
使用第一个子镜像生成前半个镜像:
# metainit d54 -m d50
使用 metaroot 以系统可以从元设备 d54 引导的方式修改 /etc/vfstab 和 /etc/system:
# metaroot d54
现在重新引导系统,然后附加第二个子镜像 d54。此操作会强制“镜像再同步”,从而将第一个磁盘上
的内容复制到第二个磁盘。这会对系统性能造成几分钟的影响。
# metattach d54 d52
为了避免在从第二个磁盘进行“紧急引导”时出现错误消息,应该以相同的方式镜像交换分区。否则,
仍会在 /etc/vfstab 中引用已损坏磁盘 c0t0d0s1 上的交换分区。
现在,既可以从第一个磁盘 (boot disk) 引导系统,也可以从第二个磁盘 (boot disk1) 引导系统。
如果其中一个磁盘已损坏,则 Solstice DiskSuite 软件会停止引导过程。出现这种情况的原因是:为了在
出现故障之后进行成功引导,大多数状态副本数据库必须“完好无损”。在双磁盘镜像中,六个副本中
只有三个完好无损。
对于具有两个以上磁盘的服务器,应始终具有使用状态数据库副本配置的第三个磁盘。必须手动修复双
磁盘工作站,如以下示例所述:
• 在 c0t0d0s7 和 c0t1d0s7 上配置状态数据库副本,磁盘 c0t0d0 出现故障。
• 引导过程停止,同时显示 Solstice DiskSuite 错误消息,然后切换到单用户模式。
• 现在必须取消配置出现故障的磁盘上的状态数据库副本:
metadb -d -f c0t0d0s7
• 下次重新引导之后,完全按照对完好磁盘进行分区的方式对替换磁盘进行分区。
• 执行此操作之后,便可在替换磁盘上创建新的状态数据库副本:
metadb -a -c 3 c0t0d0s7
• 下次重新引导时,将会再同步镜像。
提示:如果具有双磁盘系统,则在一个磁盘上创建三个状态数据库副本,在另一个磁盘上创建四个状态
数据库副本。从统计学意义上讲,出现故障之后不手动使用 metadb 而成功重新引导的几率为 50%。在
双磁盘配置中,如果允许在一个磁盘出现故障之后进行无人参与重新引导,请在这两个磁盘上创建相同
数量的状态数据库副本,并创建 /etc/system 条目:set md:mirrored_root_flag=1。有关本
主题的更多信息,可以在 Sun BluePrints™ 出版物《Configuring Boot Disks With Solaris Volume Manager
Software》中找到(请参见:)。
Solaris OS 初级系统管理员指南 12 版本 1.20e,2004 年 6 月
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(675) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~