设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 614|回复: 0

[经验分享] linux文件系统简析

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-17 08:39:49 | 显示全部楼层 |阅读模式
什么是文件系统?
    文件系统是基于操作系统的。用来管理和组织保存在磁盘驱动器上的数据的系统软件。通过对数据存储布局,文件命名,安全控制等方面的管理。解决了如何在设备上有效的存储数据。
    元数据(metadata)存储文件的重要信息(文件的权限,大小,修改时间,属主,存储位置等)
    文件系统是操作系统和硬盘之间 一个桥梁,对磁盘的写操作,都要经过文件系统,然后才到磁盘。
    常见的文件系统:
        DOS系统的msdoc   
        windows 下的FAT系统(fat16(最大支持2G)和fat32(最大支持4G))和NTFS文件系统
        光盘文件系统 ISO-9660
       linux 下 单一文件系统 ext2  和日志文件系统 ext3/ext4/xfs
        集群文件系统 gfs (Red Hat Global File System)
        虚拟文件系统 (/proc)  
        加密文件系统 (CFS)
        网络文件系统(NFS)
linux标准文件系统是从VFS开始的,然后是ext2。ext3,ext4
    ext系列的对比:
        ext3是在ext2的基础上增加了日志形式(便于数据恢复)这一思想来源于:超级块和inode设计理念。
        ext3是一种日志式的文件系统,在ext2的基础上加入特殊的inode(日志文件)。日志记录功能,用于记录文件系统的元数据或各种写操作的变化。ext3数据的写入顺序;先通过日志文件的记录功能,然后在将数据写入磁盘的最终位置。
        ext4 是linux第四代日志文件系统。是ext3文件系统的后续版本。比较ext3的改进:(centos6下的默认文件系统)
         1.支持更多的子目录数量(ext3支持32000个子目录)ext4,理论上支持无限数量子目录
         2.支持更大的文件系统和更大的文件(ext3 持续贺词32TB的文件系统和2TB的文件,而ext4 容量可达1EB,文件容量增至16TB)
    XFS文件系统:
        XFS文件系统是SGI(美国硅图公司)开发的一个高级日志文件系统。centos7下作为默认文件系统(centos7 下构架全部是64位了)
        文件系统格式化命令mkfs.xfs
        # mkfs.xfs -f /dev/sda2    (由于sda2已经完成格式化了。需要-f  强制重新格式化)
            meta-data=/dev/sda2              isize=512    agcount=4, agsize=1525824 blks
                     =                       sectsz=512   attr=2, projid32bit=1
                     =                       crc=1        finobt=0, sparse=0
            data     =                       bsize=4096   blocks=6103296, imaxpct=25
                     =                       sunit=0      swidth=0 blks
            naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
            log      =internal log           bsize=4096   blocks=2980, version=2
                     =                       sectsz=512   sunit=0 blks, lazy-count=1
            realtime =none                   extsz=4096   blocks=0, rtextents=0
        文件系统一致性检测命令:
            xfs_repair -n /dev/sda2 (-n 只是测试不是修复)
        修复和监测要把分区卸载了。
        这里出现启动问题:
        A start job is running for dev-disk-by\x2duuid-.....device(1min \1min 30)
        然后是时间超时
        然后出现提示: [DEPEND] DEpendency failed for /data
        不过 centos7下。的init系统还是比较好的。没有直接拒绝登录系统而是给了修复信息。
        Give root passwd for maintenance (输入root密码进入修复)
        (or type Control-D to continue):(这种一般是文件系统启动的错误。系统尝试自动修复文件系统)
        前面 由于出现提示是/data挂载不了。还是先进入系统看下/etc/fstab
        先查看 分区的UUID; # blkid
        然后查看 /ect/fstab
        对比发现: /data的UUID 有问题。
        修改 /data 的UUID
        重启,正常。
    文件系统使用的差异
        1.读操作频繁,小文件非常多(web应用,邮件应用) ext 4 文件系统比较好。ext4支持更多目录和文件
        2.写操作频繁。(需求日志功能)xfs 文件系统较好。(在高并发下:xfs比ext4 省CPU资源)
        3.对性能和安全都要求不高。可以用ext2 。(没有日志记录功能,可以省去设备开销)
    NFS 网络文件系统的
        功能:
            让网络上的不同操作系统之间共享数据。NFS首先在远程服务端(共享数据的操作系统)共享出文件或者目录,然后远程
        共享出来的文件或者目录,可以通过挂载的方式接到本地的不同系统上。
        实现原理:NFS server启动后,开启一个端口为客户端连接。由于这个端口每次都不一样,NFS文件系统通过rpc(remote procedure call)
        远程过程调用,监听NFS守护进程的端口号,通知给客户端。
        nfs需要2个系统服务。
        portmap;RPC的portmap 管理器,管理RPC服务的连接
        nfs-utils: 提供 rpc.nfsd 及prc.mountd 这2个 nfs (daemons)的系统服务。
            其中:rpc.nfsd 是管理客户端是否有权限登录服务器。rpc.mountd 是管理认证后的客户端是否对文件有使用权。
                简单点就是: rpc.nfsd 处理连接请求  rpc.mountd 监督是否有权限操作目录。
        nfs是 c/s架构。
        NFS 服务器端 安装 需要 rpcbind 和 nfs 包
            centos7下一般默认安装了。现在检查下:
            # rpm -qa | grep rpcbind
            rpcbind-0.2.0-38.el7.x86_64
            # rpm -qa | grep nfs
            nfs-utils-1.3.0-0.33.el7.x86_64
            libnfsidmap-0.25-15.el7.x86_64
        主配置文件: /etc/exports
        添加一条语句:/app 192.168.1.140(rw,sync,no_root_squash)
        在添加的时候vim 不允许保存。显示 read_only file system
        解决方法:mount -o remount,rw /(重新挂载/分区为可读写)
        格式:共享资源路径 [主机地址][选项]
        格式解析:
      共享资源路径:就是要共享出来的目录或者磁盘分区。这些目录存在于NFS Server端,以供NFS Client挂载使用。
        主机地址:设定允许使用NFS Server共享资源的客户端主机地址,主机地址可以是主机名、域名、IP地址等,支持匹配。
        选项:下面是可用的各个选项含义:
        ro: 即为:read only,也就是客户端主机对共享资源仅仅有读权限。
        rw: 即为:read write,也就是客户端主机对共享资源有读、写权限。
        no_root_squash: 信任客户端,根据用户UID进行判断,如果登入到NFS主机的用户是ROOT,那么此用户就拥有对共享资源的最高权限。此参数很不安全,建议不要使用。
         root_squash:系统预设值,当登入NFS主机的用户root时,那么这个使用者的权限将被縮成为匿名使用者,也就是它的UID与GID都会变成nfsnobody身份;只有可读权限,例如客户端使用者以UID,GID)=(0,0)的身份使用共享目录时,其身份就被转换为(UID,GID)=(65534,65534) 也就nfsnobody这个用户身份。系统以此为预设值,显然是为了安全考虑。
        all_squash:不管登陆NFS主机的是什么用户,都会将共享文件的UID和GID映射为匿名用户nfsnobody。
        no_all_squash:系统预设值,保留共享文件的UID和GID默认权限。也就是客户端用户的UID以及GID和服务端共享文件UID和GID相同时,才有对共享文件的读写权限。这种选项保证了共享文件的用户和组权限不会改变。
        anonuid:将登入NFS主机的用户都设定成指定的UID,此UID必须存在于NFS Server端/etc/passwd中。
        anongid:与“anonuid”含义类似,但是变成 GID了,即用户组ID!
        sync:资料同步写入磁盘中。默认选择。
        async:资料会先暂时存放在内存中,不会直接写入硬盘。
开启NFS服务
        # systemctl start nfs
        # systemctl start rpcbind
        exportfs 命令可以临时生效一条策略。系统不重启,就不会生效。
客户端:
            安装 rpcbind 和 nfs-utils
            启动服务: service  rpcbind start
        查看nfs服务器提供了哪些服务:
            showmount -a ip
            查看nfs主机信息
            showmount -e ip
            查看nfs主机和目录信息
    如何使用NFS: 在客户端挂载nfs服务器共享的目录
    # mkdir /app
          # mount -t nfs 192.168.1.152:/app /app
          (需要关闭服务器端口的防火墙 systemctl stop firewalld.service )
    NFS应用便捷场景:文件备份。
    需要备份的文件为客户端。粗放备份文件的客户端为nfs服务器。
    直接在挂载目录下。tar 需要复制的文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343183-1-1.html 上篇帖子: Linux进程与性能监控 下篇帖子: centOS7 部署 rabbitMQ linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表