Articles of ZFS

从故障池状态恢复ZFS

我有一个六磁盘ZFS raidz1池,并有一个最近的故障,需要更换磁盘。 正常情况下没有问题,但是这次我的服务器硬件在我可以做replace之前就已经死了(但是据我所知,在硬盘故障之后和硬盘故障无关)。 我能够从朋友那里获得另一台机器来重build系统,但是在移动硬盘的过程中,我不得不绕过一堆交换电缆,直到获得正确的configuration,其余5个磁盘被视为在线。 这个过程似乎已经为pool / raidz生成了一些校验和错误。 我现在已经安装了5个剩余的驱动器,并且安装了一个好的驱动器,并准备好代替死亡的驱动器。 但是,由于我的池状态是FAULTED所以无法进行更换。 root@zfs:~# zpool replace tank 1298243857915644462 /dev/sdb cannot open 'tank': pool is unavailable 有没有办法从这个错误中恢复? 我认为有6个驱动器中的5个在线就足以重build正确的数据,但现在看来还不够。 这是我的池的状态日志: root@zfs:~# zpool status tank pool: tank state: FAULTED status: One or more devices could not be used because the label is missing or invalid. There are insufficient replicas for the pool […]

FreeBSD 9.2将SATA3驱动器显示为SATA2

我在带有4个Intel SSD的Intel S2600GZ服务器主板上运行FreeBSD 9.2。 服务器主板和磁盘都支持SATA3。 但是,FreeBSD似乎认为他们是SATA2。 在系统configuration中没有任何地方限制SATA2的磁盘。 这是dmesg的摘录: ahci0: <Intel Patsburg AHCI SATA controller> port 0x3070-0x3077,0x3060-0x3063,0x3050-0x3057,0x3040-0x3043,0x3020-0x303f mem 0xd0d00000-0xd0d007ff irq 21 at device 31.2 on pci0 ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported ahcich0: <AHCI channel> at channel 0 on ahci0 ahcich1: <AHCI channel> at channel 1 on ahci0 ahcich2: <AHCI channel> […]

“zpool创build”无限期地挂起

我有一台Solaris 11.1机器,它通过LSI 1068控制器通过扩展器(LSISAS2X36)连接了一些磁盘。 这个设置用得很好,但是因为我添加了另一批磁盘,所以我看到了一些奇怪的效果: 如果我没有指定NOINUSE_CHECK=1 ,select磁盘(任何磁盘)后format挂起 我无法创build新的池,一个简单的zpool create test c10d20t0将挂起 – 似乎由于format相同的原因。 NOINUSE_CHECKvariables似乎没有效果,虽然旧的新闻档案似乎表明它似乎有助于以前版本的Solaris。 我已经尝试运行devfsadm -Cv来清理非当前设备的dev条目,但无济于事。 我还发现新添加的一个磁盘上的无效分区信息可能会导致“正在使用”检查挂起并运行所有添加的磁盘的fdisk菜单来创build一个100%的Solaris分区,但是这也没有帮助。 一个truss zpool create test c10t20d0显示了很多关于/dev/rdsk/的阅读链接,并停在这些行上: readlink("/dev/zvol/rdsk/rpool/dump", "../../../..//devices/pseudo/zfs@0:1,raw", 1023) = 39 lstat("/dev", 0xF8D35310) = 0 lstat("/dev/zvol", 0xF8D35310) = 0 lstat("/dev/zvol/rdsk", 0xF8D35310) = 0 lstat("/dev/zvol/rdsk/rpool", 0xF8D35310) = 0 lstat("/dev/zvol/rdsk/rpool/swap", 0xF8D35310) = 0 readlink("/dev/zvol/rdsk/rpool/swap", "../../../..//devices/pseudo/zfs@0:2,raw", 1023) = 39 open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 7 […]

I / O错误,但没有智能或ZFS错误

我很难为我的一个朋友找出问题。 他使用Debian发行版在Linux上运行ZFS。 我们正在将这些条目添加到dmesg中。 [273044.834151] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834157] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834161] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834164] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834168] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834171] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834175] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834178] mpt2sas0: log_info(0x31110d00): originator(PL), code(0x11), sub_code(0x0d00) [273044.834182] mpt2sas0: log_info(0x31110d00): originator(PL), […]

在本地装载ZFS zvol快照会给出“无效参数”

我正在尝试装载ZFS zvol的快照。 zvol应该有一个ext2分区(如当前由iSCSI共享zvol的CentOS VM所certificate的): [root@test-vm ~]# file – < /dev/sdb /dev/stdin: x86 boot sector; partition 1: ID=0x83, starthead 4, startsector 256, 6291200 sectors, code offset 0xb8 [root@test-vm ~]# file – < /dev/sdb1 /dev/stdin: Linux rev 1.0 ext2 filesystem data (mounted or unclean) (large files) 但是,挂载总是返回Invalid argument : [root@freenas] /dev/zvol/vol01# ls ./ zvol01 zvol01@backups1 zvol01@manual-20140521s1 zvol01@manual-20140522s1 […]

由于txg_sync在Ubuntu 14.04上的ZFS 0.6.3性能下降

我在这里使用本地ZFS和“从Linux上安装的ZFS”。 安装不是问题,我正在使用两个WD 4TB红色硬盘的镜像configuration。 不幸的是我在写入磁盘arrays时遇到性能问题。 当阅读表演是确定的。 我遇到了这样的问题,即在大量写入arrays期间,复制进程每隔5秒停止大约5-10MB / s,如rsync报告的那样。 中间的速度是~75MB / s,这是其他文件系统,我期望从系统(我尝试btrfs,它得到〜85MB / s)内联。 看着iotop我发现复制txg_sync与txg_sync执行/占用I / O的过程相一致。 这个问题似乎是“突发”I / O问题,似乎是ZFS的一个常见问题(请参见此处和此处 )。 我已经应用了第一个链接的选项 options zfs zfs_prefetch_disable=1 这对性能问题有所帮助,但并没有解决这些问题。 txg_sync的5s间隔似乎是vfs.zfs.txg.timeout =“5”(例如5s),这是Linux上ZFS的默认设置。 这是正常的行为还是有其他设置我可以尝试? 如果是的话,有什么build议? 请注意,我无法在两个链接中find许多选项… 编辑2:跟进一点:我使用的系统是惠普ProLiant微服务器N36L,我升级到8GB的ECC内存。 这里给出了用于创buildZFS卷的命令。 请注意,我正在使用-o ashift=12 (在zfsonlinux FAQ中find),这应该使ZFS与高级格式化磁盘的4096Byte块配合使用。 $ zpool create -o ashift=12 -m /zpools/tank tank mirror ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0871252 ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E3PKP1R0 $ zfs set relatime=on tank $ zfs set […]

rsnapshot与zfs / btrfs快照

目前我正在使用rsnapshot在外部磁盘上实施每日/每周/每月的备份scheme。 最近我一直在阅读关于zfs和btrfs等复制写入文件系统的知识。 我非常喜欢将快照存储回去的能力。 创build每日备份历史有以下方法的严重缺点吗? 每天我都会使用rsync与外部驱动器同步数据,使用zfs或btrfs进行格式化。 之后,我会创build一个快照。 可能实施一些备份链的细化。

ZFS性能80%的规则

无论池的大小是否适用于ZFS池的80%容量经验法则? 如果我有一个10TB的池,这意味着我必须保持2TB免费。 够公平的,损失不是太大。 但在50TB的游泳池里,这意味着我需要保持10TB的空闲。 这是很多剩余的空间

快速同步zfs池

我的服务器将增量备份保存在zfs卷上。 由于数据非常相似,我可以显着减less增长 – 每天大约有500GB的“新数据”,但是池的增长量只有5-10GB /天,其余的则存储在重复数据删除/压缩中。 我想将备份复制到encryption的usb磁盘,因为这个原因,我也将其设置为zfs卷。 当我使用rsync或zfs同步备份发送/接收时,似乎所有数据都被再次传输(只是作为在USB驱动器上的重复数据)。 由于这个原因,目前的备份时间超过了24小时,这使得日常备份成为不可能。 有没有办法更快地备份?

有没有(主要)安全的方式来使用zfs快照备份实时MySQL数据库

基本上我正在寻找一种方法来告诉MySQL(percona-flavored)采取以下步骤: 将所有已提交的事务刷新到文件系统 开始缓冲所有事务(保持文件系统处于一致状态) 等待我做一些事情(拍摄zfs快照) Unbuffer写入并恢复正常的操作 允许DDL语句破坏备份的解决scheme是可以接受的(因为这个备份解决scheme将被频繁地应用,并且DDL语句将是非常罕见的 – 最坏的情况是将不得不比预期多一个小时地回滚db)。 备份操作应该对性能造成最小的破坏性,但这不是一个负载较重的系统。 按照数据库或系统范围执行这个程序的解决scheme都很好,尽pipe后者在某种程度上是优选的。