Linux 磁盘管理命令:使用xfs 管理命令

文章目录

  • Linux磁盘管理命令
    • 使用xfs 管理命令
      • 1.命令说明
      • 2.建立 XFS 文件系统
      • 4.调整 XFS 文件系统各项参数
      • 5.在线调整 XFS 文件系统的大小
      • 6.暂停和恢复 XFS 文件系统
      • 7.尝试修复受损的 XFS 文件系统
      • 8.备份和恢复
      • 9.碎片管理

Linux磁盘管理命令

使用xfs 管理命令

在 GNU/Linux 中,管理 XFS 的工作主要使用 xfsprogs 中的一系列工具。

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_metadump:将 XFS 文件系统的元数据(Metadata)复制到一个文件中。
  • xfs_mdrestore:从一个文件中将元数据(Metadata)恢复到 XFS 文件系统。
  • xfs_growfs:调整 XFS 文件系统的大小(只能扩展)。
  • xfs_freeze:暂停(-f)和恢复(-u)XFS 文件系统。

2.建立 XFS 文件系统

1)格式化

要格式化存储设备为 XFS 格式,可以用 root 身份执行如下命令:

#mkfs -t xfs /dev/sdb5 

如果 mkfs.xfs 发现存储设备仍有之前存放的文件资料,则会拒绝进行格式化。

# mkfs.xfs /dev/sdb5 
mkfs.xfs: /dev/sdb5 appears to contain an existing filesystem (xfs). 
mkfs.xfs: Use the -f option to force overwrite.

如果确定那些资料已没有用处,需要为 mkfs.xfs 加上选项 -f 强迫它进行格式化。

# mkfs.xfs -f /dev/sdb5 
meta-data =/dev/sdb5 isize=256 agcount=4,agsize=524119 blks 
= sectsz=512 attr=2 
data = bsize=4096 blocks=2096474,imaxpct=25 = sunit=0s width=0 blks 
naming =version 2 bsize=4096 
log =internal log bsize=4096 blocks=2560, version=2 
= sectsz=512 sunit=0 blks, lazy-count=0 
realtime =none extsz=4096 blocks=0, rtextents=0 

2)区块大小(Block size)

​ 区块(Block)是文件系统存储盘中内容最小的单位,其大小对文件系统的空间运用和效 用有很大的影响。较大的区块可以令文件系统大小上限和文件大小上限增加,也可以加快大文 件的读/写,但会浪费较多的空间,对平均文件大小较小的文件系统比较不利。区块大小只可以 在格式化文件系统时设定,以后除重新格式化外不能改变。XFS 文件系统的区块大小最少可以 为 512 字节,最大不可超过 64KB,默认为 4KB。然而区块大小又受到作业系统内核的 page 大 小限制。在 X86 计算机中,区块最大不可超过 4KB。其他平台如 IA64 可以使用较大区块, 不过过大区块会浪费空间,所以不建议使用大于 4KB 的区块。在选择区块大小时要注意以下 几点:

  • 如果文件系统小于 100MB 或有大量小型文件,建议使用 512 字节区块,其余情况建议 使用 4KB 区块。
  • 如果用作新闻组服务器(News Server)或有大量小型文件,可以使用 512 字节文件系统 区块和 4KB 目录区块(使用-nsize=大小选项)。

简单而言,XFS 文件系统在 X86 平台上可以使用 512B、1KB、2KB 和 4KB 区块。格式化 显要指定区块大小需要使用选项“-b size=区块大小”:

#mkfs.xfs –b size=512 /dev/sdb6

3)目录区块大小(Directory Block Size)

XFS 容许目录使用比文件系统区块大小更小的区块,方法是使用选项“-n size=区块大小”, 例如:

#mkfs.xfs –b size=512 –n size=4k /dev/sdb6 

​ 区块大小后加上“k”表示单位为 KB(1024 字节),加上“s”表示单位为磁区(sector, 默认为 512 字节,可能会因-s 选项而改变),加上“b”表示单位为文件系统区块(默认为 4KB, 可能会因-b 选项而改变)。

4)日志大小

​ 格式化 XFS 时,mkfs.xfs 会自动根据文件系统的大小划分日志(Journal)的大小。若文件 系统等于或超过 1TB,则划分日志只会为最大值 128MB。最小不会小于 512 文件系统区块。 可以使用选项“-l size=日志大小”指定日志的大小,例如:

#mkfs.xfs –l size=1024b /dev/sdb6 

日志大小可以加以下单位。

s:磁区(sector)大小(默认为 512 字节,可能会因-s 选项而改变)。
b:文件系统区块大小(默认为 4KB,可能会因-b 选项而改变)
k:KB(1 024 字节)。
m:MB(1 048 576 字节)。
g:GB(1 073 741 824 字节)。
t:TB(1 099 511 627 776 字节)。
p:PB(1024TB)。
e:EB(1 048 576TB)。

如果有多于一个硬盘,可以考虑使用外部日志(External Journal)把文件系统和日志存储 在不同的硬盘,可以增加效能。

5)文件系统标签(Filesystem Label)

文件系统标签(Filesystem Label)又叫作 Volume Name,是文件系统中一个小栏目,用作 简述该文件系统的用途或其存储数据。可以使用选项“-L 标签”在格式化时设定文件系统标签。

#mkfs.xfs -L Videos /dev/sdc1

XFS 的文件系统标签不能超过 12 个字符。以后可以使用命令 xfs_admin -L 改变。

6)一个例子 示例代码如下:

#mkfs.xfs –d agcount=4 –l size=32m /dev/sdb5

第一个选项是-l size=32m,它告诉 mkfs.xfs 配置用户的文件系统使之拥有一个高达 32MB 的元数据日志。这通过降低在文件系统处于繁忙使用期间元数据日志将“填满”的可能性而改 善了性能。第二个选项通过告诉 mkfs.xfs 将创建的分配组的数目最小化,让用户增强新文件系 统的性能。通常,mkfs.xfs 自动选择分配组的数目,但是,根据笔者的经验,它通常会选择一 个比大多数用于一般用途的 Linux 工作站和服务器过高一点的数目。分配组让 XFS 并行执行多 个元数据操作,这为高端服务器带来了便利,但是太多的分配组确实会增加一些开销。因此, 不要让 mkfs.xfs 为用户的文件系统选择分配组的数目,而是通过使用-d agcount=x 选项指定一 个数目。将 x 设置成一个小数目,如 4、6 或 8。需要使得目标块设备中每 4GB 容量至少有一 个分配组。同时进行这两项调整,使用下面的命令创建“优化的”XFS 文件系统:

# mount -t /dev/sda6 /mnt -o noatime,nodiratime,osyncisdsync

前面的两个选项(noatime,nodiratime)关闭 atime 更新。osyncisdsync 选项调整 XFS 的同 步/异步行为,以便它同 Ext3 更一致。

3.挂载 XFS 文件系统

#mount –t xfs/dev/sdb5/xfs 

其中,/xfs 是主分区/下的一个目录。

为了让系统启动后就自动加载,应该更改/etc/fstab,这样系统启动后就会自动加载 xfs 分 区而不必每次都手工加载。添加如下一行:

/dev/hdb5 /xfs defaults 1 1 

挂装时,将使用一些性能增强 mount 选项来最大限度地发掘出(或发挥出)新文件系统的 性能。

#mount –t /dev/sdb5 /xfs –o noatime,nodiratime,osyncisdsync

前面的两个 mount 选项关闭 atime 更新,几乎不需要 atime 更新,并且它除了降低文件系 统性能之外几乎不起任何作用。osyncisdsync 选项调整 XFS 的同步/异步行为,以便它同 Ext3 更一致。多亏了 mkfs.xfs 和 mount 调整,新的 XFS 文件系统比没有调整时的性能要好得多。

其他 mount -o 选项如下。

allocsize=:延时分配时,预分配 buffered 大小。
sunit=/swidth=:使用指定的条带单元与宽度(单位为 512Byte)。
swalloc:根据条带宽度的边界调整数据分配。
discard:块设备自动回收空间。
dmapi:使能 Data Management API 事件。
inode64:创建 inode 节点位置不受限制。
inode32:inode 节点号不超过 32 位(为了兼容)。
largeio:大块分配。
nolargeio:尽量小块分配。
noalign:数据分配时不用条带大小对齐。
noatime:读取文件时不更新访问时间。
norecovery:挂载时不运行日志恢复(只读挂载)。
logbufs=:内存中的日志缓存区数量。
logbsize=:内存中每个日志缓存区的大小。
logdev=/rtdev=:指定日志设备或实时设备。XFS 文件系统可以分为 3 部分:数据、日志、实时(可选)。

4.调整 XFS 文件系统各项参数

1)XFS 卷标管理

(1)查看当前的卷标。

#xfs_admin -l /dev/sdb 
label=""

(2)设置新的卷标。

#xfs_admin -L "VideoRecords" /dev/sdb 
writing all SBs 
new label="VideoRecords" 

2)UIID 管理

通用唯一标识符(UUID)是 128 比特的数字,用来唯一地标识因特网上的某些对象或者 实体。传统上,GNU/Linux 在/etc/fstab 上直接使用设备名称(/dev/hda1 或/dev/sda5 等)指定要 挂载的存储设备。然而设备名称有时会因为 BIOS 的设定而改变,引起混乱。所以现在部分Linux distribution 已改用 UUID(Universal Unique Identifier)来指定要挂载的存储设备。

(1)查看当前所有存储设备的 UUID 名称。

#blkid –s UUID 
/dev/sda1:UUID="34dd521d-fb74-41cf-afc6-e786344ecd7a" 
/dev/sda2:UUID="UskH3q-GHDB-ZLoo-kPRb-O1sq-wKSU-CwH0Lt" 
/dev/mapper/rhel-root:UUID="e7e811fd-3c45-4bcd-84cb-92c4aafccf16" 
/dev/sdb:UUID="36cf1092-65e2-4acd-85fc-284b1e7b1f33" 
/dev/mapper/rhel-swap:UUID="800748d6-f4ae-4bc7-90d9-e69478fd4af3" 

(2)查看指定存储设备的 UUID。

#xfs_admin –u /dev/sdb 
UUID=cd4f1cc4-15d8-45f7-afa4-2ae87d1db2ed

(3)生成一个新的 UUID。

#xfs_admin –U generate /dev/sdb 
writing all SBs 
new UUID=c1b9d5a2-f162-11cf-9ece-0020afc76f16 

-U 的参数如果为 generate,则表示直接产生一个新的 UUID;如果为 nil,则表示清除文件 系统的 UUID。

#xfs_admin –U nil /dev/sda1 

3)在 mount 命令中使用 UUID 挂载文件系统

使用 mount 命令挂载文件系统,可以使用选项“-U uuid”取代设备文件指定要挂载的设备。

mount –U 51f7e9a4-5154-4e29-a7a6-208417290b85 /mnt

也可以使用 UUID=uuid 取代-U 选项。

mount UUID="51f7e9a4-5154-4e29-a7a6-208417290b85" /mnt 

在文件/etc/fstab 中可以使用 UUID=uuid 取代设备文件指定要挂载的设备。

UUID="e61f4197-5f00-4f4f-917c-290922a85339" /xfs defaults 0 1 
UUID="51f7e9a4-5154-4e29-a7a6-208417290b85" /boot xfs defaults 0 2

5.在线调整 XFS 文件系统的大小

XFS 提供了 xfs_growfs 工具,可以在线调整 XFS 文件系统的大小。XFS 文件系统可以向 保存当前文件系统的设备上的未分配空间延伸。这个特性常与卷管理功能结合使用,因为后者 可以把多个设备合并进一个逻辑卷组,而使用硬盘分区保存 XFS 文件系统时,每个分区需要 分别扩容。

# xfs_growfs –D 1073741824 /myxfs1 
# xfs_growfs –d /myxfs1

6.暂停和恢复 XFS 文件系统

(1)暂停 XFS 文件系统。

#xfs_freeze –f /myxfs

(2)恢复 XFS 文件系统。

#xfs_freeze –u /myxfs

7.尝试修复受损的 XFS 文件系统

XFS 与 Ext3 相比的特点是并行 I/O,如果一个文件系统使用的硬盘比较多,而且总线允许 并行的话,XFS 有明显的性能优势。而在台式计算机上,这个区别很不明显。

另外,Ext3 删除文件的速度比 XFS 要快;由于大量采用 Cache,XFS 不用 fsck,但必须保 证电源供应,突然断电时 XFS 的损失比 Ext3 要严重。

# # xfs_repair –L /dev/hda13

8.备份和恢复

(1)备份文件系统。

#xfsdump-F –f /root/dump.xfs /mnt

(2)恢复文件系统。

#xfsrestore –f /root/dump.xfs /mnt

9.碎片管理

可以使用 xfs_db 命令调试或检测 XFS 文件系统(查看文件系统碎片等)。

(1)查看碎片情况。

#xfs_db –c frag –r /dev/sda1 
actual 378,idea l373,fragmentation factor 1.32% 

(2)整理碎片。

#xfs_fsr /dev/sda1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Spring Framework实战》3:概览

欢迎观看《Spring Framework实战》视频教程 Spring Framework 为基于现代 Java 的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。 Spring 的一个关键要素是应用程序级别的基础设施支持:Spring 专注于企业应用程序的 “管道”,以便…

借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换

在当今数字化浪潮下,地理信息系统(GIS)技术日新月异,广泛渗透到城市规划、地质勘探、文化遗产保护等诸多领域。而 GISBox 作为一款功能强大且易用的 GIS 工具箱,以轻量级、免费使用、操作便捷等诸多优势,为…

高等数学学习笔记 ☞ 一元函数微分的基础知识

1. 微分的定义 (1)定义:设函数在点的某领域内有定义,取附近的点,对应的函数值分别为和, 令,若可以表示成,则称函数在点是可微的。 【 若函数在点是可微的,则可以表达为】…

linux之自动挂载

如果想要实现自动挂载,应该挂在客户端!!!!! 客户端: [rootlocalhost ~]# yum install nfs-utils -y (下载软件) [rootlocalhost ~]# systemctl start nfs-utils.servic…

用户界面软件01

Jens Coldewey 著,Tom.X 译 本文中的模式语言逐步深入地探讨用户界面架构的设计,它基于人机工程学,足以形成一套完整的体系。如果你对这方面有兴趣,请参考[Tog92],[Coo95]和[Col95]。 本文不讨论用户界面的布局&…

2025.1.8(c++对c语言的扩充——堆区空间,引用,函数)

笔记 上一笔记接续(练习2的答案) 练习:要求在堆区连续申请5个int的大小空间用于存储5名学生的成绩,分别完成空间的申请、成绩的录入、升序排序、成绩输出函数以及空间释放函数,并在主程序中完成测试 要求使用new和d…

(长期更新)《零基础入门 ArcGIS(ArcScene) 》实验七----城市三维建模与分析(超超超详细!!!)

城市三维建模与分析 三维城市模型已经成为一种非常普遍的地理空间数据资源,成为城市的必需品,对城市能化管理至关重要。语义信息丰富的三维城市模型可以有效实现不同领域数据与IS相信息的高层次集成及互操作,从而在城市规划、环境模拟、应急响应和辅助决策等众多领域公挥作用、…

Harmony开发【笔记1】报错解决(字段名写错了。。)

在利用axios从网络接收请求时,发现返回obj的code为“-1”,非常不解,利用console.log测试,更加不解,可知抛出错误是 “ E 其他错误: userName required”。但是我在测试时,它并没有体现为空,…

(2023|NIPS,LLaVA-Med,生物医学 VLM,GPT-4 生成自指导指令跟随数据集,数据对齐,指令调优)

LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 目录 LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 0. 摘要 1. 简介 2. 相关工作 3. 生物医学视觉指令数据 4. 将多模态对话模型适配…

(概率论)无偏估计

参考文章:(15 封私信 / 51 条消息) 什么是无偏估计? - 知乎 (zhihu.com) 首先,第一个回答中,马同学图解数学讲解得很形象, 我的概括是:“注意,有一个总体的均值u。然后,如果抽样n个&…

国产游戏崛起,燕云十六移动端1.9上线,ToDesk云电脑先开玩

游戏爱好者的利好消息出新了!网易大型武侠仙游《燕云十六声》正式官宣,移动端要在1月9日正式上线了!你期待手游版的燕云吗?不妨评论区留言说说你的看法。小编分别花了几个小时在台式机电脑和手机上都试了下,欣赏画面还…

VS2022引入sqlite数据库交互

法一:用官网编译好的动态库(推荐) 下载所需文件 sqlite官网地址:https://www.sqlite.org/howtocompile.html 下载以下的2个压缩包 第一个压缩包 sqlite-amalgamation-xxxx.zip,xxxx是版本号,保持一致即可,这里面有sqite3.h 第…

Java后端常用的4种请求方式(通俗易懂)

文章目录 前言通用接口类(ControllerDemo)通用实体类(UserEntity)通用响应类(HttpClientResult)成功截图(先启动项目,然后右键执行main方法) HttpClientHttpClient 的主要类代码案例导入依赖工具类(HttpClientUtil)测试类 HttpURLConnection简介调用步骤代码案例导入依赖工具类…

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…

Spring Boot教程之五十二:CrudRepository 和 JpaRepository 之间的区别

Spring Boot – CrudRepository 和 JpaRepository 之间的区别 Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员…

【SQL】Delete使用

目录 语法 需求 示例 分析 代码 语法 DELETE删除表中所需内容 删除表中满足特点条件的行:DELETE FROM 表名 WHERE 条件; 删除表中所有行:DELETE FROM 表名; WHERE子句 WHERE子句用于指定从表中选取记录的条件。允许筛选数据,只返回满足…

【express-generator】05-路由中间件和错误处理(第一阶段收尾)

一、前言 上篇文章我们介绍了express-generator的请求体解析,重点讲了常用的请求体数据格式(JSON/URL 编码的表单数据)以及一个FILE文件上传,同时搭配代码示范进行辅助理解。 二、本篇重点 我们继续第一阶段的知识,…

Vue3(elementPlus) el-table替换/隐藏行箭头,点击整行展开

element文档链接: https://element-plus.org/zh-CN/component/form.html 一、el-table表格行展开关闭箭头替换成加减号 注:Vue3在样式中修改箭头图标无效,可能我设置不对,欢迎各位来交流指导 转变思路:隐藏箭头&…

GitLab创建用户,设置访问SSH Key

继上一篇 Linux Red Hat 7.9 Server安装GitLab-CSDN博客 安装好gitlab,启用管理员root账号后,开始创建用户账户 1、创建用户账户 进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…

数据库环境安装(day1)

网址:MySQL 下载(环境准备): (2-5点击此处,然后选择合适的版本) 1.linux在线YUM仓库 下载/安装: wget https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm rpm -i https://r…