HP-UX磁盘管理与文件系统

1.

磁盘和文件的系统管理是一项重要的系统管理任务。它包括添加和删除磁盘、配置磁盘、基于某种配置生成和管理文件系统和磁盘问题的修复。

2.

每个物理磁盘都有两个相关的设备文件,一个是字符设备文件,一个是块设备文件。

每一个磁盘在被系统使用之前都必须经过配置。

一个磁盘可以被细分为多个部分组成,这些部分可能是:

  • 一个引导区:特殊区域,包含系统启动时所必须的程序及文件等
  • 文件系统:存储文件的空间,比如/usr、/var或/home等,可以有多个文件系统
  • 一个交换区:作为交换空间,也作为崩溃转储
  • 原始数据区:储存原始数据,比如数据库的数据

HP-UX提供了两种磁盘管理的方法:

整盘分区

一个磁盘可以配置成以下5中方式:

  • 单独的一个文件系统
  • 完全用作交换区
  • 完全用作原始数据区(raw data)
  • 一个磁盘同时包含文件系统和交换区
  • 一个磁盘配置成为启动盘,包含根文件系统、交换区和2M的特殊启动区域

不足:

  • 每个磁盘只能有一个文件系统分区。
  • 文件系统也不能扩展到多个磁盘。
  • 当后期需要更多空间时,扩展文件系统很难。

逻辑卷管理磁盘分区(LVM):

物理卷:实际的物理磁盘驱动器。使用pvdisplay命令显示物理卷。

卷组:   多个物理卷组合成一个卷组,它将所有物理卷的空间融合成一个独立的实体。

              第一次安装HP-UX,默认生成一个根卷组名为:/dev/vg00。使用vgdisplay 显示。

逻辑卷:由一个或多个物理卷构成,在卷组中创建并可以跨越多个物理卷。

              对于逻辑卷,你可以任何时候根据需要去改变它的尺寸而不丢失数据。

              使用lvdisplay命令显示逻辑卷。

逻辑卷管理使你能将几个磁盘(物理卷)里的空间组合成一个卷组。然后把卷组里的空间再划分成逻辑卷。逻辑卷克服了整盘方法的一些不足,可以实现以下功能:

  • 创建跨越多个磁盘的逻辑卷
  • 在同一磁盘上创建多个逻辑卷
  • 根据需要扩展和压缩逻辑卷

卷组设备文件为/dev/vg00/group。

每一个逻辑卷组中都有两个设备文件,字符与块。

所有lvm设备文件的主号为64次号显示了逻辑卷名跟逻辑卷组之间的成员关系。

物理扩展(PE):是最小的磁盘空间分配单元,缺省为4M。

逻辑扩展(LE):是内核内存中指向磁盘上某一个PE的指针。

PE的大小在创建卷组时背固定,整个卷组中的PE都是一样的。

为了扩大逻辑卷,LVM只需要分配更多的LE。

3.

创建物理卷:

创建物理卷是LVM管理磁盘的第一步,为了找出某个磁盘相关的设备文件,使用IOSCAN命令。

也许你想查看磁盘的大小,可以使用diskinfo命令完成。

在创建之前,先通过mediainit命令对一个磁盘进行格式化和校检其完整性。

创建物理卷:

首先格式化硬盘:mediainit /dev/rdsk/c2t5d0                  #后面的参数必须为字符设备文件

创建物理卷:pvcreate /dev/rdsk/c2t5d0

若磁盘已经属于某个卷组,可以用-f选项强制执行创建(慎用)。

建好卷组后,可以通过pvdisplay命令来检查它。(没有成为卷组前不能pvdisplay)

LVM使用的数据结构会造成一些磁盘空间的开销。

非启动盘上如果设置了较小的PE或创建了很多物理卷,则LVM数据结构将会比较大。

这个开销在可启动的LVM盘上是固定的(2912KB)。

4.

创建卷组:

建完物理卷后,就可以将它添加到卷组中。

首先在/dev目录下面创建一个卷组名为vg03的目录:mkdir /dev/vg03。

在该目录下面创建卷组设备文件,主号为64,次号显示组名:

mknod /dev/vg03/group c 64 0x030000

最后用vgcreate命令创建卷组,以物理卷名为参数:

vgcreate /dev/vg03 /dev/dsk/cdt5d0

关于vgcreate的一些选项:

  • -l                   卷组最大能包含的逻辑卷数,默认为255
  • -p                  卷组最大能包含的物理卷数,默认为16
  • -e                  卷组中每个物理卷最多能包括的PE数,默认为1016
  • -s                  卷组中物理单元的尺寸大小,默认为4

建好卷组后,可以通过vgdisplay命令来检查它。

5.

创建逻辑卷:

逻辑卷可以:

  • 包含所有或任何一部分物理卷上的空间
  • 扩展到多个LVM物理卷
  • 如果需要,可以改变大小,移动到不同磁盘中
  • 可以使用任何你需要的命名规则,默认是:/dev/vg**/lvol [1..2..3...]

用lvcreate命令可以创建逻辑卷。

当逻辑卷新创建时,其相应的字符设备及块设备文件会在卷组目录下生成。

例如:为了在卷组vg03中创建一个空间为800M,名为moko的逻辑卷:

lvcreate -L 800M -n moko vg03

关于lvcreate命令的选项:

  • -L              以MB为单位表示逻辑卷的大小,默认为0
  • -l               以逻辑单元的数目来表示逻辑卷的大小,默认为0
  • -n             逻辑卷名称,若不指定,默认的名为lvol1,lvol2...
  • -C             用临近的空间来创建逻辑卷
  • -i               设定可以被逻辑卷使用的磁盘
  • -I               当逻辑卷使用一个以上的磁盘时,设定穿过每个物理卷的条带尺寸,i与I必须一起使用

6.

卷组所包含的每一个磁盘都有LVM的数据结构:

物理卷保留区(PVRA):由pvcreate命令创建,含有物理卷信息

卷组保留区(VGRA):由vgcreate命令创建,包含卷组状态区(VGSA)和卷组描述区(VGDA),用于卷组的设备驱动信息。

坏块重新分配区域(BBRA):由pvcreate创建,它是磁盘尾部的一个区域,发现物理卷缺陷时由LVM使用。

7.

文件系统:

文件系统时将文件和目录一起存储的集合。

分配给文件系统的区域被分成两个主要部分,即用户区和元数据区。

用户区用于存储用户文件中真正的数据。

元数据区存储文件系统的结构数据:

  • 超级块:包含文件系统类型,尺寸信息,还有指向元数据结构的指针
  • I节点:保存文件属性的记录。比如文件属主,权限,类型等。02总是代表根目录。
  • 目录:目录区保存文件名与之相关的I节点的记录。

8.

高性能文件系统(HFS):

传统的HP-UX文件系统,作为/stand的文件系统。

所有HFS文件系统的前8KB空间用作HFS主超级块,包含一般的文件系统信息。

超级块还包含指向文件系统中所有其他HFS结构数据的指针。

HFS拥有多个超级块备份,位置在/var/adm/sbtab。

被损坏的HFS超级块通过这些备份进行修复。

在一个读请求中,HFS块是最小数据单元,缺省为8KB大小,有效数据块为4-64K,2的乘方。

段是用于分配的最小数据单元,HFS块可以分成多个段。

HFS便于管理,然而不能缩减它的空间,也不能方便地扩展空间,扩展前必须卸载文件系统。

当创建HFS文件系统时,必须标明你需要创建多少I节点。

I节点存放在新文件系统的I节点表中。

如果没有空闲的I节点,即使你有空闲的数据块,也不能创建新文件目录。

可以通过以下两种方式添加新的I节点:

  • 向文件系统添加附加的空间,扩展文件系统也向I节点表中添加了I节点。
  • 备份数据,重建文件系统,建立更多的I节点,然后从磁带上恢复你的数据。

系统崩溃或不正确的关闭会对HFS文件系统造成灾难性的后果,且恢复过程缓慢并不可预测。

在某些情况下,可能需要重新创建文件系统并从磁带恢复数据。

日志文件系统(JFS):

也被称为Veritas文件系统(vxfs)。

日志文件系统是为了克服HFS的一些不足而设计的。

这种文件系统具有快速恢复的特性。

HP的在线日志文件系统(online JFS)它基于JFS扩展,可以对文件系统进行在线管理,不用先卸载。

JFS也保存超级块的多个拷贝,与HFS不同,它能自动找到冗余超级块,所以备份不存储在sbtab文件中。

JFS的主要优点是所有对结构数据的修改都保存在日志中。

这种日志机制保证了文件系统的完整性,并且系统崩溃时能很快恢复文件系统。

如果系统崩溃,文件系统能通过应用JSF日志中的所有改变记录被迅速恢复。

系统崩溃后,简单重做日志中的事务处理,就可以在10-20秒内将文件系统结构数据恢复到相应状态。

相比于HFS,JFS另一个显著有点就是它可以动态增加I节点的数量。

与HFS一样,JFS将文件系统分成若干个JFS块,缺省每块为1KB大小。

JFS是一种以extent为基础的文件系统,为了达到性能优化,文件和目录中的数据应当是连续的。

在动态文件系统中,可能需要定期使用fsadm碎片整理工具。

内核文件不能在JFS文件系统中。

9.

创建新的文件系统:

要使一个文件系统真正生效,需要经过4个步骤:

(1)先用newfs创建新文件系统

newfs命令可以用于创建文件系统,如果你采用LVM,在使用newfs之前,需要先完成下面3个步骤

建立物理卷,利用这些物理卷创建一个或多个卷组,创建逻辑卷。

执行了上面的步骤后,再用newfs在逻辑卷上创建一个文件系统,使用字符设备文件:

例:在/dev/vg03/rlvol4上创建JFS文件系统,使用下面的命令

       newfs -F vxfs /dev/vg03/rlvol4                         #在/dev/vg03/rlvol4上创建JFS文件系统

       newfs -F vxfs -o largefiles /dev/vg03/rlvol5     #/dev/vg03/rlvol5上创建一个支持大文件的系统

       newfs -F hfs -b 2048 /dev/vg03/rlvol5             #建一个块尺寸2KB的HFS文件系统

在一个整盘方法创建的磁盘c2t5d0上建立一个JFS文件系统,并留出100MB空间用于交换:

newfs -F vxfs -R 100 /dev/rdsk/c2t5d0

newfs命令的一些选项:

  • -F                    文件系统类型。HFS或vxfs等
  • -s                    以块来表示文件系统尺寸,若不指定,将使用逻辑卷所有空闲空间
  • -o largefiles     用于支持大文件,缺省文件最大尺寸为2GB,使用后为128GB
  • -b                    以字节表示每个块的大小(仅用于HFS)
  • -i                     以字节表示每个I节点的尺寸(仅用于HFS)
  • -f                     以字节表示段的大小(仅用于HFS)
  • -R                   以MB表示文件系统尾部保留作为交换区的空间,不可以与-s一起使用
  • -m                   允许的剩余空间最小值,达到这个值后,则除root外其他用户不能使用FS。

*:-i 4096 表示每4KB空间需要使用1个I节点

newfs命令需要使用字符设备文件做参数,逻辑卷或磁盘会被覆盖,所以数据会被破坏。

如果没有使用-F来定义文件系统类型,将采取/etc/default下面的定义,HP11.0默认为vxfs。

(2)然后用mkdir命令为文件系统创建一个挂在用的目录

          mkdir /mnt

(3)建立目录后,用mount命令将新文件系统挂载

         mount -F vxfs /dev/vg03/lvol4 /mnt       #把JFS文件系统/dev/vg03/lvol4挂载在/mnt目录

         可以用mount -v或bdf查看已挂载的文件系统。

         fuser /mnt  可以查看/mnt是否正在被用户使用。

         fuser -ku -c /mnt 可以把正在使用/mnt文件系统的所有进程停止下来。

         umount /mnt 可以卸载挂载在/mnt目录的文件系统。

         umount /dev/vg01/myfs1 卸载使用myfs1逻辑卷的文件系统。

         umount -a 可以卸载所有当前挂载的文件系统。

         umount -aF vxfs 可以卸载所有JFS文件系统。

mount使用的是块设备文件。

文件系统必须挂起在空目录下,如果文件系统被挂起在已经包含文件和目录的目录下,则这些文件和目录将会被隐藏。直到这个文件系统被卸载。不可能把文件系统挂载在正在被其他用户或进程使用的目录,试图吧这个文件系统挂在已经使用的目录上会得到“设备忙”的信息。

(4)修改/etc/fstab文件,添加一行相关信息,实现系统启动时自动挂载文件系统

/e tc/fstab文件示例:

/dev/vg00/lvol4    /tmp   vxfs delaylog  0  2
/dev/vg00/lvol5   /home vxfs delaylog  0  2
/dev/vg00/lvol6   /opt    vxfs delaylog  0   2
/dev/vg00/lvol7   /usr    vxfs delaylog  0  2
/dev/vg00/lvol8   /var    vxfs delaylog  0  2

...

行信息包含了文件系统名,挂载点,文件系统类型以及其他相关选项。

添加一行例子:

/dev/vg00/lvol4 /moko xvfs delaylog 0 2

在启动过程中,脚本/sbin/init.d/localmount被执行,它调用mount -a命令,将/etc/fstab文件中所列的文件系统全部挂载。

10.

管理文件系统:

改变文件系统的大小包括3个步骤:

(1)扩展卷组:

如果在一个卷组中,没有未分配的空间,你需要先扩展卷组,可以通过增加一个硬盘来实现。通过创建一个物理卷,然后将这个新的物理卷使用vgextend命令加入到卷组中,从而增加卷组容量。

例:pvcreate /dev/rdsk/c0t3d0

       vgextend vg03 /dev/dsk/c0t3d0

(2)扩展逻辑卷:

扩展卷组后,通过lvextend命令扩展逻辑卷的尺寸。

例:lvextend -L 800 /dev/vg03/lvol4       #将逻辑卷由本来400M增加到800M

       lvextend -L 800 /dev/vg03/lvol4 /dev/dsk/c0t3d0   #在特定磁盘上扩展逻辑卷

(3)扩展文件系统:

扩展了逻辑卷的空间不会自动扩展文件系统的空间,应使用extendfs命令给文件系统增加空间。

在扩展之前,必须先卸载该文件系统(在线式JFS除外)。

例:extendfs -F vxfs /dev/vg03/lvo14

在线式JFS扩展系统时,不用卸载,需要使用另一个命令fsadm来扩展文件系统,例:

fsadm -F vxfs -b 819200 /mnt       #将/mnt文件系统扩展到800MB(819200KB)

监视磁盘使用情况

bdf能够显示所有已挂载的文件系统以及每个文件系统的信息:文件系统名称,总的磁盘空间,已用的磁盘空间,可用的磁盘空间,磁盘利用的百分率,挂载点。

Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3     204800   48168  155424   24% /
/dev/vg00/lvol1     295024   38856  226664   15% /stand
/dev/vg00/lvol8    4706304 1523976 3157592   33% /var
/dev/vg00/lvol7    1163264  708304  451464   61% /usr
/dev/vg00/lvol4     204800   96408  107568   47% /tmp
/dev/vg00/lvol6    1048576  766024  280360   73% /opt
/dev/vg00/lvol5    1048576    4456 1036024    0% /home

加上-i选项在输出中增加了3个文件系统可用I节点的列:

iused:文件系统上正在使用的I节点数。

ifree:文件系统上可用的i节点。

第三个位I节点的使用比例。

也可以使用du命令显示一个目录多少空间被使用。

清理磁盘空间

core文件一般作为严重错误或QUIT信号的结果,产生在进程被异常终止时。程序员可以通过使用它来确定当进程被终止时的情况。

core文件可能很大,当不再需要时可以从系统上删除,用find命令找出这些文件并清除:

find / -name core -exec ll {} \;           #显示所有core文件

find / -name core -exec rm {} \;        #清除所有core文件

/var包含系统日志和缓冲区日志,如果不仔细监控,很容易占满文件系统:

>/var/adm/btmp                #清空btmp日志文件

>/var/adm/wtmp                #清空wtmp日志文件

可以用find命令找出不再需要却忘了删除的大文件:

find /tmp -atime +30 -size +1000c -exec ll -ud {} \;

以上例子是查找并显示/tmp目录下面大于1000个字符,在30天内没有被访问的文件。

11.

文件系统修复:

系统崩溃或非正常关机的关机操作都会导致文件系统元数据出现错误,这时,你应该对文件系统进行修复。

fsck命令可用来检查并修复系统。

如果系统崩溃或进行了非正常的关机操作,fsck命令会自动运行,需要时也可以手工执行。

执行fsck前,必须卸载文件系统。

如果在元数据区遇到不一致的情况,fsck命令会删除一些文件。

有些文件不能被fsck完全识别,它会被放到lost+found目录下。

在用完fsck修复完文件后,你应该从先前的备份上将一些被毁坏的文件恢复到系统上。

例:fsck -F vxfs /dev/vg03/rlvol4       

执行fsck时需要知道文件系统的类型。指定需要检查的文件系统所在磁盘或逻辑卷的字符设备文件。

fsck命令的一些选项:

  • -F           文件系统类型
  • -n           假设对fsck的所有问题回答No
  • -y           假设对fsck的所有问题回答yes
  • -b           告诉fsck去使用备用的超级块(仅适用于HFS)
  • -f            强制在被挂起的文件系统上执行fsck(仅适用于HFS)
  • -o full     强制fsck对文件系统的元数据进行全面检查而不是指重放意图日志(仅用于JFS)
  • -o nolog 阻止意图日志重放(仅用于JFS)

12.

重要的LVM命令:

extendfs                扩展一个文件系统

lvchange                改变一个逻辑卷的属性

lvcreate                 创建一个逻辑卷

lvdisplay                 列出逻辑卷信息

lvextend                 扩展逻辑卷

lvlnboot                  将逻辑卷设成root ,dump 或 swap

lvreduce                 减少一个逻辑卷的尺寸

lvremove                将卷组中的一个逻辑卷删除

lvrmboot                 将逻辑卷作为root ,dump 或 swap使用

pvchange               改变一个物理卷的属性

pvcreate                 创建一个物理卷

pvdisplay                列出物理卷的属性

pvmove                   将某物理卷从一个卷组移动到另一个卷组

vgcfgbackup           备份LVM的配置信息

vgcfgrestore           从备份的LVM配置信息中恢复

vgchange                 改变一个卷组的属性

vgcreate                   创建一个卷组

vgdisplay                  列出一个卷组的属性

vgextend                   扩展卷组

vgexport                    从系统输出一个卷组

vgimport                    从系统输入一个卷组

vgreduce                   通过删除物理卷来减小卷组

vgremove                  删除一个卷组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值