Recent Posts

set zfs’s property snapdir to hidden or visible see snapshot directory

2 minute read

背景 zfs的snapshot, 以往我们可以通过clone或者rollback来查看snapshot的内容. 当然不推荐rollback, 因为会导致zfs回退. 其实还有一种方法来查看snapshot的内容, 那就是设置zfs的snapdir属性, 如果开启了这个属性的话, 可以直接在zfs目录的.z...

zpool use 4KiB sector

8 minute read

背景 默认情况下, 创建top-level dev如果不指定扇区大小, 那么使用vdevs中最小的扇区大小作为zpool的扇区大小. 但是某些设备虽然是4K的扇区, 但是可能内核读到的扇区大小可能是512字节. 这样的话, 将对影响有比较大的影响, 所以在这种情况下, 创建zpool时可以指定扇区的大小....

zpool use vdevs distribute

1 minute read

背景 zpool并不限制根vdev的数量, 并且也不限制他们的属性(如mirror or raidz), 但是属性不同会有提示. 例如 [root@db-172-16-3-150 ~]# zpool create zpp mirror /ssd1/zfs.1 /ssd1/zfs.2 [root@db-...

use zfs snapshot rollback postgresql’s primary to old status in PG HA

less than 1 minute read

背景 前几天讲过zfs的snapshot用作PostgreSQL PITR, 使用接近还原点的snapshot可以减少xlog的apply, 缩短数据库的恢复时间. 其实snapshot还有一个作用, 用作流复制HA的主备角色切换后避免因为XLOG的差异导致old primary无法切换成standby角色. ...

ZFS deduplicate

3 minute read

背景 前一篇BLOG介绍了ZFS的压缩特性, 本文将介绍一下ZFS的另一个特性deduplicate, 同compress的目标差不多, 都是节约存储空间的. 但是deduplicate带来的副作用会比较明显, 同时deduplicate的数据不是atomic事务写入的, 可能导致数据损坏. 一般不建议开启d...

ZFS compression algorithm lzjb, gzip, gzip-[0-9], zle, lz4 compare

1 minute read

背景 zfs提供几种压缩算法, lzjb, gzip, gzip-[0-9], zle, lz4 其中默认的压缩算法为lzjb, 这个是ZFS的作者Jeff Bonwick提供的, gzip默认的压缩级别为6, 或者指定压缩级别. 这里主要测试一下压缩时间和压缩比. 注意, 压缩选项默认是关闭的...

zfs pool self healing and scrub and pre-replace bad-disks

6 minute read

背景 ZFS的又一个强大之处, 支持坏块的自愈 (如果使用了冗余的话,如raidz1, raidz2, raidze, ... 并且正确的块可通过ECC重新计算出的话.). 同时ZFS具备类似ECC DIMM的校验功能, 默认使用SHA-256 checksum. 使用scrub来检测ZPOOL底层的块...

send and receive ZFS snapshot between machines

2 minute read

背景 zfs的另一个强大的功能, 将snapshot导出到文件, 再将文件恢复成dataset. 导出时支持管道传输, 所以可以很方便的实现跨主机传输. 例子 : 查看A主机的snapshot. [root@db-172-16-3-150 mnt]# zfs list -t snapshot ...