标签: zfs

ZFS 中的 24 小时速成课程......一些最后的问题

由于各种情况,我给自己上了一个关于 ZFS 文件系统的速成课程。我需要一些帮助来适应未知。不管那些是什么。

数据:

  • 在 CentOS 6.2 上运行 www.zfsonlinux.org
  • 我有一个带有 12x2TB SATA 磁盘的阵列。
  • 我在其中创建了一个 raidz2 池和几个 zfs 文件系统。
  • 性能比我预期的要好。(你多久会这样说?)

一些问题:

  • 我应该安排什么类型的维护?我读过建议进行“zpool 擦洗”。你会在什么时间间隔运行这个?还有什么可做的吗?
  • 除了“zpool iostat”-snmp 之外,还有其他性能监控吗?
  • 我需要通过电子邮件或类似方式收到有关磁盘故障等的警报。我有哪些选择?

zfs

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

无法导入池,因为使用不兼容的版本进行格式化

我无法访问 Debian 上的 zfs 池,因为它说我的版本太旧:

root@Microknoppix:~# zpool import
  pool: WD_4TB
    id: 12726205736285302822
 state: UNAVAIL
status: The pool is formatted using an incompatible version.
action: The pool cannot be imported.  Access the pool on a system running newer
    software, or recreate the pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-A5
config:

    WD_4TB                                                       UNAVAIL  newer version
      disk/by-id/ata-WDC_WD40EZRX-00SPEB0_WD-WCC4E0184707-part1  ONLINE
Run Code Online (Sandbox Code Playgroud)

此外,提供的sun 链接已损坏。

我已经通过以下方式安装了最新的 zfs-fuse:

root@Microknoppix:~# apt-cache madison zfs-fuse
  zfs-fuse |   0.7.0-12 | http://ftp.de.debian.org/debian/ testing/main i386 Packages
  zfs-fuse |   0.7.0-12 | http://ftp.de.debian.org/debian/ unstable/main i386 Packages
  zfs-fuse |    0.7.0-8 …
Run Code Online (Sandbox Code Playgroud)

zfs debian apt knoppix

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

为什么 zfs list 不输出快照的实际大小?

因此,我在基于 zfs 的备份服务器上空间不足,并删除了一些旧备份,但文件系统上的空间随后并未释放。

第一个猜测?周围一定还残留着一些旧的快照。所以我跑了:

zfs list -t snapshot | grep "pool/backups@"
Run Code Online (Sandbox Code Playgroud)

确实有一些:

NAME                                USED    AVAIL   MOUNTPOINT
pool/backups@auto-20140118.1656-5y  4.81M   0       0
pool/backups@auto-20140120.0900-5y  270K    0       0
pool/backups@auto-20140121.0901-5y  270K    0       0
pool/backups@auto-20140122.0902-5y  270K    0       0
pool/backups@auto-20140123.0903-5y  270K    0       0
pool/backups@auto-20140124.0904-5y  270K    0       0
pool/backups@auto-20140125.0905-5y  270K    0       0
pool/backups@auto-20140126.0906-5y  270K    0       0
Run Code Online (Sandbox Code Playgroud)

但是,虽然我本希望看到USED我刚刚删除的大小约为 400G 的快照,但根本没有任何大小值得注意的快照。

我确实花了几个小时试图在其他地方找到问题,当我最终运行时:

zfs destroy -nv pool/backups@
Run Code Online (Sandbox Code Playgroud)

令人惊讶的输出是:

will destroy pool/backups@auto-20140118.1656-5y
will destroy pool/backups@auto-20140120.0900-5y
will destroy pool/backups@auto-20140121.0901-5y
will destroy pool/backups@auto-20140122.0902-5y
will destroy pool/backups@auto-20140123.0903-5y
will destroy pool/backups@auto-20140124.0904-5y
will destroy pool/backups@auto-20140125.0905-5y …
Run Code Online (Sandbox Code Playgroud)

freebsd zfs

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

如何将单磁盘 zfs 池转换为两磁盘 RAID1 池?

我的台式计算机上有一个名为 data 的单驱动器 zfs 池,是使用zpool create data /dev/mapper/data(zfs on luks) 之类的内容创建的。我想将其转换为 raid1 池,但我的机器上只有 1 个驱动器可供使用,并且还有一个插槽。

我能否以某种方式告诉 zfs 将我的数据池转换为镜像,使用新驱动器作为该组中的第二个驱动器?

如果这是不可能的,是否有办法仅使用新驱动器创建新的降级镜像池(因为我还没有第二个驱动器)?这将使我有机会将数据从旧池复制到新镜像池,然后将原始驱动器添加到新池。

linux zfs

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

如何增加 Ubuntu 20.04 ZFS 上的交换空间?

我最近安装了Ubuntu 20.04,使用 ZFS作为文件系统。我检查了我的 RAM/交换区,如下所示:

qallaf89@desktop : ~ $ 免费 -h
              可用的免费共享缓冲区/缓存总数
内存:31Gi 22Gi 4.1Gi 1.9Gi 4.2Gi 6.0Gi
交换:2.0Gi 0B 2.0Gi

现在,如果我想正常增加交换空间,我会按照Digital Ocean 中的教程进行操作,效果非常好。但是,由于我有 ZFS,我遇到了一些问题:

qallaf89@desktop : ~ $ sudo fallocate -l 100G /swapfile
Fallocate: Fallocate 失败:不支持操作

我环顾四周,确实ZFS / Fallocate()似乎有问题。

我也从 oracle看到了这个文档,但它对我来说也没有用:

qallaf89@desktop : ~ $ 交换 -l

未找到命令“交换”,您的意思是:

  deb systemtap 中的命令“stap”(4.2-3)
  deb DVB-apps 中的命令“szap”(1.1.1+rev1500-1.2)
  debsoapaligner 中的命令“soap”(2.20-3)
  deb sway 中的命令 'sway' (1.4-2)
  来自 deb slurm-client 的命令“smap”(19.05.5-1)
  deb secure-delete 中的命令“sswap”(3.1-6ubuntu2)
  deb snapd (2.44.3+20.04) 中的命令“snap”
  来自 debuckless-tools …

zfs ubuntu swap

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

ZFS弄乱了镜像

我在 RAID10 中有一个带有 6 个驱动器的 ZFS 池——嗯,它曾经是。

我试图将 146GB 驱动器升级到 1TB 驱动器,但搞砸了。

root@x7550:~# zpool status
  pool: stuffpool
 state: ONLINE
  scan: scrub repaired 0 in 0h6m with 0 errors on Mon May  9 15:26:39 2016
config:

    NAME                                               STATE     READ WRITE CKSUM
    stuffpool                                          ONLINE       0     0     0
      mirror-0                                         ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part1  ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0M17TE-part1  ONLINE       0     0     0
      mirror-1                                         ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1000102MG9UR-part1  ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1009C03158BP-part1  ONLINE       0     0     0
      scsi-35000c50016ebcdfb-part1                     ONLINE       0     0     0 …
Run Code Online (Sandbox Code Playgroud)

raid zfs

2
推荐指数
1
解决办法
461
查看次数

适用于 Linux 的 Windows 子系统上的 OpenZFS

有没有人见过或尝试过在 Linux 的 Windows 子系统下运行 OpenZFS?

我知道有人正在开发OpenZFSWindows 端口,但似乎从使用 Linux 端口开始会更加稳定。

zfs windows-subsystem-for-linux

2
推荐指数
1
解决办法
1212
查看次数

ZFS 清理会更新现有数据的压缩和副本吗?

我知道像副本和压缩这样的 ZFS 属性只会影响新写入的数据。

但是我想知道磨砂膏是否会更新它?

假设我已经创建了一个池并在写入 1TB 文件之前设置了 compression=lz4 和副本=2。

然后我决定我不需要保留同上块,但我也想使用另一种类型的压缩。

如果我现在设置副本 = 1 和压缩 = gzip-9,有没有办法将其应用于已写入池的数据?

磨砂膏对我有用吗?

linux zfs

2
推荐指数
1
解决办法
909
查看次数

列出用于编写脚本的 ZFS 池的 vdev 设备名称的命令?

我正在编写一个脚本,该脚本需要任意池的所有 vdev 中磁盘的设备名称。(我的池中 vdev 中的所有设备都是磁盘。)

zpool list -v mypoolname 似乎主要是我想要的:

$ zpool list -v mypoolname
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
mypoolname   100G   90G  10.0G    90%  1.00x  ONLINE  -
  mirror   100G   90G  10.0G         -
    devicename1      -      -      -         -
    devicename2      -      -      -         -
Run Code Online (Sandbox Code Playgroud)

但是,确定输出的哪一行是磁盘的唯一明显方法是检查该行开头是否有四个空格。

有没有更好的,脚本安全的命令我可以运行?

linux zfs

2
推荐指数
1
解决办法
5590
查看次数

ZFS 按 id 替换磁盘

偶然地,我使用/dev/sda等创建了一个 zpool 。我知道这是个坏主意;我只是想测试我的设置。原来,它的工作这么好,我忘了设备名称,并开始使用我的zpool作为NAS,仍与sdasdbsdcsdd。我的操作系统从sde. 所以我的 zpool 已经充满了一些数据,准确地说是 16?TB 左右。所以我想知道是否可以修改现有池以按 id 而不是按名称使用磁盘?sdX

我的 NAS 已经连续运行了大约 1 年,我从来没有重启过。如果我现在重新启动并且某些磁盘名称会更改,我的 zpool 会被破坏吗?(例如,因为我后来添加了一些新磁盘)

我读到可以使用 zpool export and zpool import -d /dev/disk/by-id。这是否会导致一些重新同步开始,或者当我导出和导入时究竟会发生什么?由于它有很多数据,如果我不必复制我的数据,我会更喜欢。这简直太多了,需要几天时间。我的 zpool 在 raidz2 配置下运行,操作系统是 Debian。


这就是我得到的zfs list all

root@pve:~# zfs get all
NAME                                           PROPERTY                VALUE                    SOURCE
tank                                          type                    filesystem               -
tank                                          creation                Sat May 12 15:22 2018    -
tank                                          used                    1.00T                    -
tank                                          available               4.26T                    -
tank                                          referenced …
Run Code Online (Sandbox Code Playgroud)

zfs

2
推荐指数
1
解决办法
3756
查看次数

标签 统计

zfs ×10

linux ×3

apt ×1

debian ×1

freebsd ×1

knoppix ×1

raid ×1

swap ×1

ubuntu ×1

windows-subsystem-for-linux ×1