Redhat XFS文件系统

Redhat XFS文件系统,第1张

XFS是一种高度可扩展和高性能文件系统,它支持创建16 exabytes超大文件系统,8 exabytes的文件和10亿个目录结构。

1) 主要功能:XFS支持 元数据日志功能(metadata journaling) ,有助于更快地崩溃恢复。XFS文件系统在挂载并处于活动状态时也可以进行 碎片整理和扩展 。 另外,红帽企业版Linux 6支持 XFS的备份和恢复 功能。

2) xfs具有以下功能:基于范围的分配(Extent-based allocation)、条带感知分配策略(Stripe-aware allocation policies)、延迟分配(Delayed allocation)和空间预分配(Space pre-allocation)。延迟分配和其他性能优化对XFS的影响与对ext4的影响相同。 除非随后调用fsync(),否则不能保证程序对XFS文件系统的写入。

使用mkfs.xfs /dev/device命令来创建XFS文件系统。在一个包含已有文件系统的块设备上,执行mkfs.xfs -f会强制重写文件系统。

一旦xfs文件系统被创建,文件的大小不会减小。还可以用xfs_growfs命令来增大空间。

对于条带块设备(例如RAID5阵列),在创建文件系统时可以指定条带几何形状。 使用适当的条带几何形状可以大大提高XFS文件系统的性能。

在LVM或MD卷上创建文件系统时,mkfs.xfs选择最佳geometry几何形状。 在某些geometry信息导出到 *** 作系统的硬件RAID上,也可能是这样。

指定条纹geometry几何体,子参数如下:

su =值:指定条带单位或RAID块大小。 该值必须以字节为单位指定,后缀为k,m或g。

sw =值:指定RAID设备中的数据磁盘数或条带中的条带单元数。

以下示例在包含4个条带单元的RAID设备上指定64k的块大小:

#mkfs.xfs -d su=64k,sw=4  /dev/device

有关创建XFS文件系统的更多信息,请参考man mkfs.xfs。

一个XFS系统可以不带额外的参数进行挂载:# mount /dev/device /mount/point

XFS默认分配inode以反映其在磁盘上的位置。 但是,由于某些32位用户空间应用程序与大于65536*65536(2的32次方)的inode号不兼容,因此XFS会将所有inode分配到磁盘位置中,从而导致32位inode号。 这会导致大于2TB的文件系统性能下降,因为inode偏向块设备的开头,而数据偏向末尾。

为了解决此问题,可以带上inode64挂载参数。这个参数表示XFS在整个文件系统中分配inodes和数据,这将改善性能 # mount -o inode64 /dev/device /mount/point

默认情况下,即使启用了写缓存的设备断电,XFS也会使用写屏障来确保文件系统的完整性(By default, XFS uses write barriers  to ensure file system integrity even when power is lost to a device with write caches enabled)。 对于没有写缓存或具有电池供电的写缓存的设备,请使用nobarrier选项禁用屏障:# mount -o nobarrier /dev/device /mount/point。 掉电丢失文件的解决方案又多一个:写保障。

写保障write barrier是一种内核机制,用于保证持久化卷上文件系统的metadata是正确的和有序的,即使易失性的存储设备断电。 文件系统开启写保障fsync(),保证数据通过。

启用写屏障write barriers会导致某些应用程序的性能大幅下降。 具体来说,大量使用fsync()或创建和删除许多小文件的应用程序运行速度可能会慢得多。

XFS配额子系统管理着磁盘空间(块)和文件(inode)使用的限制。 XFS配额从用户,组,目录或项目级别上进行控制或报告其使用情况。请注意,虽然启用了用户,组和目录或项目级别的配额,但组配额和项目配额是互斥的。

在按目录或按项目进行管理时,XFS管理着与某个项目关联的目录层次结构的磁盘使用情况。这样,XFS可以识别项目之间的跨组织“组”边界。这提供了比管理用户或组配额时更有效的控制级别。

XFS配额在挂载mount时启用,并带有的挂载参数。挂载参数可以指定为noenforce,xfs使用情况将不受任何限制。挂载时有效的配额:uquota/uqnoenforce-用户配额、gquota/gqnoenforce-组配额、pquota/pqnoenforce-项目配额

启用配额后,xfs_quota工具可以设置配额大小并报告磁盘使用情况。默认情况下,xfs_quota在基本模式下交互式运行的。基本模式子命令仅报告使用情况,并且对所有用户可用。基本模式的xfs_quota子命令包括:quota username/userID:显示给定用户名或数字用户标识的用法和限制。df:显示块和索引节点的可用和已用计数。

相反,xfs_quota也具有专家模式。此模式的子命令允许配置限制,并且仅对具有较高特权的用户可用。要交互使用专家模式子命令,请运行xfs_quota -x。专家模式子命令包括:report /path:报告特定文件系统的配额信息。limit:修改配额限制。

挂载的XFS文件系统使用xfs_growfs命令进行扩大# xfs_growfs /mount/point -D size

D size 选项将文件系统增加带指定大小,不带-D size选项则xfs_growfs将文件系统扩大到设备支持的最大值。

在使用-D参数扩大文件系统前要保证底层块设备后期有一个合理的大小。

注意:挂载点一旦扩大空间后无法缩回。

使用xfs_repair修复XFS文件系统,命令格式为# xfs_repair /dev/device

xfs_repair具有高度可伸缩性,旨在有效地修复拥有大量inode节点的大型文件系统。 与其他Linux文件系统不同,即使当XFS文件系统未完全卸载umount时,xfs_repair也不在引导时运行(does not run at boot time)。 即使卸载不干净,则xfs_repair只是在挂载时replays log来进行修复,以确保文件系统一致。

xfs_repair不能修复带有脏日志(dirty log)的xfs文件系统。挂载mount和卸载unmount xfs文件系统会清理日志。如果日志已损坏并且无法重播,请使用-L选项强制清除日志,即xfs_repair -L /dev/device。请注意这可能影响到进一步的损坏或数据丢失。

xfs_freeze对文件系统的写入活动进行暂停或恢复。暂停写入活动允许基于硬件设备快照用于捕获文件系统一致性状态。

xfs_freeze由只运行在x86_64的xfsprogs包提供。

暂停suspend (冻结freeze) xfs文件系统使用命令# xfs_freeze -f /mount/point

解冻xfs文件系统使用命令# xfs_freeze -u /mount/point

当做一个LVM快照时,没有必要先使用xfs_freeze来暂停文件系统。LVM管理工具会在取快照前自动暂停XFS文件系统。

xfs_freeze可以用于冻结或解冻一个ext3、ext4、GFS2、XFS和BTRFS文件系统,它们的语法都是一样的。

xfsdump和xfsrestore分别支持XFS文件系统备份和恢复。

为了支持增量备份(incremental backups ),xfsdump使用转储级别来确定特定转储相对的基本转储(xfsdump uses dump levels to determine a base dump to which a specific dump is relative)。

-l参数指定转储级别0-9。在文件系统上执行0级转储进行完整备份,命令为 # xfsdump -l 0 -f /dev/device /path/filesystem

-f参数指定备份的目标。

相反,一个增量备份仅将上次0级转储后更改的文件进行备份。 1级转储是完整转储后的第一个增量转储;下一个增量转储将是2级,依此类推,直到9级的最大值。执行1级转储到/dev/st0:# xfsdump -l 1 -f  /dev/st0  /path/filesystem

xfsrestore从xfsdump产生的转储中还原文件系统。 xfsrestore具有两种模式:默认简单模式和累积模式。特定的转储由会话ID或会话标签标识,因此还原转储需要其相应的会话ID或标签。要显示所有转储(完整和增量)的会话ID和标签:#xfsrestore -I

xfsrestore简单模式(Simple Mode)

简单模式允许用户从0级转储还原整个文件系统。确定了0级转储的会话ID后执行恢复:# xfsrestore -f /dev/st0 -S session-ID /path/to/destination

-f参数指定转储的位置,而-S或-L参数指定待还原的特定转储,-S参数用于指定会话ID,而-L参数用于指定会话标签。-I选项显示每次转储的会话标签和ID。

xfsrestore累积模式(Cumulative Mode)

xfsrestore累积模式允许从特定的增量备份(从1级到9级)还原文件系统,添加-r参数# xfsrestore -f  /dev/st0  -S session-ID  -r  /path/to/destination

互动 *** 作Interactive

xfsrestore允许从转储中提取,添加或删除特定文件。使用-i参数,xfsrestore  -f  /dev/st0 -i

交互式对话将在xfsrestore完成读取指定设备之后开始。在对话框中的可用命令包括cd, ls, add, delete, and extract;使用help查看有关命令的完整列表。

RedHat Enterprise Linux6提供其他xfs功能

xfs_fsr :对已安装的XFS文件系统进行碎片整理。不带参数调用时,xfs_fsr对所有挂载的XFS文件系统的所有常规文件进行碎片整理。该程序允许用户挂起suspend指定时间的碎片整理,并从以后停止的地方resume恢复 *** 作。此外,xfs_fsr仅允许对一个文件进行碎片整理,命令是xfs_fsr /path/to/file。红帽建议定期对整个文件系统进行碎片整理(Red Hat advises against periodically  defragmenting an entire file system, as this is normally not warranted)。

xfs_bmap :打印XFS文件系统中文件使用的磁盘块映射。该地图列出了指定文件使用的每个范围以及文件中没有相应块的区域。

xfs_info :打印XFS文件系统信息。

xfs_admin :修改xfs文件系统中未挂载设备的参数。

xfs_copy :将整个XFS文件系统的内容并行复制到一个或多个设备中。

下面程序是调试和分析XFS文件系统:

xfs_metadump :只能拷贝未挂载,只读和冻结或挂起的(unmounted, read-only,  frozen/suspended)XFS文件系统的metadata到1个文件。否则挂载状态下拷贝会造成生成的转储可能已损坏或不一致。

xfs_mdrestore :将xfs_metadump生成的映像还原到文件系统映像。

Restores an XFS metadump image ( generated using xfs_metadump) to a file  system image.

xfs_db :Debugs an XFS file system。

红帽Linux(RHEL)是Red Hat专为企业设计的基于Linux的 *** 作系统。RHEL可以在桌面,服务器,虚拟机管理程序或云中运行。Red Hat是世界上使用最广泛的Linux发行版之一。

红帽 Linux(RHEL)是 Red Hat 专为企业设计的基于 Linux 的 *** 作系统。RHEL 可以在桌面,服务器,虚拟机管理程序或云中运行。Red Hat 是世界上使用最广泛的 Linux 发行版之一。

RedHat 是用 LINUX 核心构架的一个 *** 作系统。RedHat Linux 是目前世界上使用最多的 Linux *** 作系统。因为它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价。

扩展资料:

Red Hat Linux 是由 Red Hat 公司编译的开源 Linux 发行版。它从 1995 年到 2004 年一直很活跃,在此期间发布了几个版本的软件。Red Hat Linux 在 2003 年被 Red Hat Enterprise Linux 替换为企业环境,Red Hat Linux 于 2004 年停产。

各种版本的 Red Hat Linux 已经发布,没悔第一个版本枯洞正于 1995 年 5 月 13 日发布.Red Hat Linux 的创建旨在使其易于使用和安装,与其他 Linux 发行版相比。它包括一个图形安装程序,后来被其他 Linux 发行版使用。后来的版本包括 UTF-8 编码,使其更适用于更多种语言。但是,由于版权和专利问题,Red Hat Linux 缺乏许多功能,例如支持颤孙 NTFS 文件系统和 MP3,但这些功能可以在以后安装。

现在Redhat Linux默认的文件系统格式是ext4。可以通过如下多种方法查询文件系统类型

1. mount

:~$ mount

/dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /sys type sysfs (rw,noexec,nosuid,nodev)

none on /sys/fs/fuse/connections type fusectl (rw)

none on /渣亮sys/kernel/debug type debugfs (rw)

none on /sys/kernel/security type securityfs (rw)

none on /dev type devtmpfs (rw,mode=0755)

none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)

none on /dev/老梁漏shm type tmpfs (rw,nosuid,nodev)

none on /var/run type tmpfs (rw,nosuid,mode=0755)

none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)

none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)

none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)

none on /proc/fs/vmblock/mountPoint type vmblock (rw)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

gvfs-fuse-daemon on /home/kysnail/.gvfs type fuse.gvfs-fuse-daemon

(rw,nosuid,nodev,user=kysnail)

:~$

2. df

:~$ df -lhT

文件系统 类型容量 已用 可用 已用% 挂载点

/dev/sda1 ext4 19G 11G 7.8G 57% /

none devtmpfs498M 248K 497M 1% /dev

none tmpfs502M 252K 501M 1% /dev/侍烂shm

none tmpfs502M 96K 502M 1% /var/run

none tmpfs502M 0 502M 0% /var/lock

none tmpfs502M 0 502M 0% /lib/init/rw

none debugfs 19G 11G 7.8G 57% /var/lib/ureadahead/debugfs

:~$

3. fdisk

:~$ sudo fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): c

DOS Compatibility flag is not set

Command (m for help): u

Changing display/entry units to sectors

Command (m for help): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00077544

Device Boot Start End Blocks Id System

/dev/sda1 *20484010598320051968 83 Linux

/dev/sda24010803041940991 9164815 Extended

/dev/sda54010803241940991 916480 82 Linux swap / Solaris

Command (m for help): q

4. file

:~$ sudo file -s /dev/sda

/dev/sda: x86 boot sectorpartition 1: ID=0x83, active, starthead 32, startsector 2048,

40103936 sectorspartition 2: ID=0x5, starthead 254, startsector 40108030, 1832962 sectors,

code offset 0x63

kysnail@ubunkysnail:~$ sudo file -s /dev/sda1

/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=4942da40-8a49-4bfd-9dc2-45c906d48413 (needs

journal recovery) (extents) (large files) (huge files)

:~$

5. parted

:~$ sudo parted

GNU Parted 2.2

使用 /dev/sda

欢迎使用 GNU Parted! 输入 'help'可获得命令列表.

(parted) p

Model: VMware, VMware Virtual S (scsi)

磁盘 /dev/sda: 21.5GB

Sector size (logical/physical): 512B/512B

分区表:msdos

数字 开始: End 大小类型 文件系统标志

11049kB 20.5GB 20.5GB primary ext4启动

220.5GB 21.5GB 938MB extended

520.5GB 21.5GB 938MB logical linux-swap(v1)

(parted)

6. 查看 fstab

# /etc/fstab: static file system information.

#

# Use 'blkid -o value -s UUID' to print the universally unique identifier

# for a devicethis may be used with UUID= as a more robust way to name

# devices that works even if disks are added and removed. See fstab(5).

#

# <file system><mount point> <type> <options> <dump> <pass>

proc/proc procnodev,noexec,nosuid 0 0

# / was on /dev/sda1 during installation

UUID=4942da40-8a49-4bfd-9dc2-45c906d48413 / ext4errors=remount-ro,user_xattr

0 1

# swap was on /dev/sda5 during installation

UUID=935fb95d-771f-448e-9d23-4820106e1783 noneswapsw 0 0

/dev/fd0/media/floppy0 autorw,user,noauto,exec,utf8 0 0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12248278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存