标签: zfsonlinux

为什么`zfs list -t snapshot` 比`ls .zfs/snapshot` 慢几个数量级?

对于我尝试过的所有 ZFS-on-Linux 版本,zfs list用于列出文件系统或卷 ( zfs list -r -t snapshot -H -o name pool/filesystem) 的所有快照总是比 运行时间多几个数量级ls .zfs/snapshot,这是直接的:

$ time ls -1 /srv/vz/subvol-300-disk-1/.zfs/snapshot
[list of 1797 snapshots here]
real    0m0.023s
user    0m0.008s
sys     0m0.014s

# time zfs list -r -t snapshot -H -o name vz/subvol-300-disk-1
[same list of 1797 snapshots]
real    1m23.092s
user    0m0.110s
sys     0m0.758s
Run Code Online (Sandbox Code Playgroud)

此错误是否特定于 ZFS-on-Linux?

任何拥有 Solaris 或 FreeBSD ZFS 机器的人都可以执行类似的测试(在旋转硬盘上有数百个快照的文件系统上)吗?

是否有一种解决方法可以快速获取一个的快照列表,该本质上没有.zfs目录?

我已经在内核 2.6.32-43-pve x86_64 (Proxmox) 上使用 …

zfs zfsonlinux

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

zfs - 热备、替换、分离:资源正忙

我对zfsonlinux陌生。我刚刚成功建立了一个全新的服务器,在 ZFS 上有一个 Debian ROOT。一切正常,但我遇到了热备用和更换磁盘的问题。

这是我的游泳池:

NAME                            STATE     READ WRITE CKSUM
mpool                           ONLINE       0     0     0
  mirror-0                      ONLINE       0     0     0
    ata-ST1XXXXXXXXXXA-part1    ONLINE       0     0     0
    ata-ST1XXXXXXXXXXB-part1    ONLINE       0     0     0
  mirror-1                      ONLINE       0     0     0
    ata-ST1XXXXXXXXXXC-part1    ONLINE       0     0     0
    ata-ST1XXXXXXXXXXD-part1    ONLINE       0     0     0
spares  
  ata-ST1XXXXXXXXXXE-part1      AVAIL   
  ata-ST1XXXXXXXXXXF-part1      AVAIL  
Run Code Online (Sandbox Code Playgroud)

现在,我可以开始真正的乐趣了。拉盘!我现在正在拔下磁盘 C。我有一个工作池,但降级(如预期):

NAME                            STATE     READ WRITE CKSUM
mpool                           ONLINE       0     0     0
  mirror-0                      ONLINE       0     0     0
    ata-ST1XXXXXXXXXXA-part1    ONLINE       0     0     0
    ata-ST1XXXXXXXXXXB-part1    ONLINE       0 …
Run Code Online (Sandbox Code Playgroud)

zfs debian zfsonlinux

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

由于自由空间碎片导致的 ZFS 重写入放大

我已经为 PostgreSQL 数据库设置了 ZFS RAID0。存储和实例位于 AWS EC2 和 EBS 卷中。

NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
pgpool   479G   289G   190G         -    70%    60%  1.00x  ONLINE  -
  xvdf  59.9G  36.6G  23.3G         -    71%    61%
  xvdg  59.9G  34.7G  25.2G         -    70%    57%
  xvdh  59.9G  35.7G  24.2G         -    71%    59%
  xvdi  59.9G  35.7G  24.2G         -    71%    59%
  xvdj  59.9G  36.3G  23.6G         -    71%    60%
  xvdk  59.9G  36.5G  23.4G         -    71%    60%
  xvdl  59.9G  36.6G  23.3G         -    71%    61%
  xvdm …
Run Code Online (Sandbox Code Playgroud)

postgresql raid zfs zfsonlinux

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

linux 上的 ZFS 从 0.6.2 升级到 0.6.3 使我的 zpool 无法读取帮助将 CentOS 转换为 Ubuntu 命令

ubuntu 13.10使用sudo apt-get upgrade并重新启动升级我的服务器后,我的 zpool 不会显示。

messier@ANDERSON:~$ sudo zpool status
no pools available
messier@ANDERSON:~$ sudo zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
messier@ANDERSON:~$
Run Code Online (Sandbox Code Playgroud)

我查看了 linux github 上的 zfs,我找到了 CentOS 的修复程序,即删除旧的内核模块,然后重新安装软件以获取新的内核模块。

$ find /lib/modules/$(uname -r)/extra -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ find /lib/modules/$(uname -r)/weak-updates -name "splat.ko" -or -name "zcommon.ko" -or …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu zfs zfsonlinux

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

Linux 上 ZFS 的配额使用如何工作?

我有一个用户根据 ZFS 达到他们的配额。但是,我无法找到他们如何使用所有空间。这个文件系统没有后代文件系统,根据手册页the userquota space calculation does not include space that is used by descendent datasets, such as snapshots and clones.为什么 zfs 和 find&du 有如此大的分歧?

# zfs get -H userquota@user1 zpool/zfs1 && zfs get -H userused@user1 zppol/zfs1
zpool/zfs1  userquota@user1  20G              local
zpool/zfs1  userused@user1  20.0G           local

# find $(zfs get -H -o value mountpoint zpool/zfs1) -user user1 -print0 | du -hc --files0-from=- | tail -n 1
5.9G    total
Run Code Online (Sandbox Code Playgroud)

此外,我还有另一个用户似乎遇到了相反的问题。

# zfs get -H userquota@user2 zpool/zfs1 && zfs get -H …
Run Code Online (Sandbox Code Playgroud)

zfs zfsonlinux

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

ZFS 不断出现故障同一设备

我们的存储服务器有一些问题,就在我们有一个损坏的磁盘(WD 4TB RE SAS),尽管 raidcontroller(LSI MegaRAID 9271-8i)使磁盘保持在线(状态:ok)。只有媒体错误显示 1 个错误。我们决定保存并更换磁盘,在重新同步第二个和第三个磁盘时标记为(重新同步),尽管只有一个磁盘显示 1 个读取错误。今天 resilver 完成了(没有损坏,一切都好),我开始擦洗并遇到了这个:

zpool status
  pool: data
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: scrub in progress since Thu Jan 14 10:50:00 2016
    2.71T scanned out of 111T at 718M/s, 43h59m to go
    0 …
Run Code Online (Sandbox Code Playgroud)

zfs zfsonlinux

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

zfs 是否发送清理发送的数据?

据我所知,ZFS 作为文件系统在每次访问数据期间检查数据错误。

因此,我认为它实际上在发送数据之前执行了类似清理的操作,从而确保了发送数据的完整性。

我的问题是:真的吗?如果不是的话,我可以在 zfs 发送关于该特定数据集之前执行 zfs 清理获得什么额外的好处。

zfs zfsonlinux

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

`zfs send` 报告的大小是准确的还是估计的?

考虑以下命令和输出:

zfs send -Pvi \
    tank/vms/langara@zfsnap-2016-05-11_00.00.00--1w \
    tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w \
        | dd  > /dev/null
Run Code Online (Sandbox Code Playgroud)

运行 1:

incremental   zfsnap-2016-05-11_00.00.00--1w tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w    4903284160
size 4903284160
17:29:42   1244483472  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:29:43   2487508120  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:29:44   3741453864  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
9582310+895 records in
9582799+1 records out
4906393272 bytes (4.9 GB) copied, 3.94883 s, 1.2 GB/s
Run Code Online (Sandbox Code Playgroud)

运行 2:

incremental   zfsnap-2016-05-11_00.00.00--1w tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w    4903284160
size 4903284160
17:30:07   1209666712  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:08   2411042632  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:09   3632274072  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:10   4853372344  tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
9582450+654 records in
9582799+1 records out
4906393272 bytes (4.9 GB) copied, 4.05346 s, 1.2 GB/s …
Run Code Online (Sandbox Code Playgroud)

zfs zfsonlinux

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

在 Ubuntu 引导上的 zpool 导入之前等待

我已经使用 ZFS 在 Dell PowerEdge R720xd 上安装了 Ubuntu 18.04。ZFSmirror配置中有两个 1TB 引导驱动器。我按照Linux Wiki 上ZFS 中的说明进行操作。

(注意:我的系统使用的是 LSI LSI00244 (9201-16i) 主机总线适配器 (HBA) 而不是板载 RAID 卡,因为 ZFS 和这个 RAID 卡不兼容。)

启动 Ubuntu 时,系统枚举驱动器大约需要 10 秒钟(有 14 个驱动器 - 两个用于操作系统,12 个用于稍后将在其他 zpool 中设置的数据存储)。但是,引导过程会在枚举驱动器之前尝试导入引导池。

BusyBox 错误消息在屏幕上闪过,它基本上说:

池导入失败。

在此 BusyBox shell 中手动导入池,然后键入exit以继续引导过程。

如果我在该消息后等待几秒钟,我会看到列出了 14 个驱动器。

zpool import rpool在 BusyBox 提示符下输入,它可以工作(用 确认zpool list),然后exit继续启动过程。(这会导致我的下一个问题,内核崩溃,但这是一个单独的问题。)

我尝试添加rootdelay=15启动选项,但这似乎不起作用,因为它似乎想在 ZFS 池导入运行该延迟。

在尝试导入池之前,如何让引导过程等待设备出现?

ubuntu zfs boot zfsonlinux ubuntu-18.04

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

在我的智慧结束。什么可能导致我的服务器随机硬重置?(好像和ZFS有关)

我有一台我多年前建造的服务器,它运行起来像个冠军。但在过去的几个月里,它开始变得严重不稳定,没有明显的模式。我一直在调试它并更换零件无济于事。我已经更换了系统中我能想到的几乎所有东西,这可能是用于存储的保存驱动器的原因。

请注意,系统运行的是 CentOS 7.5。

症状是机器会自发地执行硬复位,就好像电源正在循环或突然断电一样。它可以每隔几天发生一次,有时一天发生两次。系统可以是空闲的,也可以是有负载的。没有模式。

除了基本的必需品,我已经删除了所有内容。请注意,我已替换:

主板、CPU、RAM 和 PSU。

如果任何 ram 棒有缺陷,我希望看到已更正/无法更正的 ECC 错误的日志,而我没有。如果是 CPU,我会期待一些更随机的东西,因为可能的内核恐慌有一些日志记录。我怀疑它可能是电源的故障并更换了它。问题仍然存在,所以我尝试更换主板。没变。

系统配置了两个处理器和 16 根相同的内存条,所以我试图卸下一个 CPU 和一半的内存,看看它是否崩溃,然后换另一套。症状没有变化。

我开始移除额外的组件,并达到了最低限度,症状没有变化。

  • 日志中从来没有任何迹象表明硬件故障;它们只是在重置点结束。
  • IPMI 日志中没有任何内容。
  • UPS 日志中没有任何内容(删除 UPS 也无济于事)。
  • 处理器不会过热。我记录了lmsensors,没有任何异常。
  • 使用 ipmitool 日志监控系统温度、CPU 和内存 Vcor​​e、风扇 RPM 和 PSU 电压。
  • 所有 SMART 测试都报告 PASSED。
  • 我通过使用 mdadm 进行镜像并安装 grub,将用于操作系统的主磁盘(/root、boot、swap)交换到另一个 SSD。
  • 两个 RAID 阵列(请参阅下面的规格)都是 ZFS 并且不报告任何故障。扫描位腐烂或损坏时没有问题。

我现在完全不知所措。除了系统中剩下的几个驱动器之外,我已经没有什么可以尝试替换案例本身的保存了。

什么可能导致我的服务器自行重置?我还能测试什么?故障真的来自其中一个驱动器吗?

目前系统规格如下:

基础组件:

贮存:

zfs server-crashes power-supply-unit zfsonlinux

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