打印

TRU64 Unix系统管理笔记

TRU64 Unix系统管理笔记

写在前面的话:虽说TRU64不再发展,但很多重要应用还是依然支持TRU64,如Oracle 10gR2,因此,在春节过后,还是凭着新年想做点什么的热情,写了这个笔记。这过程中我又温习了一下功课,练习了好多忘了的或者从来都不会的内容。这个笔记主要是根据英文版的说明书《TRU64 Unix System Administration》(Part Number:AA-RH9FD-TE)和《TRU64 Unix Advfs Administrator》(Part Number:AA-RH96A-TE)整理的。本笔记主要针对5.1A或者更高版本,不过对5.1或者5.0都有相当意义上的参考价值。本学习笔记并不是从头到尾将这本书翻译过来,而是结合我的实际工作,有选择的、将认为值得学习、记住的内容记录下来。本笔记更多的考虑telnet管理,至于图形化管理部分,基本不记录或者一代而过。
好久没有来了,竟然发现仍然需要收费呢,以前测试弄得,现在取消收费。2008/05/14
第一章 系统基本管理方法和工具
第二章 启动和关闭系统
第三章 自定义化操作系统
第五章 管理硬件
第十一章 监控和测试系统
第十二章 管理基本的系统日志
补充:AdvFs系统管理

[ 本帖最后由 turner 于 2008-5-14 10:23 编辑 ]

附件

TRU64 Unix系统管理笔记.pdf (140.92 KB)

2008-5-14 10:20, 下载次数: 68

用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第一章 系统基本管理方法和工具

1./usr/sbin/sysman
最常用的图形化管理工具就是sysman了。这个工具可以完成大部分的管理工作,可以说和Aix的smit命令异曲同工。这个工具从5.0开始也可以telnet后在窗口中输入,界面和gui中当然有区别,不过功能差不多,如下图所示:

sysman的基本使用方法:
1)直接使用sysman命令可以执行全面管理
2)可以在syman后面加参数来快速进行某种管理。如sysman route可以设置/etc/routes文件。可以通过sysman -list来查看有哪些快捷方式。
2./usr/sbin/setup
/usr/sbin/setup命令同样可以在telnet界面上运行,可以进行快速的系统设置或者自定义设置。刚安装完TRU64,第一次登录操作系统的时候会自动调用这个命令来进行初始化设置,如网络设置、授权等。如果当时不设置,则可以通过/usr/sbin/setup命令来设置。
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第二章 启动和关闭系统

1.如何以没有网络的环境来启动系统
如何系统配置为支持网络,引导操作会尝试启动所有配置的网络服务。这可能导致服务引导失败,或者需要花费相当长的时间来测试当前的服务。如果不想启动网络服务,或者一个系统崩溃了,而你必须关掉网络服务来启动,可以按照下面的步骤来进行。
1)在控制台提示符〉〉〉下面将boot_osflags设置为s,这样可以以单用户模式启动
>>>set boot_osflags s
2)启动系统
>>>boot
3)进入系统后,出现#提示符之后用mount -u /来将根目录的权限设置为读写
# mount -u /
4)将/etc/rc.config,/etc/rc.config.common,/etc/rc.config.site备份一下
# cp /etc/rc.config /etc/orig_rc.config
# cp /etc/rc.config.common /etc/orig_rc.config.common
# cp /etc/rc.config.site /etc/orig_rc.config.site
之所以备份,是因为上面的文件很重要。故障修复之后还应该恢复回去。编辑rc.config等文件,建议用rcmgr命令,不要用其它的命令。(其实,我经常用vi,不过一定要小心)
5)使用rcmgr命令来将网络服务关掉。
例如要关掉NIS服务(Network Information Service),首先查看一下状态:
# rcmgr get NIS_CONF
yes
接下来设置为no
# rcmgr set NIS_CONF NO
反复执行上面的类似的工作直到将所有的网络服务都设置为不加载,然后将机器关掉进入控制台。
6)在控制台下重新设置boot_osflags为a,然后新引导,就可以以没有网络服务的多用户模式进入了
>>>set boot_osflags a
>>>boot
2.从某个设备引导
可以设置bootdef_dev,也可以在boot命令后面直接跟上设备名称。例如
boot dka0
如果有多个设备可以引导,那么可以将boot_osflags设置为i,这样就可以有选择菜单。
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第三章 自定义化操作系统

1.影响系统启动和操作的文件
1)/etc/inittab
主要的初始化系统的文件之一。定义运行级别和相应的程序等。
2)/etc/securettys
这个文件定义是否允许终端(tty)用root用户直接登录
3)……
2.允许root从telnet登录
修改/etc/securettys,在末尾加上ptys,然后保存即可。下面是允许root 用户telnet直接登录的/etc/securettys部分内容:
HBZW> tail /etc/securettys
#  secure.  Note that the entry is "ptys" and not prefixed by /dev
#  as is customary for the other physical devices.  The absence of
#  this key word implies that root login will not be permitted from
#  all ptys.  X displays are indicated with the display name.
#
#  <device name>
/dev/console
local:0
:0
ptys
3.使用/etc/inittab
init进程最先进行的动作之一是读取/etc/inittab。这个文件中记录了最重要的基本的系统需要启动的进程。inittab的内容类似如下所示:
is:3:initdefault:
ss:Ss:wait:/sbin/rc0 shutdown < /dev/console > /dev/console 2>&1
s0:0:wait:/sbin/rc0 off < /dev/console > /dev/console 2>&1
fs:23:wait:/sbin/bcheckrc < /dev/console > /dev/console 2>&1
每一行不同部分用冒号:隔开。含义如下:
标识符:运行级别:操作(action):命令。
标识符(Identifier):这一部分是14个字符以内组成,用于唯一的标识一个对象条目。
运行级别:这一部分指示在什么状态下运行对象。可能的值及含义:
0:代表关机状态(halt state)
s或S:代表单用户模式
2:代表不带网络的多用户模式
3:代表多用户模式
操作(Action):
这一部分表明怎样对待指定的进程。
respawn:如果进程存在,则不操作,持续扫描进程;如果进程不存在,则启动起来。
wait:等待进程结束,才进行下一个工作
initdefault:有这个指示的进程最先被调用。
指定初始化过程的默认运行级别:
在启动期间,init程序检查inittab文件中的initdefault关键字,来检查该以哪个级别来运行。如果没有设置,启动的时候会让你输入级别。例如:
is:3:initdefault:
上面指示系统默认进入带网络的多用户中
4.使用init和rc目录结构
操作系统提供给用户初始化和运行命令目录结构。结构有4个主要组件:init.d,rc0.d,rc2.d和rc3.d目录。每一个rcn.d目录都有相应的rcn运行命令脚本。
5.init.d目录
/sbin/init.d目录下包含系统初始化过程中的执行文件。
6.rc0.d和rc0可执行命令脚本
/sbin/rc0脚本可以将系统halt或者进入单用户状态。rc0运行/sbin/rc0.d中的命令,而/sbin/rc0.d目录中是/sbin/init.d目录中文件的软连接。/sbin/rcn.d中的文件默认都以K或者S开头。以S开头的文件启动的时候调用,以K开头的文件关闭的时候调用。S或者K后面的数字很重要,因为系统按照顺序来调用。
7.rc2.d和rc2可执行脚本
类似rc0.d和rc2
8.使用crontabs目录
讲述怎样用crontab来创建定期运行的程序,具体使用看man帮助。
9.添加交换空间(swap space)
Swap space可以用swapon命令来临时添加。如果需要永久添加,需要修改/etc/sysconfigtab文件的vm部分。
swapon -s可以查看swap space使用情况
swapon /dev/disk/dsk0b可以将/dev/dsk0b创建为swap分区
swapon -a 可以把新创建的swap分区挂接上
如果需要永久自动挂接swap设备,需要修改/etc/sysconfigtab文件,vm部分的swapdevice部分。例如,将/dev/disk/dsk3h加入swap:
vm:
    swapdevice=/dev/disk/dsk1b,/dev/disk/dsk3h
    vm-swap-eager=1
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第五章 管理硬件

1.用sysman查看、管理硬件
sysman可以查看、管理的硬件信息内容包括:
查看硬件层次(View hardware hierarchy)
查看群集信息(View cluster)
查看设备信息(View device information)
查看CPU信息(View central processing unit (CPU) information)
管理CPU(Manage CPUs)
Online Addition/Replacement (OLAR) policy information
2.查看硬件层次(hardware hierarchy)
# /sbin/hwmgr view hierarchy
HWID:  hardware component hierarchy
----------------------------------------------
  53:  platform AlphaServer ES40
   2:    cpu CPU0
   5:    bus pci1
   6:      connection pci1slot4
  10:        scsi_adapter isp0
  11:          scsi_bus scsi0
  44:            disk bus-0-targ-0-lun-0 dsk0
   8:      connection pci1slot6
  12:        network ee0
  13:    bus pci0
  14:      connection pci0slot1
  24:        graphics_controller comet0
  54:      connection pci0slot2
……
通过上面的命令,可以查看硬件的层次信息,包括总线(bus)、控制器等等。输出内容包括:
1)HWID:硬件编号
2)component:组件名称
3)组件的basename
4)硬件的物理位置属性。例如bus-0-targ-0-LUN-0
举例:
查看存储硬件
# hwmgr view hierarchy|grep disk
  44:            disk bus-0-targ-0-lun-0 dsk0
  58:            disk bus-1-targ-0-lun-0 dsk8
  48:            disk bus-2-targ-0-lun-1 dsk3
  52:            disk bus-2-targ-0-lun-2 dsk7
  39:              disk fdi0-unit-0 floppy0
  59:            disk bus-3-targ-0-lun-0 cdrom1
或者用hwmgr view device也可以查看设备信息
3.查看某个硬件的详细信息
# hwmgr get attr -id idnumber
上面的idnumber是HWID,就是hwmgr view hierarchy查看到的HWID内容。
举例:
查看网卡物理地址。假设HWID为12的硬件是网卡。
# hwmgr get attr -id 12|grep MAC
  MAC_address = 00-50-8B-BD-4E-8D
查看网卡物理地址也可以这样:
hwmgr get attr -category network|grep MAC
4.查看哪些硬件属性可以修改
我们知道,可以通过hwmgr get attr来获得所有的硬件的属性,也可以用hwmgr get attr | grep settable来获得哪些属性可以修改。
5.查看群集(cluster)
# /sbin/hwmgr view cluster
Member ID State Member HostName
--------- ----- ---------------
1 UP ernie.zok.paq.com (localhost)
2 UP bert.zok.paq.com
3 DOWN bigbird.zok.paq.com
6.查看设备(Devices)
用hwmgr view dev可以查看有哪些设备,包括硬盘、光驱、软驱等。例如:
# hwmgr view dev
HWID: Device Name          Mfg      Model            Location
-----------------------------------------------------------------------
    3: scp                           (unknown)        (unknown)
    4: /dev/kevm
   39: /dev/disk/floppy0c               3.5in floppy         fdi0-unit-0
   44: /dev/disk/dsk0c      COMPAQ   BD009122C6     bus-0-targ-0-lun-0
   48: /dev/disk/dsk3c      DEC       HSZ80           bus-2-targ-0-lun-1
   52: /dev/disk/dsk7c      DEC       HSZ80           bus-2-targ-0-lun-2
   58: /dev/disk/dsk8c      KingStor KR5112U            bus-1-targ-0-lun-0
   59: /dev/disk/cdrom1c    COMPAQ   CRD-8402B      bus-3-targ-0-lun-0
7.删除SCSI设备
在某些情况下,你可能想从系统中删除某个SCSI设备,例如SCSI设备出错了,而必须替换。用hwmgr的delete选项可以从硬件管理数据库中删除SCSI组件的所有信息。这个操作从内核中撤消设备的注册,删除数据库中这个设备的所有条目,删除设备相关文件。当你删除SCSI设备后,相应的/dev目录下的文件也会被删除。你无法删除当前打开的SCSI组件,如果设备被加载(mount),同样不能删除。
首先我们用hwmgr show scsi来显示scsi设备信息
# hwmgr show scsi
SCSI                 DEVICE  DEVICE  DRIVER NUM DEVICE     FIRST
HWID: DEVICEID HOSTNAME TYPE    SUBTYPE OWNER     PATH FILE   VALID PATH
--------------------------------------------------------------------------------------------------------------
23:    0         bert      disk     none     2     1    dsk0      [0/3/0]
24:    1         bert      cdrom   none     0     1    cdrom0    [0/4/0]
25:    2         bert      disk     none     0     1    dsk1      [1/2/0]
30:    4         bert      tape     none     0     1    tape2      [1/6/0]
31:    3         bert      disk     none     0     1    dsk4      [1/4/0]
34:    5         bert      disk     none     0     1    dsk7      [2/5/0]
35:    6         bert      disk     none     0     1    dsk8
在这个例子中,DEVICE OWNER可以看出设备是否被占用。如果DEVICE OWNER不是0,则表示正在使用。另外我们还可以看出dsk8这个设备有问题,因为该设备没有分配有效的路径。这个设备的scsi deviceid是6,我们可以通过下面的命令来删除这个设备。
# hwmgr del scsi -did 6
    hwmgr: The delete operation was successful.
8.替换一个出了故障的SCSI设备
当一个SCSI硬盘出了故障的时候,你可能想通过某种方法将故障盘替换掉,例如有一个RAID库,一块硬盘坏了,就可以将换盘热换掉,用hwmgr的redirect选项进行SCSI设备替换。注意,要替换的硬盘不能处于AdvFS或者LSM应用的管理中,替换前必须先从应用中将硬盘从应用中撤出来。下面的例子演示了怎样重新定位设备。
首先查看哪个设备出现了问题:
# hwmgr show scsi
SCSI                 DEVICE  DEVICE  DRIVER NUM DEVICE     FIRST
HWID: DEVICEID HOSTNAME TYPE    SUBTYPE OWNER     PATH FILE   VALID PATH
--------------------------------------------------------------------------------------------------------------
23:    0         bert      disk     none     2     1    dsk0      [0/3/0]
24:    1         bert      cdrom   none     0     1    cdrom0    [0/4/0]
25:    2         bert      disk     none     0     1    dsk1      [1/2/0]
30:    4         bert      tape     none     0     1    tape2      [1/6/0]
31:    3         bert      disk     none     0     1    dsk4      
上面显示出HWID为31,DID为3的硬盘disk4坏了。接下来,按照正确的步骤换上好的硬盘。然后用hwmgr scan scsi来重新扫描一下SCSI设备。然后就可以再次用hwmgr show scsi来看新加的SCSI设备信息了。假设新加的设备的did是36,则用下面的命令完成替换:
# /sbin/hwmgr redirect scsi -src 3 -dest 36
9.管理设备特殊文件(device special file)
在绝大多数情况下,设备特殊文件是由系统自己管理的。在操作系统的完全安装过程中,系统会为每个SCSI硬盘和SCSI磁带创建设备特殊文件。当你添加SCSI硬盘或者SCSI磁带的时候,设备会被自动发现并识别,添加到硬件管理数据库。在系统第一次重起的时候,自动调用dsfmgr来为此设备创建设备特殊文件。dn_setup是位于/sbin目录下的一个脚本。这个脚本在系统启动的过程中被自动调用,创建设备特殊文件名。通常,不需要使用dn_setup。用这个命令可以来修复设备名问题或者损坏的设备特殊文件或者数据库文件。
dn_setup的对管理员有用使用选项是-sanity_chck,其他的应该看相关说明。如下:
ü-sanity_check
这个选项检查设备特殊文件和目录层次的一致性。如果检查成功则显示passed。例如:
# dn_setup -sanity_check
Passed.
10.检查和修复设备数据库
在某些情况下,设备数据库有可能被破坏或者设备特殊文件被意外从系统中删除。你可能遇到某个设备不再有效的错误,但是硬件本身可能并没有损坏。如果你怀疑可能是设备特殊文件出现了问题,那么可以用dsfmgr -v命令。用这个命令如果发现存在问题,就可以用dsfmgr -v -F 来修复问题。我特意把/dev/disk/cdrom*给删除了,测试用这个命令来修复。下面是演示:
# dsfmgr -v
dsfmgr: verify all datum for system at /
Default File Tree:
    OK.
Device Class Directory Default Database:
    OK.
Device Category to Class Directory Database:
    OK.
Dev directory structure:
    OK.
Device Status Files:
    OK.
Dev Nodes:
    ERROR node does not exist: /dev/disk/cdrom2b
    ERROR node does not exist: /dev/rdisk/cdrom2b
    ERROR node does not exist: /dev/disk/cdrom2d
    ……
  Errors:  12
Total errors:  12
# dsfmgr -v -F
dsfmgr: verify with fix all datum for system at /
Default File Tree:
    OK.
Device Class Directory Default Database:
    OK.
Device Category to Class Directory Database:
    OK.
Dev directory structure:
    OK.
Device Status Files:
    OK.
Dev Nodes:
    WARNING node does not exist: /dev/disk/cdrom2b
    WARNING node does not exist: /dev/rdisk/cdrom2b
    WARNING node does not exist: /dev/disk/cdrom2d
    ……
    OK.
Total warnings:  12
# dsfmgr -v
dsfmgr: verify all datum for system at /
Default File Tree:
    OK.
Device Class Directory Default Database:
    OK.
Device Category to Class Directory Database:
    OK.
Dev directory structure:
    OK.
Device Status Files:
    OK.
Dev Nodes:
    OK.
11.移动设备特殊文件
例如,你有个dsk0,但是你希望dsk0名字应该叫dsk10,那么可以用dsfmgr -m选项来实现。
# /sbin/dsfmgr -m dsk0 dsk10
12.scu的几个常用方法举例
scu是SCSI设备配置实用程序,功能很多,这里举几个我常用的例子。
1)用scu查看有哪些SCSI设备
我们知道可以用hwmgr show scsi来查看SCSI设备,但是在一些老版本中没有hwmgr命令,我们可以用scu show edt来替代。
# scu show edt
CAM Equipment Device Table (EDT) Information:
Bus/Target/Lun Device Type  ANSI               Vendor ID        Product ID Revision N/W
-------------- ----------- ------ --------- ---------------- -------- ---
0    0    0   Direct      SCSI-3 COMPAQ    BD07265A22         3B00    W
0    1    0   Direct      SCSI-3 COMPAQ    BD07289BB8         HPB1    W
0    2    0   Direct      SCSI-3 COMPAQ    BD07289BB8         HPB1    W
0    3    0   Direct      SCSI-3 COMPAQ    BD07289BB8         HPB1    W
1    0    0   CD-ROM      SCSI-2 COMPAQ    CD-224E            9.5B    N
2)用scu查看某块硬盘容量
首先用scu show edt或者hwmgr show scsi来查看SCSI硬盘信息,得到设备通道情况。比如我们要查bus为0,target为1,lun为0的硬盘的信息,按照如下步骤进行:
# scu
scu> set nexus bus 0 target 1 lun 0
Device: BD07289BB8, Bus: 0, Target: 1, Lun: 0, Type: Direct Access
scu> show capacity
Disk Capacity Information:
                  Maximum Capacity: 142264000 (69464.844 megabytes)
Block Length: 512
      从上面的输出中可以看出这块硬盘的容量大约是70G。(标称73G)
3)测试硬盘介质是否有逻辑坏块。
# scu
scu> set nexus bus 2 target 0 lun 1
Device: HSZ80, Bus: 2, Target: 0, Lun: 1, Type: Direct Access
scu> verify media
Verifying 497680785 blocks (0 - 497680784) on [2/0/1] (HSZ80), please be patient
...
Verifying blocks [ 0 through 65534 ]...
scu: Verify error at logical block number 35971 (0x8c83).
scu: 'verify data' failed on device 'HSZ80' at nexus [2/0/1]
scu: Sense Key = 3 = MEDIUM ERROR - Nonrecoverable medium error, Sense Code/Qual
ifier = (0x80, 0)
scu: Error number 1 occurred on Wed Feb 28 14:41:20 2007
用scu的verify media来检测介质是否有坏块的时候,会检测整个硬盘,遇到错误的时候停止并报错。上面的例子中,报告逻辑块35971有错误。如果报告有错误,并不一定说明硬盘一定有物理坏块了,备份数据后可以将硬盘重做一下再来检测。
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第十一章 监控和测试系统

1.sys_check
sys_check命令可以生成系统的整个配置信息和诊断信息,诊断结果是html格式的。
例如,下面的例子对整个系统进行检查,将结果输出到sysinfo.html中:
# sys_check >sysinfo.html
2.vmstat
    这个命令几乎是每个Unix都有的,用来检测虚拟内存、进程、CPU活动等信息时很有用,具体使用还是看man帮助吧。J
    举例:每3秒检测一次,共检测5次:
# vmstat 3 5
Virtual Memory Statistics: (pagesize = 8192)
  procs      memory        pages                            intr       cpu
  r   w   u  act free wire fault  cow zero react  pin pout  in  sy  cs us sy id
  4 123  32  78K  32K  16K    6M 478K   4M   294 323K    0 356  4K  1K  7 17 76
  4 125  32  78K  32K  16K 29277 8460 6356     0 4119    0 108  8K 984 23 77  0
  5 124  32  78K  32K  16K 31030 9269 6594     0 4100    0 170  9K  1K 20 80  0
  4 123  33  78K  32K  16K 29482 9275 6123     0 3684    0 190  8K  1K 19 79  2
  4 126  32  78K  32K  16K 27108 8760 5198     0 3158    0 238  8K  1K 30 70  0
    检测内存信息:
    # vmstat -P
Total Physical Memory =  1024.00 M
                      =   131072 pages
Physical Memory Clusters:
start_pfn     end_pfn        type  size_pages / size_bytes
         0         256         pal         256 /    2.00M
       256      130986          os      130730 / 1021.33M
    130986      131072         pal          86 /  688.00k
Physical Memory Use:
start_pfn     end_pfn        type  size_pages / size_bytes
       256         287    scavenge          31 /  248.00k
       287         906        text         619 /    4.84M
……
3.iostat
查看磁盘I/O情况。例如:
# iostat 3 5
上面的命令每隔3秒检测一次磁盘I/O,检测5次。需要注意的是,iostat默认只显示前两个磁盘的I/O情况,因此,如果要看其他磁盘I/O情况,应该指定磁盘。例如,下面的命令显示dsk8、dsk9、dsk10的磁盘I/O情况:
# iostat dsk8 dsk9 dsk10 3 5
    tty         dsk8          dsk9         dsk10          cpu
tin tout    bps    tps    bps    tps    bps    tps  us ni sy id
   0 6380   3900     84   2262     44   1666     30   7  0 17 76
   0 7762    112      3      0      0      0      0   8  0  3 89
   0 7644    304     25      0      0      0      0   8  0  3 89
   0 5102     21      3      0      0      0      0  28  0  5 68
   0 3557     35      4      0      0      0      0  93  0  7  0
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

第十二章 管理基本的系统日志

TRU64将日志信息记录载/var/adm目录下。操作系统启动信息存放在/var/adm/messages文件中,这个文件是个文本文件,可以直接查看。系统崩溃日志存放在/var/adm/crash目录下。crash日志可以通过dbx命令来分析,这里略过。/var/adm/syslog.dated目录下存放的是每日产生的日志。
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

补充:AdvFs系统管理

AdvFs是基于日志的文件系统,具有灵活、可靠、高性能等优点。本章节参考的是《TRU64 AdvFS Administration》
1.配置AdvFS基本步骤
创建一个AdvFs的基本步骤是:
1)创建文件域(File domain)
2)创建文件集(fileset)
3)创建加载目录
4)加载文件集
2.卷(volumes)的概念
AdvFs至少要有一个卷,卷可以是一个单独的磁盘分区,整块盘,或者LSM提供的卷。卷只可以分配给一个域ID。
3.文件域
文件域是一个物理存储池(physical storage pool),可以有一个或多个卷。文件域是AdvFS的物理存储层。因为文件域与目录结构分开管理,你可以扩张或者减少卷的数量。你可以将文件在不同的盘之间移动,而无需修改文件目录。
4.配置文件域
如何配置文件系统取决于你的组织需求。既可以把所有的存储放入一个域,也可以放到多个不同的文件域。例如,可以根据用户组、部门等来划分文件域。下面是几个创建域的时候需要考虑的因素。
1)为了提高性能,要避免将一块盘放入到不同的域中。例如不要把分区g放入一个域中而把分区g放入另外一个域中。
2)将整块盘(c)放入一个域中,比把这个盘的各个部分分别(例如a,b,g,h)放入域中更可取
3)如果有多个盘,这些盘的规格、速度等都一样的话,放在一个域中会提高性能
5./etc/fdmns目录
/etc/fdmns目录下定义了系统中具有的文件域。每个子目录下面包含了各自文件域拥有的卷的符号连接。(symbolic link)。建议定期备份这个目录,如果这个目录结构被破坏,可以恢复最近的备份,也可以通过/sbin/advfs/advscan来修复。
6.创建一个单卷的文件域
第一步是用mkfdmn命令创建一个文件域。语法:
mkfdmn volumn_name domain_name。这个工作也可以用sysman来完成。
创建并加载一个域的步骤举例:
创建一个名叫afis_domain的域
# mkfdmn /dev/disk/dsk1c afis_domain
创建一个叫poll的文件集。因为准备挂接在/poll目录下,所以创建的文件集名叫poll。这样是建议的做法,并不是必须要这样。
# mkfset afis_domain poll
创建要挂接的目录。这个例子中创建/poll目录
# mkdir /poll
挂接系统
# mount afis_domain#poll /poll
如果希望系统启动的时候自动挂接,则修改/etc/fstab文件。下面的内容黑体部分是刚加入的:
HBZW> cat /etc/fstab
root_domain#root        /       advfs rw 0 1
/proc           /proc   procfs rw 0 0
usr_domain#usr  /usr    advfs rw 0 2
usr_domain#var  /var    advfs rw 0 2
afis_domain#poll  /poll   advfs rw 1 2
注意,mkfdmn会破坏卷中已有的数据。
7.修改卷的属性chvol
可以通过chvol来修改卷的属性,通常来修改读取和写入速度。例如,我的机器上有一个oldafisdomain域,修改该域下的卷属性。
# showfdmn oldafisdomain

               Id              Date Created  LogPgs  Version  Domain Name
45ecc368.0009c801  Tue Mar  6 09:27:04 2007     512        4  oldafisdomain

  Vol   512-Blks        Free  % Used  Cmode  Rblks  Wblks  Vol Name
   1L  497680784   473236832      5%     on   256   256  /dev/disk/dsk9c
   2   497677280   472571824      5%     on   256   256  /dev/disk/dsk10c
      ----------  ----------  ------
995358064   945808656      5%
    从上面可以看到dsk9c和10c的读取和写入速度都是256个blocks。
# chvol -r 1024 -w 1024 /dev/disk/dsk9c oldafisdomain
8.增大文件域的大小步骤:
1)用showfdmn来显示文件域信息和每个卷的磁盘容量、使用情况等(可选)
2)用addvol来将新的卷加入到文件域
3)如果需要,用rmvol命令移除不用的卷
4)用balance命令来平衡卷负载。
举例:
# showfdmn domain_1
Id Date Created LogPgs Version Domain Name
2bb0c594.00008570 Wed Mar 24 12:33 1999 512 4 domain_1
Vol 512-Blks Free % Used Cmode Rblks Wblks Vol Name
1L 832527 79210 90% on 128 128 /dev/disk/dsk1c
2 832527 1684 98% on 128 128 /dev/disk/dsk2c
-------------------------
1665054 80894 94%
# addvol /dev/disk/dsk3c domain_1
# rmvol /dev/disk/dsk2c domain_1
# balance domain_1
9.减少文件系统大小rmvol
如果系统空间足够,那么可以用rmvol来删除某个设备,而不影响用户使用。使用rmvol,必须要求所有的逻辑卷都mount上,rmvol命令结束后,建议用balance命令来平衡一下卷负载。
10.文件域重命名
文件域的名字可以更改。操作系统通过文件域的标示符(identifier)来标识文件域,当修改文件域名的时候,标识符并不更改。我们可以通过sysman来修改文件域名,这样可以同时修改/etc/fstab文件的内容,也可以手动修改文件域名。手动修改域名的方法:
1)卸载所有的相关的文件集和克隆(clones)
2)在/etc/fdmns目录中,将旧的文件域名修改成新的:
    mv /etc/fdmns/old_dom_name /etc/fdmns/new_dom_name
3)修改/etc/fstab,改成新的域名
4)加载文件集
11.文件集(filesets)
文件集代表文件系统的可加载点。可以对文件集实现配额,也可以备份文件集。文件寄的数量取决于业务需求,一个文件域可以有多个文件集,每个文件集单独管理,也可以一个域对应一个文件集。每个文件域都有一个事物日志,域中的所有文件集共用此时吾日志。因此需要注意,如果域中的多个文件集都有大量I/O,那么事务日志有可能成为瓶颈。
12.显示某个域的文件集信息showfsets
通过showfsets命令,可以显示某个文件域拥有的文件集。(这样,一旦丢失了域信息,那么可以通过advscan来找到域信息,又可以通过showfsets找到域的文件集信息,从而恢复数据!)
举例:
# showfsets oldafisdomain
backup
        Id           : 45ecc368.0009c801.1.8001
        Files        :   475992,  SLim=        0,  HLim=        0
        Blocks (512) : 186221186,  SLim=        0,  HLim=        0
        Quota Status : user=off group=off
13.创建文件集addvol
用法很简单:
# addvol
usage: addvol [-F] [-x meta_extent_size] [-p meta_prealloc_size] special domain
14.加载文件集:
假设文件域是advertising,文件集是coupons,加载到/coupons,那么用下面的命令加载:
mount advertising#coupons /coupons
15.卸载文件集
umount mnt_point
16.删除文件集rmfset
注意,用rmfset,所有的文件集中的数据将遭到彻底破坏,/sbin/advfs/salvage也无法恢复。rmfdmn后数据不会被破坏,可以用salvage来恢复。
17.重命名文件集renamefset
# renamefset
usage: renamefset domain origSetName NewSetName
18.消除磁盘碎片defragment
通过defragment命令可以消除磁盘碎片,提高性能。运行该命令有可能需要相当长时间。
# defragment
usage: defragment [-e] [-n] [-t time] [-T time] [-N threads] [-v] [-V] domain
举例:对accounts_domain进行碎片整理,整理15分钟,并显示结果:
# defragment -v -t 15 accounts_domain
19.检查文件域/sbin/advfs/verify
通过/sbin/advfs/verify命令,可以对文件域进行全面的检查,甚至可以修复部分发现的问题。当发生了corruptions,domain panic,lost data,I/O错误的时候运行该命令是个好主意。
# /sbin/advfs/verify
exiting...
usage: verify [-l | -d] [-v | -q] [-t] [-a | -f] [-F] [-D] domainName

All filesets in the domain must be unmounted.

-l  Creates a symbolic link to a lost file in the /???/lost+found directory.
-d  Deletes lost files.
-v  Verbose.
-q  Quiet.
-t  Displays the mcell totals.
-a  Check an active domain.  All filesets in the domain must be mounted.
-f  Attempt to fix any problems found.
-F  Use this option with caution; runs the verify command without recovery.
    (similar to running the mount command with -d option).
-D  Check a dual mounted domain.
20./sbin/advfs/advscan
/sbin/advfs/advscan可以用来扫描文件域信息。这个命令可以查找某个设备属于哪个文件域,也可以重建文件域信息等。
# /sbin/advfs/advscan
usage: /sbin/advfs/advscan [-argq] [-f domain] <disk list> <lsm diskgroup list>
Ex: /sbin/advfs/advscan rz10 rz11 rz12 rootdg acctdg
Ex: /sbin/advfs/advscan -a              (Scans all disks found in /etc/fdmns)
Ex: /sbin/advfs/advscan -a -r           (Recreates anything missing from /etc/fdmns)
Ex: /sbin/advfs/advscan -a -f my_domain (Fixes links for my_domain)
Ex: /sbin/advfs/advscan -a -g           (Prints advfs partitions by disk)
21./sbin/advfs/salvage
这是最后的防线了。如果文件域用rmfdmn删除了,或者文件域中的某个卷不能用导致文件域无法加载,那么可以用salvage来尝试恢复现存的数据。
举例:
下面的例子尝试从corrupt3_domain中恢复某个时间点(199812071330)以后变化的数据:
# /sbin/advfs/salvage -d 199812071330 corrupt3_domain
下面的例子则尝试恢复全部数据:
# /sbin/advfs/salvage corrupt3_domain
如果我们想从某个块设备中恢复数据,也可以不指定域名,用-V选项来指定块设备:
# sbin/advfs/salvage /dev/disk/dsk9c
如果不想恢复部分恢复的文件,要用-x选项。这个选项不能和-p同时使用。
用简单的方法解决复杂的问题。 苟日新,日日新,又日新。 ---最近比较忙--- 欢迎光临我的BLOG:[color=red]游来游去[/color] http://turner.itpub.net/

TOP

经典好贴
[img] 海纳百川有容乃大 壁立千韧无欲则刚 hemc-bfc@hotmail.com [img]

TOP

还不如把书贡献出来
我是懒猫猫 http://211.140.182.228:8080/pebble/ 申明我不是老大 我是学习来的 有错给我指出来谢谢

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-10-11 17:34 京ICP证060528 号

Designed By 17DST