用Storage Foundation管好存储系统-文件系统

 【IT168 专稿】在Storage Foundation存储解决方案中,磁盘组和卷一般都是由专业的存储专业人员来配置和管理的。作为普通用户,我们并不关心文件系统是多少个硬盘组成,数据存放在哪个硬盘,磁盘数据部署是用条带,镜像还是RAID5技术的。用户能够感受到的是,文件系统读写是否快速,文件系统是否稳定,操作是否简单,维护是否便捷。

    可以说,文件系统是Storage Foundation与普通用户交互的接口,文件系统的好坏是用户对于Storage Foundation是否满意的关键所在。正因为如此,今天我们来聊聊文件系统的入门知识和用法。

    相关链接
   
用Storage Foundation管好存储系统-安装
    用Storage Foundation管好存储系统-入门
    用Storage Foundation管好存储系统-进阶
    用Storage Foundation管好存储系统-高级
    用Storage Foundation管好存储系统-文件系统

    谈文件系统,必然先要谈到裸设备和块设备,创建文件系统一般都会创建一个裸设备文件和一个与之对应的块设备文件,裸设备文件是Storage Foundation用来管理文件系统的,块设备文件是用户可以用来读写数据的。

    很多用户都会混淆这两个概念,我给大家做个比喻:Storage Foundation就好像一个数据专家,他手里有一些硬盘资源,他来维护这些资源的可靠性和安全性等等;用户习惯使用的操作系统就好像是Storage Foundation的代理,Storage Foundation委托操作系统给用户提供服务数据读写的服务。Storage Foundation根据用户创建文件系统的大小要求,就会在硬件上面划分一块相应的区域出来,作为数据存放的物理空间;然后给操作系统提供一组接口,使得用户可以通过操作系统来读写这个物理空间,这个接口就是块设备了。

    根据刚才讲的裸设备和块设备的区别,我们应该能够了解:裸设备文件和块设备文件其实都是可以读写的。对裸设备文件的读写其实是直接对硬盘进行读写操作,优点是读写速度快,有利于提高IO的速度,但是缺点是容易出错,而且对硬盘的读写不利于文件的管理和维护,所以对裸设备文件的方法一般不会被采用,除非是数据库文件大块的写入,为了提高速度,避免或者减弱在IO的瓶颈。相反的,对块设备文件的读写虽然稍微慢一点(毕竟要通过操作系统做代理,代理总会干点什么影响效率的),但是优点是易于管理,易于维护。所以一般来说,用户都不得不在块设备文件上进行操作(毕竟不会人人都是存储专家的)。

    在Storage Foundation中,裸设备文件存放的地址是/dev/vx/rdsk/disk_group/volume_name,而对应的块文件设备的存放地址是/dev/vx/dsk/disk_group/volume_name,其中disk_group就是文件系统所属的磁盘组,volume_name就是文件系统所属的卷,rdsk就是裸磁盘(raw disk)的意思。

    好了,介绍了两种设备文件的区别之后,我们开始详细讲述文件系统的用法。

1. 创建文件系统
    mkfs –F VxFS –o [option]
    其中,option是Storage Foundation为用户提供的一些可选项:

    a) –o N
    表示并不真实创建文件系统,只是给用户提供创建文件系统的信息;
    b) –o largefile
    表示创建的文件系统支持大文件或者多个文件,如果有这个选项,VxFS文件系统可以识别超过2GB大小的文件,也可以支持八百万以上的超多文件。如果不希望用大文件系统,可以使用-o nolargefile代替;
    c) -o bsize=n
    表示可以设置文件系统的最小块大小,默认是1024byte(1KB)。越大的block可以带来越好的读写性能,但是相应的,稳定性会受到影响。所以需要用户自己去权衡利弊了。
    d) -o logsize=n
    设置VxFS日志文件的大小,默认值与文件系统大小有关。大的日志文件需要更多的空间,降低了硬盘的有效利用,但是它也可以生成更多的检查点,如果硬盘出现错误,就可以恢复到离事故发生最近的地方,减少用户的数据损失。
    e) 实例:
    # vxfs –F VxFS –o large file /dev/vx/rdsk/TestDG/TestVol
因为创建文件系统是需要数据专家给用户分配空间的,所有需要使用裸设备文件。

2. 维护文件系统
    a) 检查文件系统移植性并使用日志记录信息:
    # fsck-F VxFS /dev/vx/rdsk/TestDG/TestVol
    检查文件系统的活也是属于数据专家的活了,代理可不会做这个的。所以,这里同样需要使用裸设备文件;
    b) 检查文件系统移植性但不要记录日志:
    # fsck-F VxFS -o full,nolog  /dev/vx/rdsk/TestDG/TestVol
    c) 并行检查多个文件系统:
    # fsck -F VxFS -o p /dev/vx/rdsk/TestDG/TestVol1 /dev/vx/rdsk/TestDG/TestVol2
    显然,这个检查也是需要记录日志的,如果不想记录日志,需要再加入” full,nolog” 参数;

    3. 挂载(mount)文件系统
    文件系统使用前必须经过挂载,就相当于操作系统给用户开了个帐户相似。挂载文件系统最常用的命令是:
    #  mount –F VxFS /dev/vx/dsk/TestDG/TestVol /mnt
    因为挂载文件系统相当于代理给用户开设帐户的过程,所有在这里需要使用块设备文件。除了最常用的方法,mount还支持一下其他常见选项:
    mount –r: 以只读方式挂载,如果用户只是想读出信息,那么这样可以增加文件系统安全性;
    mount –v:显示出已经挂载的文件系统;
    mount –p:显示文件系统挂载表;
    mount a: 把文件系统挂载表中所列的文件系统一起挂载,方便用户操作;

4. 卸载(umount)文件系统:
    卸载文件系统常见的命令是:
    #  umount –F VxFS /dev/vx/dsk/TestDG/TestVol  (注意这里是块设备文件)
    除此之外,还有几个特殊选项:
    umount –a:把系统挂载表的所有文件系统卸载;
    umount –o force: 强行卸载文件系统。

    5. 显示文件系统类型:
    # fstyp -v /dev/vx/dsk/TestDG/TestVol
    这个也是代理就能做的,使用块设备文件。

    6. 显示文件系统的使用情况,剩余空间:
    # df -F vxfs /mnt

    7. 创建文件系统并且直接挂载:
    # crfs -v vxfs -d /dev/vx/rdsk/TestDG/TestVol -m /mnt -A yes
    因为涉及到了创建文件系统,所以需要使用裸设备文件。

    8. 磁盘整理(重要)
    随着文件系统的使用,增删操作的增加,文件系统将不可避免的出现空间碎片,碎片不仅仅浪费文件系统的空间使用,它还会降低文件系统的性能,所以我们必须在必要的时候进行磁盘整理操作。

    碎片一般有两种:目录碎片(Directory fragmentation)和扩展碎片(Extent fragmentation),他们的区别和整理的目的是不同的:
    a) 目录碎片的整理能够把目录入口信息放在文件系统的开始位置,把文件的入口放在目录之后,将剩余空间集中在文件系统的中间,节省读写文件的速度。其具体名利是:
    #  fsadm -d -D /mnt
    b) 扩展碎片的整理能够将小文件放在一起;将大文件放在扩展区;将小的,经常需要访问的文件放在能被更快访问到的地方;将大的、不常用的文件放在文件系统的末尾,然后将剩余空间集中在文件系统的中间。其具体的命令是:
    # fsadm -e -E -s /mnt

注意:
    上述所使用的命令,并不是系统自带的命令,而是Storage Foundation给用户提供的,只是为了用户操作,所以才使用了与操作系统相同的命令,但是他们都存放在/opt/VRTS/bin/目录下面,如果用户使用上述命令确得不到所需信息,请检查是否使用了正确的命令”which command”;

    通过本文,用户可以了解到如何创建一个更有效的文件系统,使用文件系统,检查文件的系统以及如何进行碎片整理。了解了这些之后,就可以轻松的管理您自己的文件系统了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值