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

news2025/1/10 11:45:51

文章目录

  • 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.coloradmin.cn/o/2274311.html

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

相关文章

免费网站源码下载指南:如何安全获取并降低开发成本

许多开发者或是需要建立网站的人,可以方便地获取免费网站源码。这样的下载能帮助他们降低开发费用,迅速构建起基本框架。但在此过程中,仍有许多需要注意的事项。 许多开发者或是需要建立网站的人,可以方便地获取免费网站源码。这…

colnames看似简单,却能优化数据处理流程

引言 在数据处理和分析中,变量名称是至关重要的,它们决定了数据的可读性和操作的简便性。在R语言中,colnames 函数以其简单的语法设计,提供了高效管理数据框列名的能力,尤其是在复杂的爬虫任务中显得尤为重要。本篇文…

计算机网络例题

IP地址分类: A类:网络号范围: 1~126 (0000 0001 ~ 0111 1110) B类:网络号范围:128.1 ~ 191.255 (可用范围) C类:网络号段范围:192.0.1 ~ 223.2…

腾讯云AI代码助手编程挑战赛 - 使用 JavaScript 构建一个简易日历

功能简介: 动态年份选择:用户可以通过下拉框选择从 2000 年到 2050 年的任意年份。全年日历生成:根据用户选择的年份,动态生成该年份的所有 12 个月份的日历。直观的 UI 设计:使用 CSS 美化日历外观,使日历…

hive迁移后修复分区慢,怎么办?

我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。 使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…

java-方法详解

目录​​​​​​​ 一、方法的定义 二、方法的调用 1.对于非静态方法: 2.对于静态方法: 3.类名.什么情况下可以省略 三、方法的参数传递 (1).实参和形参 形参 实参 (2).基本数据类型参数传递: (3).引用数据类型参数传递&#xff…

第二十八周机器学习笔记:PINN求正反解求PDE文献阅读——反问题、动手深度学习

第二十八周周报 一、文献阅读题目信息摘要Abstract网络架构实验——Data-driven discovery of partial differential equations(偏微分方程的数据驱动发现)1. Continuous time models(连续时间模型)例子:(Navier–Stok…

IT面试求职系列主题-Jenkins

想成功求职,必要的IT技能一样不能少,先说说Jenkins的必会知识吧。 1) 什么是Jenkins Jenkins 是一个用 Java 编写的开源持续集成工具。它跟踪版本控制系统,并在发生更改时启动和监视构建系统。 2)Maven、Ant和Jenkins有什么区别…

【我的 PWN 学习手札】IO_FILE 之 FSOP

FSOP:File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus,进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP (…

ChatGPT入门之文本情绪识别:先了解LSTM如何处理文字序列

文章目录 0. 首先聊聊什么是RNN1. 理解LSTM,从数据如何喂给 LSTM开始2. LSTM每个门是如何处理序列数据的?2.1 遗忘门(Forget Gate):该忘掉哪些信息?2.2 输入门(Input Gate)&#xff…

springboot和vue配置https请求

项目场景: 代码发布到线上使用https请求需要配置ssl证书,前后端都需要修改。 问题描述 如图,我们在调用接口时报如下错误,这就是未配置ssl但是用https请求产生的问题。 解决方案: 前端:在vite.config.js文…

软件工程期末整理(二)

快速原型开发模型是(适用于客户需求难以清楚定义、规模较小的系统)。(编写系统实施计划)不是系统设计阶段的主要活动 解释:系统实施计划”更侧重于后续的实施与部署阶段,属于项目管理层面的内容 协作性不属于构件的特性在类图中…

filebeat、kafka

elk的架构 es数据库:非关系型数据库,json格式 logstash:收集日志 kibana:图形化的工具 ↓ 以上三种结合起来即为日志收集系统 filebeat 作用:filebeat是一款轻量级的日志收集工具,不依赖java环境&…

vue3使用vue3-video-play播放m3u8视频

1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…

项目代码第8讲:Socket和OPC UA客户端通信;数据库的表格内容谁填的?(OPC Client和Web);在Program.cs中单独开启一个线程

一、Socket:用于和OPC UA客户端通信 1、Socket和OPC UA的定义 1>Socket:只是一个API,提供了一个使用 TCP(以及其他协议)的方式,用于在同一台计算机上的进程之间或不同计算机之间的进程通信 一个API Socket 是一种应用程序编程接口(API),它提供了一系列函数…

离线录制激光雷达数据进行建图

目前有一个2D激光雷达,自己控制小车运行一段时间,离线获取到激光雷达数据后运行如下代码进行离线建图。 roslaunch cartographer_ros demo_revo_lds.launch bag_filename:/home/firefly/AutoCar/data/rplidar_s2/2025-01-08-02-08-33.bag实际效果如下 d…

hisi mipi yuv422数据异常问题记录解决

问题解决,海思原厂提供支持后解决方式,适用于dv500和928系列: YUV422输入时,mask[1]使用0x00FFC000得配置。 问题现象就是mask[1]配置的0xFF0000时,YUV值收到后UV的会向下做一个4对齐的操作,导致色度UV数据…

《跟我学Spring Boot开发》系列文章索引❤(2025.01.09更新)

章节文章名备注第1节Spring Boot(1)基于Eclipse搭建Spring Boot开发环境环境搭建第2节Spring Boot(2)解决Maven下载依赖缓慢的问题给火车头提提速第3节Spring Boot(3)教你手工搭建Spring Boot项目纯手工玩法…

VS2022 安装和配置 vcpkg

vs2022使用vcpkg最全版本_vs2022 vcpkg-CSDN博客 Visual Studio 2022 安装和配置 vcpkg_vs2022 vcpkg-CSDN博客 GitHub - microsoft/vcpkg: C Library Manager for Windows, Linux, and MacOS vcpkg 文档 | Microsoft Learn 没有详细教程写出来,先大概看看&#x…

深度学习与计算机视觉 (博士)

文章目录 零、计算机视觉概述一、深度学习相关概念1.学习率η2.batchsize和epoch3.端到端(End-to-End)、序列到序列(Seq-to-Seq)4.消融实验5.学习方式6.监督学习的方式(1)有监督学习(2)强监督学习(3)弱监督学习(4)半监督学习(5)自监督学习(6)无监督学习(7)总结:不同…