xfs_quota命令指南 xfs_quota -x -c '指令' [挂载点] -x: 专家模式, 加x会多一些可以显示的 -c: 加指令 指令: - print: 打印文件系统参数等数据 - df block i=inode, N=数量, 也可为单位 name=用户/组的名称 - timer: 'timer [-ug] [-bir] Ndays' 命令示例 root@ck_test:~# xfs_quota (rw,relatime,attr2,inode64,usrquota,grpquota) 进行限制 对用户进行限制 root@ck_test:~# xfs_quota -xc 'limit / root@ck_test:~# xfs_quota -xc 'timer -b -g 14days' /home/ck/quota_test_dir/ root@ck_test:~# xfs_quota -x -c "disable -up" /home/ck/quota_test_dir xfs_quota -x -c "off -up" /home/ck/quota_test_dir xfs_quota
XFS 是一种 Linux 日志文件系统,本文记录修改 XFS 系统属性的方法。 XFS XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。 传输特性 XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。 xfs_copy xfs_estimate xfs_fsr xfs_info xfs_logprint xfs_metadump xfs_ncheck xfs_repair xfs_scrub xfs_spaceman xfs_bmap xfs_db xfs_freeze xfs_growfs xfs_io xfs_mdrestore xfs_mkfile xfs_quota xfs_rtcp xfs_scrub_all 此处记录属性修改工具
下文操作系统为 CentOS 7.0,无损扩容数据盘文件系统大小(XFS) 备份.gif 1. 查看磁盘挂载、分区信息 root@BJ-CentOS7 ~ # df -hT | grep vdc /dev/vdc1 xfs 10G 33M 10G 1% /vdc1 文件系统扩容(注意分区扩容完成后需要执行 partprobe 命令) partprobe 命令用于重读分区表,告诉内核分区表有变更,不然使用 xfs_growfs 命令扩容文件系统时可能会出现扩容无效情况 xfs_growfs 命令执行需要分区是挂载状态,不然会报错 root@BJ-CentOS7 ~ # xfs_growfs /dev/vdc1 xfs_growfs: /dev/vdc1 is not ~ # root@BJ-CentOS7 ~ # xfs_growfs /dev/vdc1 meta-data=/dev/vdc1 isize=512 agcount
下文操作系统为 CentOS 7.0,无损扩容数据盘文件系统大小(XFS) ? 1. 查看磁盘挂载、分区信息 root@BJ-CentOS7 ~ # df -hT | grep vdc /dev/vdc1 xfs 10G 33M 10G 1% /vdc1 文件系统扩容(注意分区扩容完成后需要执行 partprobe 命令) partprobe 命令用于重读分区表,告诉内核分区表有变更,不然使用 xfs_growfs 命令扩容文件系统时可能会出现扩容无效情况 xfs_growfs 命令执行需要分区是挂载状态,不然会报错 root@BJ-CentOS7 ~ # xfs_growfs /dev/vdc1 xfs_growfs: /dev/vdc1 is not ~ # root@BJ-CentOS7 ~ # xfs_growfs /dev/vdc1 meta-data=/dev/vdc1 isize=512 agcount
xfs文件系统xfs_quota配额设置(1)- 配置步骤及说明 1. 开启或者关闭配额控制 通过在挂载(mount)xfs文件系统时,指定挂载参数来控制开启或关闭配额管理特性。默认是关闭的。 /dev/sdb1 /datb xfs defaults,prjquota 0 0 挂载时如果没有指定配额控制参数,那么在执行xfs_quota 磁盘空间配额设置 2.1. xfs_quota命令说明 格式:xfs_quota -x -c cmd ... -d project ... path ... # mount -o prjquota /dev/xvm/var /var # xfs_quota -x -c 'project -s -p /var/log 42' /var # xfs_quota -x -c 'quota ' /dev/sdb1 # xfs_quota -x -c 'quota -p ' /dev/sdb1 xfs_quota: must specify a project
##前言 我使用xfs比较二一点,我是在ceph的rbd上直接格式化的xfs,所以ceph上的数据一般不会丢失,不过我的xfs是在docker内部进行的挂载,使用也是docker容器内使用,这里不得不说 xfs大多会在硬盘突然断电的情况下导致日志文件的写入损坏,故障往往就在这时发生,而docker stop容器和突然断电可以画上等号。最为悲催的是,我刚开始对xfs一无所知。 一开始没想到会是文件系统损坏,因为没有理太清楚ceph的rbd和xfs之间的关系,其实也没有查到会是xfs出了问题。 思索再三之后才恍然大悟,原来这玩意仅仅是在dump xfs的元数据,每个文件真实的数据都不包含,你从rbd0.img的大小就能看出来,绝对不是全量的xfs数据。 100%的,原因很简单源块设备的文件系统是坏的,xfs_copy只能在两个正常的xfs文件系统中复制数据。
xfs文件系统xfs_quota配额设置(2)- 配置信息存储位置探究xfs文件系统中有专门的inode存储xfs_quota配额信息,另外,被约束了project配额的目录和文件,在inode元数据中 xfs_db -r /dev/sdb1命令,进入xfs_db交互环境。dquot指令会将指针移动到quote block。然后我们再通过print指令查看对应block的数据。 xfs_db> dquot bad argument count 0 to dquot, expected between 1 and 2 arguments xfs_db> dquot - 查看superblock中dquot所在inode编号 xfs_db> sb xfs_db> p magicnum = 0x58465342 blocksize = 4096 /libxfs/xfs_format.h中定义。
问题描述 因小图片较多,导致Inode占用100%,磁盘空间虽然还有82%但是无法写入数据,导致minio各节点无法同步,最终导致节点无法启动 解决方案 xfs硬盘格式inode空间占比(默认为5%) 如果是ext4无法动态调整inode空间占比,所以需要将ext4改为xfs(xfs支持动态调整inode空间占比),这里就不说怎么改了,只说xfs调整inode空间。 IUse% Mounted on /dev/mapper/centos-root 48M 142K 48M 1% (总共就48M,已经使用了142K) 查看目前inode空间占比 # xfs_info extsz=4096 blocks=0, rtextents=0 inode max percent changed from 25 to 30(从25扩容到30) xfs 文件系统动态扩容inode空间占比为10%(后续可以根据存储情况调整) 再次查看inode空间占比 # xfs_info /data meta-data=/dev/mapper/centos-root
XFS是扩展性高、高性能的文件系统。也是rhel7/centos7的默认文件系统。 XFS支持metadata journaling,这使其能从crash中更快速的恢复。 通过延迟分配,XFS 赢得了许多机会来优化写性能。 可通过工具xfsdump和xfsrestore来备份和恢复xfs文件系统, xfsdump可使用dump级别来完成增量备份,还可通过size,subtree,inode flags来排除文件。 [y/n] y Wiping xfs signature on /dev/xfsgroup00/xfsdata. 注意:xfs被创建后,其size将无法缩小,但可以通过xfs_growfs来增大 [root@localhost zhongq]# mkfs.xfs /dev/xfsgroup00/xfsdata meta-data
linux_lvm xfs磁盘化分及扩容 一、linux_lvm磁盘化分 1、新添加的硬盘,fdisk -l 可以看到 sdb 新的未分配的分区。 ? vgdata卷组剩下的所有空间创建分给逻辑卷lvdata3(注意是小写l): lvcreate -l +100%FREE -n lvdata3 vgdate 2.4、将新的分区,格式化: mkfs.xfs 将新的分区,格式化; #mkfs.xfs /dev/sdb1 ? 新的分区,格式化: mkfs.xfs /dev/vggroup1/lvdata1 二、LVM 扩容 服务器运行一段时间后,该目录下的存储空间使用紧张,现利用LVM对其进行磁盘空间扩容。 #lvextend -L +10G /dev/vggroup1/lvdata1 3、执行重设大小; 在rhel7.4中要用xfs_growfs命令,不然用resize2fs会有报错 #xfs_growfs
1、检查文件系统:先确保umount xfs_check /dev/sdd(盘符); echo $? 3、执行xfs_repair修复文件系统 xfs_repair /dev/sdd (ext系列工具为fsck) 4、最后方法:损失部分数据的修复方法 根据打印消息,修复失败时: 先执行xfs_repair -L /dev/sdd(清空日志,会丢失文件),再执行xfs_repair /dev/sdd,再执行xfs_check /dev/sdd 检查文件系统是否修复成功。 说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。 备注: 在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。 xfs_metadump为调试工具,可以不管,跳过。
[root@localhost ~]# xfs_growfs /dev/centos/root 注:如果是ext4文件系统,可以使用resize2fs命令替换xfs_growfs命令。
之前介绍是针对ext4文件系统LVM分区在线扩容的,下面介绍XFS文件系统的LVM分区在线扩容操作 以/data分区为例 1、lsblk 或者fdisk –l查看新增的磁盘 例如/dev/sdb 6、扩容/data分区 xfs_growfs /dev/mapper/VolGroup-LogVol_data ? 7、df -Th验证 ?
1.命令说明mkfs.xfs:创建 XFS 文件系统。xfs\_admin:调整 XFS 文件系统的各项参数。xfs\_copy:复制 XFS 文件系统的内容到一个或多个目标系统(并行方式)。 xfs\_db:调试或检测 XFS 文件系统(查看文件系统碎片等)。xfs\_check:检测 XFS 文件系统的完整性。xfs\_bmap:查看一个文件的块映射。 xfs\_repair:尝试修复受损的 XFS 文件系统。xfs\_fsr:碎片整理。xfs\_quota:管理 XFS 文件系统的磁盘配额。 xfs\_growfs:调整 XFS 文件系统的大小(只能扩展)。xfs\_freeze:暂停(-f)和恢复(-u)XFS 文件系统。 3.挂载 XFS 文件系统#mount –t xfs/dev/sdb5/xfs 其中,/xfs 是主分区/下的一个目录。
对挂载的硬盘做逻辑分区也是没有必要的了 我们只需要 添加硬盘——>格式化文件系统——>挂载到服务器挂载点 or 扩容硬盘——>扩容服务器磁盘 3、扩容操作流程 本文记录的是CentOS 7非LVM的xfs 卸载磁盘 # umount /mnt 关机扩容,扩容后再重新开机(新加磁盘时可以热添加新磁盘,这里是扩容操作,由于已有数据为了降低风险关机后进行操作) 开机后,可以对磁盘设备进行一下文件系统的修复 # xfs_repair Phase 7 - verify and correct link counts... done 扩容磁盘,xfs_growfs针对xfs文件系统,resize2fs针对ext2、ext3、ext4 文件系统 # xfs_growfs /dev/sdb meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks
XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。 传输特性 XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。 笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。 可扩展性 XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。 xfs 其中/xfs是主分区/下的一个目录。 各位可以按照自己习惯的方式去完成 如果你想得到一个纯的xfs系统(系统的所有文件系统均采用XFS文件系统)话,还得将根文件系统也格式化为xfs文件系统。这实际上是比较繁杂的一步。
那就自己来解析xfs文件系统吧. linux的文档是非常完善的, 基本上不需要看源码(虽然也才5MB左右).XFS 文件系统linux上一切皆文件, 包括xfs文件系统, 也是特殊结构的文件. xfs文件系统由若干个 我们可以使用xfs_db (xfs debug)来查看inode号对应的inode信息. 我们使用xfs_db可以得到如下信息:xfs_db> inode 69xfs_db> pcore.magic = 0x494ecore.mode = 0100640core.version = 3core.format /pub/linux/utils/fs/xfs/docs/xfs_filesystem_structure.pdf# xfs文件系统结构_xfs_struct = """xfs由一堆ag(allocate /libxfs/xfs_format.h# xfs_drfsbno_t = 8# xfs_drtbno_t = 8# xfs_ino_t = 8 # inode number# xfs_agblock_t
centos/redhat 7 默认将文件系统设置为xfs。咨询了很多DBA朋友,他们已经升级到7 并且使用xfs很久。于是我们也随大流打算使用xfs文件系统。 二 XFS 介绍 2.1 介绍 XfS文件系统是SGI( Silicon Graphics,Inc)开发的高性能的日志文件系统,XFS极具伸缩性,非常健壮。 传输特性 XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。 笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。 可扩展性 XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。 cpu 绿色线 为xfs ,黄色线是ext4 ,xfs的cpu利用率略高。 ? 3.3 结论 高并发压力下 xfs 的性能比 ext4 高 5-10% 左右。
[root@localhost ~]# xfs_growfs /dev/centos/root 注:如果是ext4文件系统,可以使用resize2fs命令替换xfs_growfs命令。
如果出现以下报错 [sda] Assuming drive cache: write through Internal error xfs XFS_WANT_CORRUPTED_GOTO at line 1662 of file fs/xfs/libxfs/xfs_alloc.c Caller xfs_free_extent+0x130 [xfs] Internal error xfs_trans_cancel at line 990 of file fs/xfs/xfs_trans.c.Caller xlog_recover_process_efi +0x16b/0x190 [xfs] Corruption 如果是LVM管理分区的 ls -l /dev/mapper xfs_repair /dev/mapper/cl_muban-root 若提示 ? xfs_repair -L /dev/mapper/cl_muban-root 最后重启 init 6