第9章: 文件系统维护
※使用df和du命令来监控文件系统的有效空间的大小
※通过清除不用的文件和core文件来清理文件系统空间
※通过修剪日志文件来清理/var文件系统
※从命令行扩展一个卷组
※从命令行扩展一个逻辑卷
※从命令行扩展一个文件系统
1.监控磁盘使用情况
使用df 命令检查文件系统的有效空间。
# df -k
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lvol5 294912 261523 31352 89% /opt
/dev/vg00/lvol4 24576 19333 4978 80% /home
/dev/vg00/myfs1 16384 1174 14331 8% /myfs1
/dev/vg00/myfs2 15893 14006 297 98% /myfs2
检查目录中的各个子目录使用的磁盘空间:
# du -sk /myfs2/*
844 /myfs2/data1
1327 /myfs2/data2
1073 /myfs2/data3
10757 /myfs2/data4
4 /myfs2/lost+found
系统管理员有责任监视系统中的剩余磁盘空间的大小。通常使用的命令是df。显示的字段含义为:
Filesystem 文件系统使用的块设备文件名
Kbytes 文件系统占用了多少磁盘空间(单位为k)
used 文件系统中已存在的文件所占用的磁盘空间
avail 文件系统中剩余的有效磁盘空间
capacity 文件占用的磁盘空间的百分比
Mounted on 文件系统安装点
如果加上-i选项,输出中会增加三个字段:
iused 文件系统当前使用的inode的数目
ifree 文件系统剩余的inode数目
%used 文件系统当前使用的inode数目所占的百分比
当你想要知道更多的细节,如一个目录下面使用了多少磁盘空间,你可以使用du命令。默认情况下,du显示的单位为512字节的一个block。这个命令的
执行是递归的,意味着如果在当前目录执行这个命令,它会返回当前目录下所有的文件和各级子目录的信息。
主要的选项为:
-k 以k字节为单位
-s 只显示指定目录占用的总的磁盘空间。
2.日常的维护
※对大小不断增长日志文件进行修剪
※删除core文件
※删除大的,旧的的文件
※扩展文件系统
- 到一个已存在的空闲空间中
- 到卷组中的一个新的磁盘上
磁盘空间通常是有限的。系统管理员应该经常检查磁盘空间的使用情况,并且执行一些操作来防止磁盘空间用尽。系统管理员可以做的操作有:监控不断增长的文件,删除core文件,剪切日志文件,和删除长时间不用的大文件或者将其归档。
剪切日志文件
通常最先发出“文件系统满”的信息的是/var文件系统。/var目录中包含系统日志文件和缓冲池,如果不对这些文件进行检查和清理,它们会很快填满这个文件系统。
以下的例子将清空wtmp和btmp日志文件:
# > /var/adm/btmp
# > /var/adm/wtmp
这些命令可以加入到cron守护进程中,让其自动定期地执行。
注意:不要使用下面命令来清空日志文件:
# rm logfile
# touch logfile
因为这些操作可能会改变日子文件的许可权限,造成系统写日志的时候出现错误。
删除core文件
“core"文件是在进程遇到一系列的错误或者QUIT信号而非正常地终止的时候自动创建的一个文件。core文件中包含有导致进程终止的错误条件。程序员可以通过这个文件来判断进程在终止的时候正在作什么。
core文件可能很大,因此如果你不需要,可以将其从系统中删除。可以使用以下命令来从系统中找出并且删除core文件:
# find / -name core -exec ll {} \; # 列出系统中所有的core文件
# find / -name core -exec rm {} \; # 删除所有的core文件
你也可以通过在cron中添加这些命令行来定期删除core文件。
大的,旧的文件
用户经常会创建大的文件,并且当他们不再需要这个文件的时候忘记删除。应该经常搜索系统中的最近都没有存取过的大文件,,同时判断这个文件是否还需要,并且决定删除这个文件或者将其归档。
可以用find命令来进行这种操作。下面的例子将查找/tmp目录下超过1000个字符,并且最近30天都没有使用过的文件:
# find /tmp -atime +30 -size +1000c -exec ll -ud {} \;
将结果打印出来,然后联系文件所有者询问是否可以删除这些文件。
扩展一个文件系统(如果使用的是逻辑卷管理)
如果一个文件系统空间已经用了100%,你可能需要添加另外的磁盘空间。如果这个文件系统所在的卷组有未用的物理extends,你可以利用这些剩余的
extents来扩展这个文件系统。如果这个卷组中所有的物理extents都分配给了其它逻辑卷,你可能需要增加新的磁盘给这个卷组。
3.扩展一个卷组
如果想要扩展一个文件系统空间,可能需要在这个文件系统所在的卷组中增加磁盘。
增加一个磁盘到一个卷组中去
添加一个磁盘到卷组需要两个步骤。首先,你必须使用pvcreate命令在这个新磁盘上创建LVM的数据结构。然后才能用vgextend命令将磁盘添加到卷组中。下面的例子说明如何将磁盘c0t5d0添加到卷组vg01中去:
# pvcreate /dev/rdsk/c-t5d0
Physical volume "/dev/rdsk/c0t5do" have been sucessfully created.
# vgextend vg01 /dev/dsk/c0t5d0
Volume group "vg01" has been successfully extended.
Volume Group configuration for /dev/vg01 has been saved in
/etc/lvmconf/vg01.conf
如果你要添加多个磁盘到这个卷组,vgextend命令也可以接受多个物理卷作为参数。
检查卷组的配置
你可以使用pvdisplay 和vgdisplay命令来检查将磁盘添加到卷组是否成功。检查在vgdisplay
-v命令的结果中是否有新的物理卷。也可以使用pvdisplay检查"VG Name"的字段是否为卷组的名称
4.扩展逻辑卷的大小
在添加一个磁盘到一个卷组之后,你可以将新的磁盘的物理extents分配给卷组中的逻辑卷。扩展一个逻辑卷的命令是lvextend。
# lvextend -L 32 /dev/vg01/myfs2 /dev/dsk/c0t3d0
# lvdisplay -v /dev/vg01/myfs2
上例将逻辑卷/dev/vg01/myfs2的大小由16MB扩展到32MB。lvextend命令后的参数/dev/dsk/c0t3d0强迫LVM使
用磁盘c0t3d0上的物理extents。如果你你不指明磁盘,LVM会使用卷组中最先的有效extents。在完成对逻辑卷的扩展后,最好用
lvdisplay命令检查一下。
注意:一个逻辑卷可以跨越多个物理卷,但是它不能跨越多个卷组。一个逻辑卷只能被延伸到本逻辑卷所在的卷组中的其它磁盘上。
注意:只扩展文件系统所在的逻辑卷不能达到扩展文件系统的目的。下一节会介绍如何让文件系统使用逻辑卷中的新的有效空间。
5.扩展一个文件系统
仅仅扩展逻辑卷不能达到扩展文件系统的目的。只有在文件系统的超级块和其它的metadata数据结构都已经登记有新的的磁盘空间的信息之后,逻辑卷中的新的空间才能被文件系统使用。
扩展一个HFS文件系统
为了扩展一个HFS文件系统,你必须暂时umount这个文件系统。然后使用extendfs命令,让文件系统可以使用新的extents,接着重新mount文件系统。然后使用df命令检查可用空间是否已经增长。
例子:(假定/dev/vg01/myfs2已经被扩展到32MB)
# umount /myfs2
# extendfs -F hfs /dev/vg01/rmyfs2
# mount /myfs2
# df /myfs2
现在整个/dev/vg01/myfs2逻辑卷都可以被/myfs2这个文件系统所使用。
扩展一个JFS文件系统(without ON-LINE JFS)
如果你没有On-line JFS的产品,一JFS文件系统的扩展就和HFS文件系统一样;唯一的变动是-F后的文件系统类型不同。
例子(假定/dev/vg01/myfs2已经被扩展到32MB)
# umount /myfs2
# extendfs -F vxfs /dev/vg01/rmyfs2
# mount /myfs2
# df /myfs2
现在整个/dev/vg01/myfs2逻辑卷都可以被/myfs2这个文件系统所使用。
扩展一个JFS文件系统(使用On-line JFS)
使用On-line JFS产品,你不需要unmoun文件系统就可以对文件系统进行扩展。
例子(假定/dev/vg01/myfs2已经被扩展到32MB)
# fsadm -F vxfs -b 32768 /myfs1
# df /myfs1
注意fsadm命令要求使用”block"为单位指明一个新的文件系统的大小。JFS的block的大小一般都是1K。为了计算以block为单位的文件系统的大小,你可以简单地以1024KB/MB为单位将逻辑卷的大小换算为blocks.
阅读(840) | 评论(0) | 转发(0) |