标签: xfs

XFS 可靠吗?如果断电,xfs 在数据损坏/安全方面是否比 ext3 风险更大?

我遇到了一些电气问题,主要是几个月突然断电,尽管 ups 主要解决了这个问题。

但我仍然担心文件系统损坏和数据丢失。

当计算机关机、崩溃或其他文件系统问题时,xfs 是否比 ext3 更糟糕或更不可靠?

有一个 ups 和一个好的备份策略(我有一个 1.5 tb 的磁盘,我想用来备份所有关键数据)就足够了,我不应该担心吗?

我一直在读到当电源关闭时 xfs 将数据归零(尽管我认为这已经解决了),并且诸如 XFS 之类的东西对于防止数据损坏是不安全的。

启用写入屏障并正确调整 xfs,并具有 ups 和备份,xfs 可能与 ext3 一样可靠,或者至少可以接受?

如果我将 xfs 用于 / 和 /home 以获得更高的性能(主要是大文件),与使用 xfs 相比,我将承担更多的数据风险吗?

linux xfs filesystems data-integrity

7
推荐指数
1
解决办法
6649
查看次数

挂载块大小小于 4k 的 XFS 分区

我有一个块大小为 64k 的 XFS 分区。但是当块大小为 4k 的默认值时,我只能在 Ubuntu 10.10 中安装它。如何挂载块大小较大的分区?

这有效:

sudo mkfs.xfs /dev/sdb1 -b size=4k -d agcount=32 -l size=128m -f
sudo mount /dev/sdb1 /mnt/media
Run Code Online (Sandbox Code Playgroud)

这不起作用:

sudo mkfs.xfs /dev/sdb1 -b size=64k -d agcount=32 -l size=128m -f
sudo mount /dev/sdb1 /mnt/media
mount: Function not implemented
Run Code Online (Sandbox Code Playgroud)

ubuntu partition xfs filesystems mount

7
推荐指数
1
解决办法
8307
查看次数

大 RAID 条带大小会浪费小文件的空间吗?

我计划在 XFS 文件系统上使用 RAID 0+1(或 RAID 10、RAID 5)的 Maildir 存储,并且 XFS 将使用 RAID 将使用的条带单元和宽度创建。

我还没有确定 RAID 条带大小,但我的 RAID 系统中的默认值是 128KB。如果我为 Maildir 存储使用 128KB 条带大小,是否会为小于条带大小的文件浪费空间?

我认为 Maildir 中文件的平均大小是 10KB,那么对于这种环境,条带大小最好是多少?

raid xfs

7
推荐指数
2
解决办法
3723
查看次数

XFS:设备上没有剩余空间,(但我有 850GB 可用空间!)

我在 Amazon EC2 上结合使用 mdadm、lvm2 和 XFS。

到目前为止,我已经成功运行了由多个 EBS 卷构建的 RAID 5 卷。附加 EBS 卷并与 mdadm 一起使用以创建 RAID 5。然后,我使用 LVM 将生成的 RAID 呈现为单个物理卷和单个逻辑卷。

过去,我可以通过添加新的 EBS 卷、附加它,然后运行以下过程来扩展文件系统。


mdadm --add /dev/md0 /dev/xvdi

# grow the raid... (could take a while for a large disk!)
mdadm --grow /dev/md0 --raid-devices=4

# grow the LVM physical volume
pvresize /dev/md0

# grow the LVM logical volume ... fairly certain
# -l100%PVS will make the extents use as much space
# as possible on physical disks (and …
Run Code Online (Sandbox Code Playgroud)

linux xfs lvm amazon-ebs amazon-web-services

7
推荐指数
1
解决办法
4302
查看次数

XFS 添加配额 - 在第一次挂载/启动时跳过配额检查

我们在集群上运行了一个 14TB XFS 文件服务器,并希望添加配额支持。这是在 CentOS 6.3 (Final) 下运行 3.9.2-1.el6.elrepo.x86_64 内核。

问题是当我们卸载 XFS RAID 并重新挂载它以添加配额支持时,挂载命令挂起。服务器响应并且无法访问XFS 挂载点。恢复我们在 /etc/fstab 中的更改以删除配额选项不会挂载挂载。

我怀疑在重新安装时,XFS 会在 14TB RAID 上运行配额检查。我的问题是:如何禁用初始配额检查,以便它可以正确安装并在后台运行配额检查?

/etc/fstab 入口:

/dev/sdb      /w1      xfs     defaults,noatime,usrquota,grpquota 1 2
Run Code Online (Sandbox Code Playgroud)

/var/log/messages 输出:

Jun  6 11:37:43 nas-2-1 kernel: XFS (sdb): Mounting Filesystem
Jun  6 11:37:43 nas-2-1 kernel: XFS (sdb): Ending clean mount
Jun  6 11:37:43 nas-2-1 kernel: XFS (sdb): Quotacheck needed: Please wait.
Run Code Online (Sandbox Code Playgroud)

我不介意挂载点处于活动状态时 CPU 使用率高或性能低,但让它不可用不是我们想要坚持的选项。我怀疑对 14TB 运行配额检查大约需要一个完整的工作日。

linux xfs centos disk-space-utilization hpc

7
推荐指数
1
解决办法
4453
查看次数

Rsync 大小因源而异

我正在使用带有选项的 rsync

-r for recursive
-l copy symlinks as symlinks
-t preserve modification time
-D preserve devices and specials
-v verbose
--prune-empty-dirs
Run Code Online (Sandbox Code Playgroud)

源文件系统是 ext4,目标文件系统是 XFS。我复制了几百个文件夹,范围在几百个演出到几 TB 之间,它们都在小于 1GB 的大小差异内。然而,这个特定的文件夹在源上是 264GB,一旦我 rsync 它跨它是 286GB。这是一个巨大的差异,我不知道它有什么问题。

如果源 ext4 FS 有一些损坏,它是否可能没有报告正确的磁盘使用情况?我正在使用'du -skh'。

我已经删除了整个内容并重新启动了 3 次,它产生了相同的结果。

xfs ext4 rsync

7
推荐指数
3
解决办法
1万
查看次数

Btrfs 可以将 SSD 用于元数据并将批量数据保留在 HDD 上吗?

Btrfs 是否可以仅将 SSD 用于元数据并将批量数据保留在成本较低的存储(例如 HDD)上?我参考了这个页面Using_Btrfs_with_Multiple_Devices并且找不到解决方案。

谢谢!

xfs filesystems ext4 ext3 btrfs

7
推荐指数
1
解决办法
715
查看次数

使用 lvreduce 命令后如何恢复 - 无法读取超级块错误 (CENTOS7 XFS)

我试图使用如何将磁盘空间从 centos-home 移动到 centos-root 中的步骤重新分配未使用的磁盘空间/dev/mapper/centos-home1.2Tb/dev/centos/root)。

跑完后...

$ umount /dev/mapper/centos-home
$ lvreduce -L 1200G /dev/mapper/centos-home
Run Code Online (Sandbox Code Playgroud)

当我尝试重新安装驱动器时,出现“无法读取超级块”错误。

$ mount /dev/mapper/centos-home
mount: /dev/mapper/centos-home: can't read superblock
Run Code Online (Sandbox Code Playgroud)

在开始之前,我仔细检查以确保在运行“lvreduce”命令之前有足够的可用空间(物理空间)(有 2Tb 可用空间) - 但假设我的错误不是按照中的建议运行命令来首先缩小文件系统LVM 逻辑卷分区在 lvreduce 之后损坏,但也了解到这不能在 XFS 系统上完成,但无法找到具体细节。

我尝试恢复使用,

$ xfs_repair /dev/mapper/centos-home 
Run Code Online (Sandbox Code Playgroud)

但结果说

Sorry, could not find valid secondary superblock; Exiting now.
Run Code Online (Sandbox Code Playgroud)

我也尝试过恢复LV的大小

$ lvextend -L 1200G /dev/mapper/centos-home
Run Code Online (Sandbox Code Playgroud)

结果,

New size (307200 extents) matches existing size (307200 extents)
Run Code Online (Sandbox Code Playgroud)

superblock read但在尝试驱动器时遇到了同样的错误$ mount

我不确定此时我给自己挖的坑有多深,所以这是我的问题。

从中恢复的最佳方法是什么?或者,如果我无法恢复和安装损坏的驱动器,我是否只需将其删除并创建一个同名的新驱动器?这是否可能,即我需要重新安装 CentOS …

xfs restore

7
推荐指数
1
解决办法
5万
查看次数

高目录文件比对 XFS 的影响

我们正在构建一个可能会生成非常大的 XFS 卷的产品,我正在尝试发现在给定架构的情况下我们可能遇到的扩展瓶颈。

当我们操作文件时,它们被放置在 XFS 卷上的目录中。由于我们处理的文件数量,文件数量肯定在数千万,并且在发布后不久可能会达到数亿。我们知道这一点是因为我们当前的产品是这样运行的,所以我们有理由期待我们的下一个产品也有类似的表现。

因此,正确的早期工程是有序的。

本周的文件基于以下粗略布局:

$ProjectID/$SubProjectID/[md5sum chunked into groups of 4]/file
Run Code Online (Sandbox Code Playgroud)

这给出了看起来有点像的目录:

0123456/001/0e15/a644/8972/19ac/b4b5/97f6/51d6/9a4d/file
Run Code Online (Sandbox Code Playgroud)

分块 md5sum 的原因是为了避免“一个目录中的大堆文件/目录”问题。由于 md5sum 分块,这意味着 1 个文件会导致创建 8 个目录。这对 inode 的影响非常明显,但我不清楚一旦我们达到规模,这些影响将对 XFS 产生什么影响。

有哪些影响?

顺便说一下,这是使用内核 2.6.32,目前是 CentOS 6.2(如果需要,可以更改)。

在测试中,我使用默认值创建了 xfs 卷,并且没有使用任何挂载选项。这是为了尽早解决问题。noatime很简单,因为我们不需要它。总体 XFS 调整是我需要解决的另一个问题,但现在我担心我们现在设计的元数据乘数效应。


我已经知道更好的解决方案是什么,我只是不知道我是否有理由推动改变。

由于 md5sums 的前几个数字非常独特,并且单个子项目很少超过 500 万个文件,在我看来,我们只需要前两个块。这将产生如下布局:

0123456/001/0e15/a644/897219acb4b597f651d69a4d/file
Run Code Online (Sandbox Code Playgroud)

一个完整的第一级和第二级在每个第一级目录中将有 2 16个一级目录和 2 16个二级目录,卷上总共有 2 32 个目录。

因此,假设的 500 万个文件子项目将有 2 16个一级目录,每个目录中大约有 76 (+/- 2) 个二级目录,每个二级目录中有一个或两个第三级目录。

这种布局的元数据效率更高。我只是不知道是否值得努力改变现在的情况。

linux xfs filesystems inode

6
推荐指数
1
解决办法
1082
查看次数

为什么当我将 XFS 文件系统放在上面时,我的 SSD 读取延迟基准会明显变差?

我正在对基于SuperMicro E300-8D的小型服务器盒进行基准测试。我已经安装了带有最新更新的最新 CentOS 7.5、64GB DDR4-2100 RAM 和三星 970 EVO 1TB NVMe SSD。操作系统安装在 USB 记忆棒上的内部 USB 端口中,因此除了在我的基准测试期间,SSD 完全没有使用。

ScyllaDB使用的基准测试方法的启发,我的测试目标是找到此 SSD 的最佳并发级别。为此,我使用了diskplorer,它在内部用于fio探索并发与 IOPS 和延迟之间的关系。它会生成如下所示的方便图表。在所有情况下,我都使用 4K 随机读取工作负载。

问题是我得到的结果毫无意义。这是第一个结果:

生的 /dev/nvme0n1

$ sudo ./diskplorer.py --device=/dev/nvme0n1 --filesize=256G 
Run Code Online (Sandbox Code Playgroud)

赢了!

这是太棒了!三星自己的规格表声称读取 IOPS 为 500K,20 次并发读取时,我得到了近 600K。右边的轴是以纳秒为单位的读取延迟,红线是平均延迟,误差线是 5% 和 95% 的延迟。所以看起来这个 SSD 的理想并发级别是大约 20 次并发读取,产生极好的延迟 < 100us。

那只是原始SSD。我会将 XFS 放在上面,它针对异步 I/O 进行了优化,而且我确信它不会增加任何显着的开销......

使用新的 XFS 文件系统 /dev/nvme0n1

$ sudo mkfs.xfs /dev/nvme0n1
$ sudo mount /dev/nvme0n1 /mnt
$ sudo ./diskplorer.py --mountpoint=/mnt --filesize=256G 
Run Code Online (Sandbox Code Playgroud)

威士忌酒。 探戈。 狐步。

什么!?这是 …

performance xfs ssd

6
推荐指数
1
解决办法
663
查看次数