标题: 【申请加精】来自UC的《Solaris 10红宝书》系列在线课程
  本主题由 otto 于 2008-4-15 09:22 加入精华 
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:01  资料  个人空间  短消息  加为好友 
第12章 传统文件系统管理   
文件系统是一个目录的结构集合,它的作用是用来定位和存储文件的。本章所讲述的内容就是文件系统。

顶部
不容错过的IBM 集群技术资源汇总
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:05  资料  个人空间  短消息  加为好友 
12.2 UFS系统文件系统介绍   
UFS文件系统几乎是所有UNIX系统的基本文件系统,Solaris当然也不例外。本节主要结合Solaris 10在UFS文件系统方面的新特性,向你介绍UFS文件系统。

12.2.1 UFS文件系统的结构
Solaris 10典型的文件系统类型为UFS文件系统,但它也允许在/etc/default/fs中定义其他文件类型。在Solaris 10上,UFS文件系统驻留在硬盘上,这些硬盘同时具有原始设备接口和块设备接口,这两个接口分别位于/dev/rdsk目录和/dev/dsk目录中。Solaris 10文件系统所创建的每一个分区都在/dev/dsk和/dev/rdsk中有其自己的对应项。一个UFS文件系统的组成包括如下几部分。

 引导块(boot block):在文件系统可引导的情况下,引导块中包含有引导数据。

 超级块(super block):超级块中包含有关i节点的位置、文件系统大小、块数目,以及状态等信息。

 i节点(inode):存储文件系统的文件细节信息。

 数据块(data block):实际存储的文件。

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:12  资料  个人空间  短消息  加为好友 
12.2.2 如何建立新的UFS文件系统
1.创建UFS文件系统
为了创建一个新的UFS文件系统,我们首先将磁盘划分为不同的分区(Slie),然后再使用newfs命令在这些分区上创建新的文件系统,最后将这些文件系统安装到根目录中。在第11章设备管理的磁盘管理一节中我们已经介绍了具体方法,这里就不再多说。下面对newfs命令进行介绍。

# newfs [-N] [-b size] [-i bytes] /dev/rdsk/device-name

-N:此参数显示newfs命令的参数信息,并不是真正的要建立一个UFS文件系统。

-b:系统块(block)大小的设定,每个块的大小是4096 或8192 Bytes,默认每块大小是 8192 Bytes。

-i:每个i节点(inode)的字节数,默认i节点的大小是和磁盘大小有关的。

device-name:创建新的文件系统的磁盘设备名。

例如:newfs-b 4096 /dev/rdsk/c0t1d0s0。

2.挂接UFS文件系统
本地或远程文件资源被挂接到根文件层次,看起来就像是一个单一的文件系统,这个连接操作称为“挂接”,可利用mount命令完成。文件资源挂接到根文件层次的目录被称为挂接点。在调用挂接命令前,挂接点必须存在。

命令格式:

mount file_name mount_point

例如,将c0t3d0s0挂接到系统目录/export/home下:

# mount /dev/dsk/c0t3d0s0 /export/home

单独运行不带参数的mount命令将显示当前已挂接的文件资源。

12.2.3 使用/etc/vfstab文件管理文件系统
我们可以用mount命令和umount命令来手工管理文件系统,也可以通过文件系统表(/etc/vfstab)来管理。通过编辑/etc/vfstab文件,系统在启动时可自动地安装在本地的ufs文件系统、必需的nfs文件系统,以及其他的文件系统。

下面介绍/etc/vfstab文件的内容,以及如何编辑和使用该文件。文件系统表是ASSCII文件,注释行以#开头,下面的/etc/vfstab文件说明了系统中有两个硬盘,并安装了两个nfs文件系统说明。

#more /etc/vfstab

#device device mount FS fsck mount mount

#to mount to fsck point type pass at boot options

/dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s0 / ufs l no -

proc - .proc proc - no -

/dev/dsk/c0t0d0s1 - - swap - no -

swap - /tmp tmpfs - yes -

/dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s6 /usr ufs 2 no -

/dev/dsk/c0t3d0s7 /dev/dsk/c0t3d0s7 /files7 ufs 2 no -

pluto:/export/man - /usr/man nfs - yes ro,soft

gtxa:/export/man - /usr/man nfs - yes ro.soft

注意,“/”和“/usr”的自动安装(automount)域说明为no,这是因为在mountall命令运行前,系统启动时/和/usr已被安装了,如果将此值定义为yes,则mountall命令试图再去安装这两个已经安装的文件系统。/etc/vfstab文件中的每个域必须有值,若无值(即值为no)则必须填上一个“-”号。

下面详细说明/etc/vfstab文件的域。

Device to mount域,可安装的设备有:

 本地ufs文件系统的块设备(如/dev/dsk/c0t0d0s0);

 远程文件系统的资源名(如nfs文件系统myserver:/export/home);

 磁盘的swap区名(如/dev/dsk/c0t4d0s1);

 /proc目录和proc文件系统;

 hsfs类型的CD-ROM;

 pcfs和ufs类文件系统的软盘dev/diskette,这一域也用于说明swap文件系统。

Device to fsck域对应于文件系统的原始(字符)特别设备(如/dev/dsk/c0t0d0s0),它定义了fsck使用的原始接口,若没有对应的设备时则用“-”号说明,例如,只读文件系统或网络文件系统。

Mount point域,默认的安装点目录(如/usr目录下安装/dev/dsk/c0t4d0s6)。

FS type域,表明的文件系统类型。

fsck pass域,检测文件系统次数,用于决定是否需要检测文件系统。

 当该域是“-”号时不检测文件系统,当该域的值大于1时,则检查文件系统。

 等于0时,则检查非ufs文件系统,而不检查ufs文件系统。

 当fsck作用于多个ufs文件系统,而fsck pass值大于1,并且使用了-op选择项时,fsck会自动以最高的效率并行检测不同盘上的文件系统。

 当fsck pass值为1时,则顺序检测文件系统。

Mount at boot系统启动时,若需mountall命令自动安装文件系统,则为yes,否则为no。请注意,该域与自动安装软件毫无关系。

Mount options安装文件系统的选择项列表,它们以“,”号分隔,“-”号说明无任选项,任选项的值请参见mount(1M)手册。

下面介绍如何修改/etc/vfstab文件,以便挂接(mount)新的文件系统的步骤:

(1)进入超级用户;

(2)用vi等命令编辑/etc/vfstab文件;

(3)加入各项。用空格或Tab键分隔其中每个域,如果某个项没有值,则填上“-”号;

(4)保存该文件;

(5)检查安装点目录是否存在,不存在则建一个;

(6)运行mountall命令。

下面的例子说明了将/dev/dsk/c0t3d0s7盘区作为ufs文件系统安装到/test1目录中,安装任选项(读/写)为默认值,fsck设备是/dev/rdsk/c0t3d0s7字符设备,fsck pass值为2,说明该文件系统不采用顺序方式检测:

#device device mount FS fsck mount mount

#to mount to fsck point type pass at boot options

/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /files1 ufs 2 yes -

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:17  资料  个人空间  短消息  加为好友 
12.2.4 文件系统命令和一些文件系统配置文件介绍
1.文件系统管理命令介绍
表12-3简要地列出了部分文件系统管理命令。

表12-3 文件系统管理命令列表

命 令
说 明

clri(1M)
清除inode

df(1M)
报告磁盘空间、空闲磁盘块和文件数

ff(1M)
列出一个文件系统的文件名和统计信息

fsck(1M)
检测某个文件系统的完整性,并修复发现的损坏

fsdb(1M)
文件系统调试器

fstyp(1M)
查看文件系统的类型,比如:fstyp /dev/rdsk/cot3doso

labelit(1M)
当文件系统拷贝到磁带上时,列出或提供文件系统的标号(适用于volcopy命令)

mkfs(1M)
建立新的文件系统

mount(1M)
安装文件系统和远程资源

mountall(1M)
安装文件系统表(/etc/vfstab)中说明的全部文件系统

ncheck(1M)
用inode号产生路径名清单

umount(1M)
拆卸文件系统和远程资源

umountall(1M)
拆卸文件系统表说明的全部系统

volcopy(1M)
产生文件系统映像


2.文件系统配置文件
文件系统配置文件对管理文件系统有重要作用,其文件名如表12-4所示。

表12-4 文件系统配置文件

文件系统配置文件名
功能描述

/etc/vfstab
定义被mount到本地的文件系统

/etc/default/fs
定义本地默认文件系统类型,一般默认为ufs系统

/etc/dfs/fstypes
列出远程文件系统的类型

/etc/mnttab
列出当前被mount的文件系统和目录


12.2.5 UFS文件系统的数据一致性和日志记录
1.UFS文件系统数据的一致性
ufs文件系统根据一些文件系统数据(metadata,或称为元数据)来跟踪inode和目录信息,当这引起元数据与磁盘的数据没有适当同步(synochronized)时,就产生了不一致,这时就须修复文件系统。

下面是操作系统突然终止时使文件系统毁坏或产生不一致的几种情况:

 电源出故障;

 系统故障性阻塞(unplugging);

 不正常的关机;

 核心中的软件错误。

文件系统损坏虽然严重,但并不经常发生,系统启动时会自动检测文件系统,大部分情况下能修复检测到的问题。

文件系统检测是用fsck(file system check)程序实现的。fsck命令将已分配的但没有说明其来源的文件和目录放在lost+found目录下,如果该目录不存在,则由fsck建立。如果lost+found中没有足够的空间,fsck也会自动增大其空间。

下列情况发生时一般需要检测文件系统:

 文件系统不能安装;

 正在使用的文件系统产生问题;

 正在使用着的文件系统出现不一致时,控制台窗口会提示出非常醒目的出错信息,严重时甚至会发生系统瘫痪。使用fsck前请详细阅读fsck (1M)手册。

当然,我们也可以自行诊断磁盘分区,查看分区是否有一致性问题。其步骤如下:

(1)进入超级用户或授权角色用户;

(2)键入fsck-m命令来判断文件系统是否有问题,是否需要进一步修复。下例中说明第一个文件系统需要检测,第二个不需要检测:同时也说明磁盘分区c0t0d0s6需要修复。

#fsck -m /dev/rdsk/c0t0d0s6

**/dev/rdsk/c0t0d0s6

ufs fsck:sanity check:/dev/rdsk/c0t0d0s6 needs checking




# fsck-m /dev/rdsk/c0t0d0s7

* */dev/rdsk/c0t0d0s7

* * */dev/rdsk/c0t0d0s7

* ufs fsck:sanity check:/dev/rdsk/c0t0d0s7 okay

说明磁盘分区c0t0d0s7是好的,不需要修复。

诊断完磁盘分区的一致性后,如果发现有问题,可以按下面步骤进行修复。

修复文件系统的步骤:

(1)进入超级用户;

(2)拆卸(umount)有问题的文件系统;

(3)键入fsck命令进行修复。

下面的例子中检测/dev/rdsk/c0t0d0s6并校正其不正确的块计数。

#fsck /dev/rdsk/c0t0d0s6

checkfilesys:/dev/rdsk/c0t0d0s6

*Phase1 - Check Block and Sizes

INCORRECT BLOCK COUNT I=2529(6 should be 2)

CORRECT?y

* * Phase 2-Check Pathnames

* *Phase3- Check Connectivity

* *Phase 4-Check Reference Counts

* *Phase 5_Cylinder Groups

Dynamic 4.3 FFFS

929 files,8928 used.2851 free(75 frags,347 blocks.o.6% fragmentation)

/dev/rdsk/cotoos6 FILE SYSTEM STATE SET TO OKAY

*****FILE SYSTEM WAS MODIFIED ********

2.UFS文件系统日志(logging)
logging功能是UFS文件系统的一个挂接(mount)选项,它可以被设置在包括根目录在内的各个硬盘分区上。logging功能不但易于安装和使用,并且对数据安全非常有用。

Solaris的UFS logging通过使用系统中的空白数据块来工作。所有对文件系统数据(metadata,或称为元数据)的修改都被写在这些空白的区域。这些Metadata包括目录和inode信息,不包括文件中的数据本身。例如,创建文件时,目录结构被修改并且系统为这个新文件分配一个新的inode。以上这些行为被写入logging中。一旦数据的修改行为被写入logging的区域,系统就可以接着对文件系统做其他的操作了。

在后台,存在于logging中的信息将被同步到文件系统中,并自动更新相应的目录和inode,最终完成文件系统的操作。因此,这种做logging并在后台写入数据,比通过随机的I/O访问直接对分布在硬盘上的各种管理信息进行修改的方式速度要快得多。

用来做logging的空间的大小取决于文件系统的大小。每1 GB磁盘分区空间的logging空间为1 MB,最多不超过64 MB。这部分logging空间被循环使用,当log中记录的关于文件系统的修改都被应用于文件系统后,记录的那部分空间就会被清空而重新使用。

通常对于UFS来说,如果操作系统在任何文件系统操作中崩溃,整个文件系统都需要用fsck命令做一致性检查。这个命令的执行可能需要几分钟的时间,因为它须检测所有的metadata和文件的数据,包括当前已经用的空间、未用的、inode的数量等,修复其中不一致的地方以确认文件系统的完整性。当然出现比较大的问题时还需要人工干预。在做检查的过程中有可能会丢失文件,甚至目录。这决定于crash发生时,该操作进行到了哪种程度。如果采用logging功能,情况就会完全不同。因为metadata的修改首先被写在日志空间而不是文件系统中。如果系统崩溃重启后,系统首先会检查logging的数据,以决定在上一次的文件系统中,哪种修改已经做过了,哪种修改即将做,哪种修改正在做。做过的和即将做但还没有做完的操作将被系统从日志中删掉。如果在日志中记录了足够的数据来完成某项操作,该操作就会被继续完成,否则就取消这种操作。熟悉数据库操作的用户会发现这和数据库软件中的事务处理过程非常相似。最终的结果是,文件系统能够最大限度地保持一致,不需要进行彻底的文件系统检测,整个文件系统检测(check)过程只需要花几秒钟时间。

文件系统日志功能从Solaris 7开始就被支持,但直到在Solaris 10版本,系统的所有UFS 文件系统才默认启用日志记录功能。

在Solaris 10中,关闭文件系统日志的方法是在/etc/vfstab文件中只要加上“nologging”属性,然后重启计算机即可。

顶部
不容错过的IBM 集群技术资源汇总
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:19  资料  个人空间  短消息  加为好友 
12.2.6 备份和恢复ufs文件系统
1.备份UFS文件系统
备份是指对文件进行拷贝,用来作为原文件被删除或毁坏时的安全措施。通常做法是将其拷到可移动的介质中。备份文件后可方便地恢复误删的文件,但更重要的是用于处理严重的硬件故障和其他灾难性故障。

备份文件是最关键的系统管理功能之一,按照一定的步骤和计划实现系统文件的备份有下述三个主要原因:

 确保系统瘫痪时文件系统的完整性;

 防止用户文件被误删;

 作为重新安装系统或修复系统的重要保护措施。

当按计划备份文件系统时,应保证能够将备份文件恢复为当前状态。另外,你可能想将备份好的文件系统从一个系统传到另一个系统中作为文档,或将文件保存到可移动的介质上,这样就能够移动或改变系统上的文件。

按计划备份文件需考虑下面几方面的内容:

 用哪个命令备份文件系统;

 用何种介质;

 使用什么备份计划;

 这一系统中哪些文件对用户是至关重要的;

 这些要备份的文件在什么地方:它们是否在一个单独的文件系统中;

 这些文件是否经常变化;

 当文件丢失或损坏时需要多快恢复;

 为备份文件,相关文件系统是否可经常拆卸。

更详细的备份策略请参见联机手册ufsdump(1M)命令中提供的转贮(dump)策略。

下面介绍如何用盒式磁带及ufsdump命令备份文件。

实现完全备份

为了备份完整的文件系统,所有的用户必须退出,并使系统进入单用户方式(磁带设备命名的内容请参见第11章设备管理的磁带设备部分)。

如果磁带设备位于远程计算机上,可以在磁带设备名之前加上远程计算机名。例如:在远程计算机host1上的磁带机名是/dev/rmt/0,则在本机上远程设备名应为host1:/dev/rmt/0。

下列步骤说明如何实现文件系统级(完整)备份:

 键入init s时系统进入单用户方式,这样就保证了备份全部文件系统时没有用户修改文件系统;

 插入磁带;

 键入ufsdump 0 cuf /dev/rmt/0 /dev/dsk/cWtXdYsZ。

任选项0说明的0级备份,也就是完全备份;c任选项说明是盒式磁带;u任选项更新转贮记录;f任选项指定dump文件(逻辑设备名或磁带设备)。

 例12-1 实现完全备份。

# init s

#ufsdump 0 cuf /dev/rmt/0 /dev/dsk/c0t0d0s7

DUMPate of this level 0dump:Wed Mar 11 10:16:53 1992

DUMPate of last level 0 dump:the epoch

DUMPumping /dev/rdsk/c0t3d0s7(/export/home)to/dev /rmt/0

DUMP:mapping (Pass I)[regular files]

DUMP:estimated 956 blocks (478KB)

DUMP:Writing 63 Kilobyte records

DUMP:dumping(Pass III)[directories]

DUMP:dumping (pass IV)[regular files]

DUMP:level o dump om Wed Mar 11 10:16:53 1993

DUMP:956 blocks (478KB)on 1 volume

DUMPUMP IS DONE

#

如果一盒带存不下,则ufsdump命令会提醒你什么时候该换一盒新带。在磁带上标明命令、文件系统名及备份日期等信息。

实现增量备份

用ufsdump命令可指定不同的备份级别,0级代表完全备份,而1~9级代表任意的增量备份。1~9均为区分增量备份的号码,系统管理员可以使用这些号码设计出不同的备份策略,比如,日增量备份,我们可以选一个号码9来表示;周增量备份,选一个8号码来表示;月增量备份,选择一个7号码表示等。当然,还可制定出其他的备份策略,比如:周一到周五可以分别为5,6,7,8,9等级号码,这些都是周增量备份,而周日则用0级完全备份。

现在增量备份步骤如下:

 使系统进入单用户模式;

 进入超级用户;

 将磁带放入磁带机中;

 键入ufsdump [1-9] ucf /dev/rmt/ /dev/rdsk/ctds在ufsdump参数前加上级数,如9级备份,键入9ucf;

 执行完ufsdump命令后取出磁带并贴上标签。

2.恢复UFS文件系统
ufsrestore命令可以将用ufsdump命令备份的文件拷贝恢复到当前工作目录中。我们可以用ufsrestore命令恢复0级备份后,再使用增量备份恢复,以接近或达到故障发生点。当然,也可以使系统恢复到故障发生以前的任意时刻。

下面是恢复文件系统之前需要知道的信息:

 需要哪个带或盘;

 备份文件系统的设备名;

 你使用的磁带设备类型;

 磁带设备名(本地或远程)。

决定使用哪个备份带

在开始恢复文件或文件系统之前,必须决定使用哪一备份磁带,下面是选择备份磁带的考虑步骤:

(1)向用户寻问有关文件或文件系统丢失的日期,或文件还原的大概时间。

(2)如果系统没有完全破坏,就只须增量备份,结合你的备份计划和故障时间,找出适合的备份版本,这个版本不一定是最新的。

(3)如果系统已经破坏,须恢复全部文件系统时,需要最新的0级备份带。或者在一次全部备份的基础上进行几次增量备份,以接近故障的时间点。

恢复全部备份

如果一个硬盘上的文件系统全部损坏,就需要对这块盘进行完全恢复。下面是采用盒式磁带恢复一个文件系统的完整备份的过程。注意,这一过程将用新的文件系统来代替原来存在的文件系统。

(1)进入超级用户;

(2)进入单用户模式,确保没有人使用你将恢复的文件系统;

(3)使用umount来卸载故障盘;

(4)在故障盘上重新建立UFS文件系统;

(5)将新的UFS文件系统盘挂接上;

(6)进入你希望做恢复的目录中;

(7)插入盒式磁带;

(8)使用ufsrestore rvf /dev/rmt/0将文件系统恢复。

 例12-2 硬盘c0t0d0s7的挂接点为/files1,要将此盘做完全恢复。

host%su

Password:

#init s

#umount /files1

#newfs /dev/rdsk/c0t0d0s7

#mount /dev/dsk/c0t0d0s7 /files1

#cd /files1

#ufsrestore rvf /dev/rmt/0

交互式恢复单个文件或目录

恢复单个文件或目录时,将它们存入临时目录(如/var/tmp)是个好方法,经过确认正确无误后才恢复目标目录。下面是交互式恢复文件的步骤:

(1)进入超级用户;

(2)将备份带放入磁带驱动器中;

(3)键入cd /var/tmp,如果你希望将文件存放在其他目录下,则用相应的目录名代替/var/tmp;

(4)键入ufsrestore if /dev/rmt/,一些提示信息和提示号显示出来;

(5)建立要恢复的文件清单;

(6)用ls命令列出一个目录的内容:

 键入cd改变目录;

 将一个目录名或文件名加到将要恢复的文件清单中,键入add;

 若要删除将要恢复的文件清单中的目录名或文件名,则键入delete;

(7)建完清单后,键入extract,ufsrestore会问你用哪一卷;

(8)键入卷号按Enter键,如果只有1卷,键入1并按Enter键,清单中的文件或目录就被取出并恢复到当前工作目录中;

(9)保持当前目录的模式不变,键入setmodes然后键入“n”并按Enter键;

(10)键入quit则显示Shell提示符;

(11)用ls -l命令列出已恢复的文件或目录;

(12)检查文件列表,确保所有文件或目录均被恢复;

(13)用mv命令将文件移到合适的目录中。

 例12-3 从/etc目录中恢复passwd和shadow文件。

# cd /var/tmp

# ufsrestore if /dev/rmt/0

ufsrestore> ls

.:

.:

.sunw/ export/ net/ sbin/ usr/

Sources/ etools/ opt/ scde/ var/

b/ home/ ptools/ set/ vol/

bin kernel/ pkg/ share/

dev/ lib/ platform/ shared/

devices/ lost+found/ proc/ src/

etc/ mnt/ rtools/ tmp/

ufsrestore> cd etc

ufsrestore> add passwd shadow

ufsrestore> setmodes

set owner/mode for “.”? [yn] n

ufsrestore> extract

Extract requested files

You have not read any volumes yet.

Unless you know which volume your file(s) are on you should start

with the last volume and work towards the first.

Specify next volume #: 1

extract file ./etc/shadow

extract file ./etc/passwd

Add links

Set directory mode, owner, and times.

set owner/mode for ‘.’? [yn] n

ufsrestore> quit

# cd etc

# mv passwd /etc

# mv shadow /etc

# ls -l /etc

使用非交互模式从备份带中恢复单个文件(ufsrestore)

下面是从备份带上恢复单个文件的过程:

(1)进入超级用户;

(2)将备份带插入;

(3)键入cd /var/tmp进入/var/tmp目录下,如果要将备份文件恢复到不同的目录中,用相应的目录代替/var/tmp即可;

(4)键入ufsrestore xvf /dev/rmt/n,x任选项说明拷贝文件或目录时是否设置所有者/模式的信息;v任选项说明显示被恢复的文件名;f选项说明磁带设备名;

(5)键入卷号,如果只有1卷,键入“1”,这时文件被恢复到当前工作目录中;

(6)键入“n”,目录的模式保持不变;

(7)键入ls –l文件清单显示出来;

(8)用mv命令将文件移到合适的目录中。

 例12-4 用非交互模式恢复/etc/passwd文件。

# cd /var/tmp

# ufsrestore xvf /dev/rmt/0 ./etc/passwd

Verify volume and initialize maps

Media block size is 126

Dump date: Wed Jul 28 16:13:52 2005

Dumped from: the epoch

Level 0 dump of / on starbug:/dev/dsk/c0t0d0s0

Label: none

Extract directories from tape

Initialize symbol table.

Extract requested files

You have not read any volumes yet.

Unless you know which volume your file(s) are on you should start

with the last volume and work towards the first.

Specify next volume #: 1

extract file ./etc/passwd

Add links

Set directory mode, owner, and times.

Specify next volume #:1

extract file ./etc/passwd

Add links

Set directory mode, owner, and times.

set owner/mode for ‘.’? [yn] n

# cd etc

# mv passwd /etc

# ls -l /etc

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:21  资料  个人空间  短消息  加为好友 
12.2.7 UFS文件系统的快照
在12.2.6节中我们介绍了UFS备份和恢复的方法,读者可能已经发现,使用ufsdump备份的时候总需要进入单用户模式,这对于时刻提供服务的主机来说是非常不方便的。下面我们介绍的文件系统快照(Snapshot)就能解决这个问题,它可以在多用户的情况下,让我们进行文件系统备份。

首先,我们来介绍一下快照是什么?

快照(Snapshot)是文件系统的暂存瞬间映像,主要用于备份操作。我们使用fssnap命令会创建一个虚拟设备和一个后备存储文件。这个虚拟设备不论看起来或实际运行都像真实的设备。后备存储文件是位映射文件,该文件中包含进行快照之前的数据的备份。

我们建立快照(Snapshot)就是为了在多用户的情况下备份这个虚拟设备,以便在故障发生之后进行系统恢复。

1.创建和删除UFS快照(Snapshot)
创建UFS快照(Snapshot)

在创建UFS快照(Snapshot)之前,我们必须注意几个问题:

 注意存放后备存储文件的空间要足够大。如果不够大,创建工作就会失败,查看日志就可以发现失败原因;

 最好有个专门的目录来存储后备存储文件;

 你不能在一个文件系统上做这个文件系统的部分目录的UFS快照(Snapshot)。

对于最后一点注意事项,需要解释一下。

如果硬盘空间分配如下:

# df -k /usr

Filesystem kbytes used avail capacity Mounted on

/dev/dsk/c0t0d0s0 3618177 2190002 1391994 62% /

说明/usr与/在一个硬盘分区。当你试图去建立/usr目录的快照时就会出现下列情况:

# fssnap -F ufs -o bs=/snaps/usr.back.file /usr

snapshot error: Invalid backing file path

这个信息告诉我们不能在同一个文件系统上建立这个文件系统的快照。

下面是我们创建UFS快照(Snapshot)的步骤:

(1)成为超级用户或授权角色用户;

(2)使用df-k命令确定有足够的备份空间;

(3)确保目录的后备存储文件名是惟一的;

(4)使用下面命令创建UFS快照(snapshot)。

# fssnap -F ufs -o bs=/backing-store-file /file-system

注意:后备存储文件的快照要位于不同的文件系统。

(5)使用下面的命令来验证快照是否成功创立。

# /usr/lib/fs/ufs/fssnap -i /file-system

 例12-5 创建UFS快照。

创建/usr目录快照:

# fssnap -F ufs -o bs=/var/tmp/usr.back.file /usr

/dev/fssnap/1

下面命令是限定后备存储文件的大小为500MB。

# fssnap -F ufs -o maxsize=500m,bs=/var/tmp/usr.back/usr

/dev/fssnap/1

使用下列命令来显示快照信息:

# /usr/lib/fs/ufs/fssnap -i

Snapshot number : 1

Block Device : /dev/fssnap/1

Raw Device : /dev/rfssnap/1

Mount point : /usr

Device state : idle

Backing store path : /var/tmp/ usr.back.file

Backing store size : 0 KB

Maximum backing store size : Unlimited

Snapshot create time : Thu Jul 01 14:50:38 2004

Copy-on-write granularity : 32 KB

删除UFS快照(Snapshot)

删除UFS快照有两种方法,如果在建立快照时使用了unlink参数,那么可以使用fssnap-d命令将快照和后备存储文件一同删除;如果建立快照时没有使用unlink参数,这个fssnap-d命令只能删除快照,至于后备存储文件还要用rm命令删除。

下面命令是使用unlink参数创建快照的方法:

#fssnap -F ufs -o bs=/var/usr.snap,unlink /usr

删除:

#fssnap -d /usr

Deleted snapshot 1.

如果没有使用unlink参数,接下来还有一步:

#rm usr.snap

2.备份和恢复UFS快照(Snapshot)
备份UFS快照(Snapshot)

创建完快照后,可以用任何标准的Solaris备份命令来备份这个快照。因为这个快照虽然是个只读的虚拟设备,但你可以像对待真正的设备一样备份它。

如果使用ufsdump来备份快照,我们既可以在创建完快照再备份,也可以在创建快照的同时来备份。

下面我们分别进行介绍。

先用ufsdump完全备份/dev/rfssnap/1虚拟设备:

# ufsdump 0ucf /dev/rmt/0 /dev/rfssnap/1

如果要在创建快照的同时备份虚拟设备:

#ufsdump 0ucf /var/usr_snap.dmp `fssnap -F ufs -o bs=/var/usr.snap,unlink /usr`

此外,其他标准的Solaris备份命令,比如tar也能备份,步骤如下:

(1)成为超级用户或授权角色用户。

(2)为快照创建挂接(mount)点,比如:

# mkdir /backups/home.bkup

(3)挂接快照:

# mount -F ufs -o ro /dev/fssnap/1 /backups/home.bkup

(4)进入快照的目录:

# cd /backups/home.bkup

(5)使用tar命令将快照内容备份到磁带上:

# tar cvf /dev/rmt/0 .

恢复UFS快照(Snapshot)

恢复快照和恢复其他的备份文件没有本质区别,请参见12.2.6节中所述,这里不再重复。

12.2.8 多TB UFS文件系统介绍
以前,UFS文件系统在64位系统和32位系统上的大小仅限于约1 TB (1TB=1000G)。

现在,Solaris 10在运行64位Solaris内核的系统上支持多TB UFS文件系统。系统命令和公用程序也已更新为支持多TB UFS文件系统。但需要注意的是,只有UFS文件运行64位内核的系统才支持多TB UFS文件系统。

开始时你可以创建一个小于1 TB的UFS文件系统,然后可以使用newfs -T命令来指定该文件系统以后可增大为一个多TB文件系统。此命令设置索引节点和碎片密度为多TB 文件系统进行相应的伸缩。

多TB UFS文件系统的功能包括:

 可以创建一个容量最大为16 TB的UFS文件系统。

 可以创建一个容量小于16 TB的文件系统,该文件系统以后最大可以增加到16 TB。

 可以在物理磁盘和Solaris卷管理器的逻辑卷上创建多TB文件系统。

 在容量超过1 TByte的文件系统上将默认启用UFS日志记录功能。多TB文件系统将受益于启用UFS日志记录功能而带来的性能提高。多TB文件系统还将受益于日志记录功能的可用性,因为在启用日志记录功能时,fsck命令可能无须运行。

多TB UFS文件系统的局限性包括:

在32位操作系统中,多TB UFS文件不被支持。

 无法在运行32位Solaris内核的系统上安装容量超过1 TB的文件系统。

 无法在运行64位Solaris内核的系统上从一个容量超过1 TB的文件系统进行引导。该局限性使你无法将root (/)文件系统放置在一个多TB文件系统上。

 这些系统不支持大小超过1 TB的单个文件。

 每TB UFS文件系统的最大文件数是1百万。比如4个TB的文件系统,就最多有4百万个文件数。此限制用于节省使用fsck命令检查文件系统所花费的时间。

 在多TB UFS文件系统上设置的最高限额是块大小为1024字节的2 TB。

 使用fssnap命令可以创建多TB UFS文件系统的快照。

1.创建多TB UFS快照
在12.2.7节中介绍过UFS快照,UFS快照的大小是有限制的,每个文件不能大于512 GB。在多TB UFS系统中创建UFS快照,其大小限额也和普通UFS系统一样不能大于512 GB。

需要指出的是,在建立多TB UFS快照时,不论你指定后备存储文件名与否,都将产生多个小于512 GB的文件,而且文件名的后缀为.2,.3等。

 例12-6 建立大小为1.6 TB的后备存储文件。

# fssnap -F ufs -o bs=/var/tmp /data2

/dev/fssnap/0

# /usr/lib/fs/ufs/fssnap -i

Snapshot number : 0

Block Device : /dev/fssnap/0

Raw Device : /dev/rfssnap/0

Mount point : /data2

Device state : idle

Backing store path : /var/tmp/snapshot0

Backing store size : 0 KB

Maximum backing store size : Unlimited

Snapshot create time : Fri Sep 10 13:13:02 2004

Copy-on-write granularity : 32 KB

# ls /var/tmp

snapshot0 snapshot0.2 snapshot0.3 snapshot0.4

本例中,我们没有指定后备存储文件名,系统自己指定了文件名,并将其分为四个文件,这四个文件都是/dada2目录的快照。

2.如何创建多TB UFS文件系统
创建多TB UFS文件系统步骤:

(1)成为超级用户;

(2)在逻辑卷上创建多TB UFS文件系统。

下面是创建1.8T的文件系统。

# newfs /dev/md/rdsk/d99

newfs: construct a new file system /dev/md/rdsk/d99: (y/n)? y

/dev/md/rdsk/d99: 3859402752 sectors in 628158 cylinders of 48 tracks,

128 sectors

1884474.0MB in 4393 cyl groups (143 c/g, 429.00MB/g, 448 i/g)

super-block backups (for fsck -F ufs -o b=#) at:

32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 702...

Initializing cylinder groups:

........................................................................

super-block backups for last 10 cylinder groups at:

3850872736, 3851751456, 3852630176, 3853508896, 3854387616, 3855266336,

3856145056, 3857023776, 3857902496, 3858781216,

#

(3)校验新的文件系统。

# fsck /dev/md/rdsk/d99

** /dev/md/rdsk/d99

** Last Mounted on

** Phase 1 - Check Blocks and Sizes

** Phase 2 - Check Pathnames

** Phase 3 - Check Connectivity

** Phase 4 - Check Reference Counts

** Phase 5 - Check Cyl groups

2 files, 2 used, 241173122 free (0 frags, 241173122 blocks, 0.0%

fragmentation)

#

(4)Mount新的文件系统。

# mount /dev/md/dsk/d99 /bigdir

# df -h /bigdir

Filesystem size used avail capacity Mounted on

/dev/md/dsk/d99 1.8T 64M 1.8T 1% /bigdir

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:23  资料  个人空间  短消息  加为好友 
12.3 网络文件系统(NFS)介绍   
12.3.1 NFS文件系统介绍
我们称NFS文件系统为网络文件系统,因为它允许客户端通过网络连接来挂接其他系统的磁盘卷。在这里,提供共享磁盘的主机为服务器,挂接服务器磁盘的主机是客户机。客户机可以像对待本地文件系统一样在服务器的共享磁盘上进行诸如修改、删除和创建文件。它很像Windows中的共享文件夹,也有读者觉得NFS和Samba比较相似,因为它们都支持系统间透明文件系统的共享。但是,由于NFS有专门的Solaris内核的支持,因而它有更高的数据吞吐能力。

NFS文件系统是一个基于远程过程调用(RPC)的分布式文件系统结构。NFS利用了远程调用(RPC)技术,该技术使得系统可以很方便地实现对服务器系统过程的远程执行请求。目前,RPC已经得到很多操作系统的支持,包括Solaris,Linux,以及Microsoft Windows。RPC的目的就是对通过网络进行过程的具体连接细节和方法进行抽象。这样,客户端和服务器就无须配备专门的网络代码,就可以进行网络文件的共享了。

在Solaris 2.5以前的版本中,运行的是NFS2。由于它的数据传输采用了不太可靠的UDP协议,所以效果较差。而NFS 3是基于TCP协议的,数据传输比UDP协议更可靠。并且,NFS 3允许NFS服务通过缓存来加快磁盘的读写速度。此外,Solaris 2.6以后还提供了一种新型的NFS支持,这就是WebNFS。作为传统Internet文件共享技术(如FTP)的一种替代技术,WebNFS允许文件系统通过Internet实现共享。另据实验表明,Sun的WebNFS比传统的Web服务器具有更大的带宽,这意味着WebNFS很有可能在将来取代超文本传输协议(HTTP)而成为Web数据传输的标准。

在Solaris 10中,默认安装NFS 4,它比起NFS 3主要有以下改进:

 在NFS V4协议中,文件加锁的实现和以前的NFS协议有很大的不同。为文件加锁的RPC操作从分离的协议移到了核心协议之中,而rpc.lockd,rpc.statd和rpc.mountd在NFS V4中将不再被使用,但它们仍然存在于Solaris 10系统之中,以便支持NFS 3。

 NFS 4.0版的Solaris实现与Kerberos V5完全集成,又称做SEAM,可以提供验证、完整性和保密性。

 使用NFS版本4后,文件将不再在前台文件系统中进行高速缓存。后台文件系统将提供所有文件访问权。并且,由于前台文件系统中没有高速缓存任何文件,因此特定于CacheFS的安装选项(该选项影响前台文件系统)将被忽略。特定于CacheFS的安装选项不适用于后台文件系统。

12.3.2 NFS服务器的设置
要想使NFS服务器能够工作,只需要做两个方面的工作,首先是设定共享的目录,其次是启动NFS服务器。

1.设定、检查和取消共享的目录
设定共享的目录

使用share可以实现文件系统和目录的共享。例如,如果我们希望将host1上的/var/mail目录共享给host2,则在host1上可以使用下列命令:

host1#share -F nfs -o rw=host2 /var/mail

在该例中,“-F nfs”代表“NFS的文件系统”。如果我们还想将该目录共享给host3和host4,可以使用下面的命令:

host1#share -F nfs -o rw=host2:host3:host4 /var/mail

“rw”是“读写”的意思,如果我们只共享一个CD-ROM,则只须共享它的只读权限:

host1#share -F nfs -o ro /cdrom

NFS还有一个真正的特点,就是在将自己的目录共享给客户机时,还能挂接上客户机共享的目录。比如,host1将自己的/var.mail目录共享给了host2,host3和host4,如果此时host2也有共享目录/usr/local/且允许host1挂接,那么host1就可以将/usr/local/挂接到本地。

再举一个share命令的例子,将host1的目录/exprot/home/games共享:

host1# share -F nfs -o ro=@192.168.0.0/16:host2 ,root=host3 /export/home/games

结果表明:192.168.0.0这个B类网的机器和host2主机有读的权限;host3主机的root用户可以对共享资源有超级用户访问权限。但需要说明的是,即使host3主机的root用户可以对共享资源有超级用户访问权限,对共享目录/exprot/home/games也是只读,因为服务器本地权限大于任何share的权限。

Share命令是NFS服务器上的一个重要的命令,该命令还有以下参数。

# share:显示所有可以安装的资源,不管它是否已经被安装。

# share [ -F filesystem ] [ -o options ] [-d description ] pathname-to-resource:指定共享文件。

-F file system type:指定被共享的文件系统类型。

-o options:指定客户对资源访问的类型。

-d description:共享资源的简单描述。当你share命令不带任何参数运行,它就会被显示。

pathname-to-resource:在服务器上共享的资源名字。

-o:指定了允许客户访问共享资源的用户权限。具体如下。

 rw:表示用户可读/写,是默认值。

 rw=client1:client2指定客户端用户可以有读/写权限。可以有很多用户,用冒号分隔。

 ro:表示只读。

 ro=client1:client2 指定用户client1和client2只读。client1可以是用户名,也可以是IP地址,或者一个网段。例如:ro=@192.168.0.0/16。

root=client:client2 指定client1和client2上的root用户对共享资源有超级用户的权限。但是,它们的优先级小于nfs服务器的本地权限。

在终端上运行share命令可以立即生效,但系统重新启动后就会消失。如果将share命令写到/etc/dfs/dfstab配置文件中文件中的话,就可以在启动NFS服务的时候自动加载。写在dfstab配置文件中的格式上面介绍的终端命令行输入是一样的。此外,还可以使用下面两个命令手工加载和卸载。

# shareall:共享所有列在/etc/dfs/dfstab中的共享资源。

# unshareall:取消所有列在/etc/dfs/dfstab中的共享资源。

检查共享目录的设置

# dfshares

用以查看服务器的共享资源。

例如:

host1#share –F nfs –o rw=host2 /var/mail

host1# dfshares

RESOURCE SERVER ACCESS TRANSPORT

Host1:/var/mail host1 - -

详细解释如下:

resource:可被远程调用的资源的主机和路径名。

Server:指定资源的系统名称。

Access:服务器指定的权限,默认是rw,显示为“-”。

Transport:指定共享资源的端口。

# dfmounts命令

显示服务器上查看共享资源被利用的状况。

host1# dfmounts

RESOURCE SERVER PATHNAME CLIENTS

- host1 /var/mail host2, host3, host4

详细解释如下:

resource:共享资料名称。

server pathname:共享资料目录。

Client:连接的客户端。

取消目录的共享

# unshare [ -F nfs ] path-to-resource

-F nfs:指定系统类型,默认。

path-to-resource:指定共享路径。

例如:

# unshare /export/home/games

取消/export/home/games目录共享了。

2.启动和关闭NFS服务器
启动关闭系统默认版本NFS服务器。

启动:# svcadm enable network/nfs/server

关闭:# svcadm disable network/nfs/server

启动和关闭以前版本的NFS服务器。

在/etc/default/nfs配置文件中可以更改默认启动NFS服务器的版本。主要是更改以下两个参数:

NFS_SERVER_VERSMAX=value

NFS_SERVER_VERSMIN=value

如将使用NFS版本3,就将value值改为3。然后再使用svcadm启动服务器。

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:25  资料  个人空间  短消息  加为好友 
12.3.3 NFS客户端的设置
要使NFS客户端正常工作,首先须查看客户端的NFS服务是否启动,然后查看NFS服务器的共享目录情况,如果共享目录正常,就可以mount服务器的目录到本地。

1.查看客户端的NFS服务
查看客户端的NFS服务,使用下面命令:

#svcs |grep nfs

如果要启动系统默认版本NFS客户端服务:

# svcadm enable network/nfs/server

关闭服务使用:

# svcadm disable network/nfs/server

如果要启动非系统默认版本的NFS客户端服务,也需要更改/etc/default/nfs配置文件,主要是下面两个参数:

NFS_CLIENT_VERSMAX=value

NFS_CLIENT_VERSMIN=value

例如,如果使用NFS版本3,就将value值改为3。然后在使用svcadm启动客户端服务。

2.检测nfs服务器的共享目录
检查nfs服务器的共享目录就使用下面的命令:

# showmount [ -ade ] <hostname>

-a:显示已经已经使用的目录和来自哪个nfs服务器。

-d:显示已经被远程安装的目录。

-e:显示可以被安装的目录。一般用-e来查看远程主机的共享目录。

3.将共享目录mount到本地
# mount [ -F nfs ] [ -o options ] path-to-resource path-to-local-mount-point

-F nfs:指定共享文件系统,默认的。没必要指定。

-o options:指定选项,如权限。默认rw,可读/写。也可以ro-只读。

path-to-rescource:指定nfs服务器的主机名和共享资源路径。

path-to-local-mount-point:指定共享资源在本地的mount点。

例如:

host2# mkdir /games

host2# mount host1:/export/home/games /games

共享远程主机host1的/export/home/games目录,默认可读写,挂接在本地的/games目录上。

取消共享

# umount [-F nfs] remote-path-to-resource path-to-local-mount-point

-F nfs:默认的文件系统。

remote-path-to-resource:远程主机和共享目录路径,主机和共享目录路径用冒号分隔。

path-to-local-mount-point:本地主机挂点。

例如:

host2# umount host1:/export/home/games /games

取消远程主机host1上的/exprot/home/games这个目录的在本地/games上的共享。

12.3.4 NFS的性能管理
NFS的性能由下列多种因素决定:

 服务器的CPU的速度和个数;

 服务器的物理内存和虚拟内存大小;

 服务器的磁盘速度;

 服务器的系统负载大小;

 网络带宽;

 同时提供服务的客户机的数量;

 域名查询速度。

无论在客户机还是服务器上,我们都可以通过运行nfsstat命令来持续收集性能的统计数据。下面的命令是在服务器端运行的,我们可以看到成功调用和失败调用的数值。

#nfsstat-s

server nfs:

calls badcalls

575637355 3433



使用nfsstat-z命令,可以使上面统计的数据归零。

顶部
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:26  资料  个人空间  短消息  加为好友 
12.3.5 NFS配置文件介绍
在Solaris 10中,有一些NFS的配置文件,对我们理解和调试出更有效的NFS服务有很大的帮助。下面简单介绍一些比较常用的文件,如表12-5所示。

表12-5 NFS配置文件

文件名
功 能

/etc/default/nfs
列出有关lockd和nfsd进程的设置信息

/etc/default/nfslogd
列出nfslogd进程配置信息

/etc/dfs/dfstab
列出本地资源被共享的信息

/etc/dfs/fstypes
列出远程文件系统的类型

/etc/rmtab
列出被远程客户机mount上的目录

/etc/dfs/sharetab
列出本地和远程主机被共享的资源


12.3.6 NFS文件系统自动挂接
用户使用NFS服务时,使用完远程资源后经常会忘记卸载(umount),这就造成了网络资源的浪费。如果服务器发生了崩溃,还会在客户机上留下一些挂起的进程。自动挂接器(automounter)可以帮助我们解决这个问题,它安装在NFS服务的客户机上,当用户访问远程文件系统时才自动挂接该NFS文件系统,并在文件连续5分钟不使用的情况下自动卸载该NFS文件系统。

这样看起来自动挂接器就像NFS服务的一种延伸,不过在Solaris系统中,它有一个专门的服务名称叫“autofs”。

在介绍autofs服务之前,我们必须先了解“自动挂接器映像”。

1.自动挂接器映像
什么是自动挂接器映像?其实就是本地文件系统目录与远程文件系统目录的对应关系。比如,在本地键入“/staff”目录,系统就会自动将它与远程主机上的“/export/home”目录对应起来。这是个一一对应的关系。如何建立这个对应关系,以及如何管理它,我们下面将会详细进行介绍。

间接映像

间接映像是自动挂接器最常用的一种映像。间接映像文件通常保存在/etc目录下,它的存在形式通常是auto_directory。其中,“directory”是间接映像所负责挂接目录的前缀(不带斜线)。比如,负责挂接远程系统/home目录的间接映像名通常为auto_home。这个auto_home文件就位于客户机的/etc目录下,它的内容是:

host2# /etc/auto_home – home directory map for automounter

user1 host1:/export/home/user1

user2 host1:/export/home/user2

user3 host3:/export/home/user3

间接映像可以确定/home目录是自动控制的。比如本例中,user1,user2和user3分别对应的本地目录是home/user1,home/user2和home/user3。前两项要求自动挂接器分别从服务器host1上挂接/export/home/user1目录和/export/home/user2目录。最后一项则说明/user3目录应该到host3上去挂接。

直接映像

直接映像文件也是在/etc目录下。与间接映像不同的是,它的名称是固定的,叫auto_direct文件名。下面以一个/etc/auto_direct文件内容为例。

host2# /etc/auto_direct -Direct Automount map

/opt/user1 host1:/export/home/user1

/usr/user2 host1:/export/home/user2

/user3 host3:/export/home/user3

当用户访问客户机本地目录/opt/user1,/usr/user2时,所对应的目录分别是host1主机上的/export/home/user1和/export/home/user2。当用户访问客户机本地目录/user3时,对应的是host3主机上的/export/home/user3目录。

主控映像

主控映像就是当autofs服务启动后,通过主控映像控制文件来决定到哪里去找直接映像和间接映像。无论是直接映像还是间接映像,都是通过主控映像文件与autofs服务建立联系的。主控映像文件在/etc目录下,名为auto_master。下面是一个主控文件的内容:

#Master map for automounter

/home auto_home

/- auto_direct

其中,/home为间接映像的目录名。/-表示为直接映像。

设置完这些控制文件后,我们再启动autofs服务,就可以实现NFS的自动挂接了。

2.自动挂接器的启动与停止
启动autofs服务:

# svcadm enable system/filesystem/autofs

关闭autofs服务:

# svcadm disable system/filesystem/autofs

顶部
不容错过的IBM 集群技术资源汇总
luren04
小试牛刀
Rank: 2



UID 225287
精华 1
积分 9(积分有什么用?)
帖子 222
阅读权限 10
注册 2008-4-11
状态 离线
发表于 2008-4-15 21:27  资料  个人空间  短消息  加为好友 
12.4 虚拟文件系统   
12.4.1 虚拟文件系统
虚拟文件系统是虚拟的或基于存储器的文件系统,它提供访问特殊的核心信息和功能,有的虚拟文件系统并不需要文件系统盘空间,有的虚拟文件系统可以使用物理盘中的交换区,例如,临时文件系统。

12.4.2 临时文件系统(tmpfs)
临时文件系统(tmpfs)利用本地内存进行读写,所以访问tmpfs文件系统的文件比访问ufs文件系统中的文件要快得多,临时文件系统中的文件不是永久的,当文件系统被卸载(umount)、系统关机或重新启动时,它们就会自动消失。

与ufs类型的/tmp文件系统一样,可以将文件拷贝或移动到tmpfs类的/tmp文件系统中,或是从其中拷出,移到其他的目录中。

使用tmpfs文件系统节省了本地盘或网络读写临时文件的开销,提高了系统性能。例如,编译程序时生成很多临时文件,当使用这些文件时,操作系统就会产生大量的磁盘或网络的输入和输出请求,利用临时文件系统事先保存这些临时文件,可以明显地加快文件的创建、存取和删除的速度。

tmpfs文件系统利用交换区作为临时存储区,如果带有tmpfs文件系统的系统没有足够的交换区,可能会产生下面两个问题:

 像一般的文件一样,tmpfs文件系统没有可用空间;

 由于tmpfs申请分配交换区存放数据(如果必要的话),有些程序就可能会因为没有足够的交换区而不能执行。

12.4.3 虚拟内存文件系统(Swapfs)
虚拟内存(Swap)通常是在系统物理内存不足的情况下,利用磁盘块来模拟物理内存。当系统的物理内存不足的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有任何操作的程序,这些被释放的空间的数据大多时候被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。

Solaris在虚拟内存(Swap)的基础上,建立了虚拟Swap概念。虚拟Swap空间包含两个部分:部分物理内存和传统上的Swap分区。经过适当的配置,可以使系统需要Swap空间时,先使用内存部分的Swap空间,如果内存部分的Swap空间不够,再使用磁盘部分的Swap空间。这样,也许你硬盘上的Swap空间很少使用了,甚至根本不需要Swap分区。

虚拟Swap空间与TMPFS文件系统的关系

虚拟Swap空间与/tmp目录(TMPFS)有相当大的关系。Sun在实现/tmp目录时,充分考虑了应用程序运行的效率。许多应用程序,特别是数据库服务都会频繁使用/tmp目录作为临时数据保存区,而Solaris将/tmp目录下的文件都放在内存中而不是硬盘里,这样会大大提高应用程序的效率。但是/tmp目录的空间也是虚拟Swap空间的一部分。所以要小心监视系统的/tmp目录的使用情况。




Swap的配置对性能的影响

太多的Swap空间会浪费磁盘的空间,而太少的Swap空间,系统则会发生错误。如果系统的物理内存用光了,你的系统就会跑得慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。我们应该根据应用的实际情况来设定Swap空间的大小,但在一般的情况下,Swap空间应该设定为物理内存的2倍。

有关Swap空间操作的系统命令

查看当前swap空间的使用状况:

# swap -s

total: 65896k bytes allocated  56840k reserved  122736k used, 1069456k available

增加Swap空间步骤:

(1)成为超级用户或授权角色用户。

(2)创建Swap文件。

#mkfile 100m swapfile1

其中,100m为设定交换空间的大小。

(3)激活Swap文件。

#/usr/sbin/swap-a /path/filename

Swap文件必须以绝对路径来指定。

(4)效验Swap文件是否有效,使用/usr/sbin/swap -l命令检查。

(5)现在新加的Swap文件已经起作用了,但为了系统重新启动以后,swap仍然可用,要在/etc/vfstab文件中加入Swap设定,如:

/path/filename - - Swap - no -

删除多余的Swap空间步骤:

(1)成为超级用户或授权角色用户。

(2)使用swap -d 命令删除swap空间。

#/usr/sbin/swap -d /path/filename

(3)编辑/etc/ufstab文件,去掉此Swap(交换)文件的实体。

(4)最后删除做Swap空间的文件。

12.4.4 进程文件系统(procfs)
进程文件系统(procfs)驻留在内存中,/proc目录中有一活动进程号的清单,ps等命令会用到/proc目录中的信息,调试器或其他开发工具也可能通过文件系统调用来访问这些过程的地址和空间,下面例子列出了/proc目录中的一部分内容。

gtxa%ls -l /proc

total 144944

-rw-------1root root 0 Dec 19 15:45 00000

-rw-------1root root 196608 Dec 19 15:45 00001

-rw-------1root root 0 Dec 19 15:45 00002

-rw-------1root root 1028096 Dec 19 15:46 00073

-rw-------1root root 1445888 Dec 19 15:46 00091

-rw-------1root root 1142784 Dec 19 15:46 00093

-rw-------1root root 1142784 Dec 19 15:46 00095



-rw-------1ignatz staff 1576960 Dec 19 15:50 00226

-rw-------1ignatz staff 192512 Dec 19 15:51 00236

-rw-------1ignatz staff 1269760 Dec 19 15:52 00240

-rw-------1ignatz staff 6090752 Dec 19 15:52 00241

-rw-------1ignatz staff 188416 Dec 19 15:52 00247

-rw-------1ignatz staff 2744320 Dec 19 15:52 00256

注意:千万不要删除proc目录中的文件,希望你不要用删除/proc目录中进程的方法来杀掉进程。记住/proc目录不占用磁盘空间,所以没有必要删除/proc目录下的文件,/proc目录不需要任何系统管理。

12.4.5 循环文件系统(lofs)
用循环文件系统(lofs)可创建一个新的虚拟的原文件系统,然后用另一个路径名来存取文件,例如,可对/tmp/newroot目录进行循环安装(loopback mount),整个文件系统包括任何从nfs服务器上安装的文件系统,看起来就像在/tmp/newroot下被复制了,全部文件可以用以/开始的路径进行存取。或者用以/tmp/newroot开始的路径名进行存取,两者都一样,直到另一文件安装到/tmp/newroot或其子目录中。

12.4.6 其他一些虚拟文件系统介绍
下面列出了虚拟文件系统的其他类型,请读者注意,我们并不需要对这些文件系统进行管理。

 fifofs(先进先出文件系统)命名管道文件,用于进程对数据的公共访问。

 fdfs(文件描述符文件系统)提供用文件名打开文件,这是通过文件描述符来实现的。

 namefsSTREAMS使用它在文件顶端对文件描述符动态安装。

 specfs(特别文件系统)提供对特别的设备和块设备的访问。

顶部
不容错过的IBM 集群技术资源汇总
 



当前时区 GMT+8, 现在时间是 2008-5-17 00:11

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.102074 second(s), 6 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP