我们在一台声称使用176G磁盘空间的FreeBSD 10.0-CURRENT主机上安装了100G ZVOL: root@storage01:~ # zfs get all zroot/DATA/vtest NAME PROPERTY VALUE SOURCE zroot/DATA/vtest type volume – zroot/DATA/vtest creation Fri May 24 20:44 2013 – zroot/DATA/vtest used 176G – zroot/DATA/vtest available 10.4T – zroot/DATA/vtest referenced 176G – zroot/DATA/vtest compressratio 1.00x – zroot/DATA/vtest reservation none default zroot/DATA/vtest volsize 100G local zroot/DATA/vtest volblocksize 8K – zroot/DATA/vtest checksum […]
我的印象是,如果在从ZFS池读取过程中发生I / O错误,会发生两件事情: 失败将logging在相关设备的READ或CKSUM统计中,向上传播到池级别。 冗余数据将用于重build所请求的块,将请求的块返回给调用者,如果duff驱动器仍然有效,则将块重新写入该块, 或 如果冗余数据不能纠正读取错误,将返回一个I / O错误。 看来我的镜像设置中的一个磁盘已经发展成一个坏扇区。 这本身并不令人担忧。 这样的事情发生了,这就是为什么我有冗余(准确地说是一个双向镜像)。 每次擦洗池或读取特定目录中的文件(我还没有仔细确定哪个文件出错),dmesg中显然会popup以下显示,具有不同的时间戳: Nov 1 09:54:26 yeono kernel: [302621.236549] ata6.00: exception Emask 0x0 SAct 0x9c10 SErr 0x0 action 0x0 Nov 1 09:54:26 yeono kernel: [302621.236557] ata6.00: irq_stat 0x40000008 Nov 1 09:54:26 yeono kernel: [302621.236566] ata6.00: failed command: READ FPDMA QUEUED Nov 1 09:54:26 yeono kernel: […]
我正在运行FreeNAS 9.3的供应商特定衍生产品。 当我安装了一个新的JBOD机箱,将两个新的vdevs添加到我的池中,并且机箱中有一个坏的主板时,我的麻烦就开始了。 在这段时间里,我发现硬盘上的硬盘出现了SAS供电错误 – 我的新硬盘每分钟都会反复打开和closures。 我更换了主板,现在,通过大多数措施,驱动器运行良好,但是当我查看zpool status时,ZFS仍然给我非常奇怪的校验和错误。 当我遇到SAS电源问题时,我认为CoW有一些不好的写法。 带有CPU,引导驱动器,RAM等的第一个机箱通过mini-SAS连接到第一个扩展JBOD机箱,第二个JBOD扩展机箱通过第一个JBOD扩展机箱(也通过mini-SAS)以菊花链方式连接。 [机箱1:启动驱动器,两个L2ARC SSD,RAIDZ3-0的11/11驱动器,1/11驱动器RAIDZ3-1] – > mini-SAS到机箱2 [机箱2:RAID Z3-1的10/11驱动器,RAID Z3-2的6/11驱动器] – > mini-SAS到机箱3 [RAIDZ3-2的机箱3:5/11硬盘,RAIDZ3-3的11/11硬盘] 校验和错误不能整齐地映射到任何一个控制器或机箱,但是我的直觉是,当我遇到这些电源问题时,无论写入到不同的新磁盘的数据是不是写在两个新的vdevs上。 我的HBA采用了好的LSI固件 – 全部在20.00.04.00或20.00.08.00 我更换了迷你SAS电缆,并尝试使用不同的端口,无济于事。 zpool status的输出显示在两个新的vdevs上累积的校验和错误,在scrub,reboot或zpool clear ,最终zpool status这些vdevs标记为降级。 奇怪的是,它也将属于这些vdevs的一些驱动器标记为降级,但是它们的单个磁盘的实际错误计数均为0. zdb显示单个驱动器由于校验和错误太多而被标记为降级尽pipe他们所有的校验和错误计数实际上是0.也奇怪的是,池级别的校验和错误显示的数字比两个问题vdevs加在一起的校验和错误less。 zpool status -v在映射到长久被删除的0x0 inode的快照中持久地显示永久性错误,但似乎无法被多个scrubs,reboots或zpool clear 。 另外,其他的永久性错误也会浮现出来,有时候只会显示为hex代码节点,而其他时间则是最近快照的一部分。 我用lsof找不到任何0x0 。 我相信池中的元数据可能会有某种数据损坏。 我正在寻找一种方法来手术去除这些幻影快照,否则返回我的池到一个健康的状态,而不会破坏我的数据。 我怀疑ZFS正在迭代这些损坏的幻影快照,并在vdevs上造成奇怪的校验和错误和降级状态。 我有很多重要数据的“冷”LTO备份,否则,如果我不能修复我的池,我准备build立第二台服务器,将所有内容卸载到“热”第二台服务器上,销毁我的池在顶层,然后从热备份重新加载。 以下是zpool status -v的输出: [root@Jupiter] ~# zpool status -v […]
这是我的设置:我正在运行双核四Xeon 2.0Ghz与16GB的Ram和2 x 2TB的WD绿色驱动器与FreeBSD 7的ZFS的根。 硬盘在ZFS镜像中。 我正在运行VirtualBox 4.0.14。 我有2个Windows Server 2003 Guest,每个分别使用4 GB的Ram,并且有大约70%的320个VDI虚拟磁盘已满。 一个Windows Server是terminal服务器,另一个是MS SQL数据库服务器。 当在Samba上直接从FreeBSD服务器执行磁盘拷贝和传输时,我可以在读取和写入时获得80-90 MB / s的传输速率。 当我尝试在虚拟机内部传输时,我最多可以获得10MB / s的速度。 当我在VM中复制一个大文件时,我获得了10MB / s的最大值。 使用zpool iostat我从来没有看到虚拟机使用超过20-30 MB / s的最大传输。 在VirtualBoxconfiguration里面,我已经尝试了IDE适配器和SATA。 我还没有尝试SCSI。 什么可能是如此慢的磁盘访问速度的原因?
我testing了两台主机之间的10Gbit连接,以便能够从host1读取10GB文件,并使用netcat将其写入host2,速度为410MB / s。 当我通过同一个专用的10Gbit连接与netcat再次发送/接收时,我只能获得70MB / s。 快照是2.5TB,有1500万个文件。 题 这种放缓的原因是什么? 使用这么多文件回滚快照需要花费很多时间,还是文件数量不受ZFS回滚速度的影响? 更新 10GB的文件传输testing,我得到了410MB / s的,我想模拟一个ZFS发送/接收与回滚。 所以有了这个假设,我很惊讶,我看到如此不同的速度。 我正在使用两个testing之间的比较速度,所以我不必生成随机数据2.5TB文件。 所以我不明白为什么“从host1读取文件,使用netcat传输,写入文件到host2”要比“zfs从host1发送快照,使用netcat传输,在host2上使用ZFS接收/回滚”快得多。 也许另一种方式来问同样的事情会是? 如果我有两个相同大小的2,5TB快照,其中snapshot1包含1个文件,snapshot2包含1500万个文件。 两个zfs receive的时间是一样的吗? 或者会比另一个更快?
我有一个关于这个问题的相关问题,但它太复杂,太大了,所以我决定我应该把问题分解成NFS和本地问题。 我也尝试过在zfs-discuss邮件列表上询问这个问题,但没有取得太大的成功。 在同一台服务器上的NFS / CIFS目录之间慢速复制 大纲:我如何设置和我的期望 我有一个4个磁盘的ZFS池。 2TB REDconfiguration为2个带条纹的镜像(RAID 10)。 在Linux上,zfsonlinux。 没有caching或日志设备。 数据在镜像之间保持平衡(对于ZFS很重要) 每个磁盘可以以147MB /秒的速度并行读取(raw w / dd),总吞吐量达到588MB / sec。 根据类似的4TB RED磁盘的基准testing结果,我预计每个磁盘的写入速度为115MB / sec,读取速度为138MB / sec,重写顺序数据的速度为50MB / sec。 我预计不会低于100MB /秒的读取或写入,因为现在任何磁盘都可以这样做。 我认为在负载读取或写入顺序数据的情况下,在所有4个磁盘上都会看到100%的IO利用率。 而且在100%的利用率下磁盘将会超过100MB /秒。 我认为这个池可以让我在单个磁盘上进行2次写入,2次重写和4次读取 – 我错了吗? 新的我认为在同一个池上的ext4 zvol与ZFS的速度大致相同 我实际得到的 我发现游泳池的读取性能没有我预期的那么高 bonnie ++基准testing池在几天前 版本1.97 ——顺序输出—— – 顺序input – – 随机 – 并发性1 -Per Chr- –Block– -Rewrite- […]
我正计划在opensolaris之上build立一个文件服务器,使用raid z1或z2。 是否可以稍后升级磁盘并立即访问增加的存储? 或者增加的存储空间仅在raid z中的每个设备升级时才可用? 另外,常规的zpools如何处理不同大小的设备? 我没有发现这个问题的答案。 我可能不得不先从zpool中的两个不同大小的驱动器开始, 我从一些人那里听说,每个驱动器被视为最小磁盘的大小(zpools和raid zs),但zfs文档似乎暗示了其他方面。
我正在构build一个Solaris NAS系统,目前我们有两个驱动器,并计划在以后再增加两个驱动器(2TB企业级硬盘有点贵!)。 最好的configuration设置这些驱动器铭记我想扩大在未来? 我正在考虑镜像驱动器,然后转换raidz一些如何? 它只会是最多四个驱动器,其中后两个将被购买。 有任何想法吗?
我最初复制了tank / storage1 – > usb1 / storage1-slave(如下所示),然后(故意)销毁了我从中复制的快照。 通过这样做,我是否丧失了在这两个文件系统之间递增(zfs send -i)复制的能力? 销毁此快照后,处理这些文件系统SYNC的最佳方法是什么? # zfs list NAME USED AVAIL REFER MOUNTPOINT tank 128G 100G 23K /tank tank/storage1 128G 100G 128G /tank/storage1 usb1 122G 563G 24K /usb1 usb1/storage1-slave 122G 563G 122G /usb1/storage1-slave usb1/storage2 21K 563G 21K /usb1/storage2 如果我最初RSYNC'd坦克/ storage1 – > usb1 / storage1-奴隶,并决定增量复制'通过zfs send -i'。
我在家里有一个简单的ZFS设置,4个磁盘镜像,8GB RAM和120GB Intel L225C的Intel X25-M SSD。 我运行zpool add poolname cache cXtXdX然后生成负载,并通过运行zpool iostat -v mypool热切跟踪升温过程。 几个小时后,L2ARC已经满了,但究竟是什么被caching了? 我可以偷看,看看我的ARC / L2ARC中有什么? 我知道某些块会映射到多个文件系统(由于快照,克隆或重复数据删除),但我仍然想要对这些统计信息进行采样: 被caching的块的types:元数据。 iSCSI,数据。 等等 年龄:在L2ARC中每块有多长时间 哪些文件:caching一些内容的目录 文件系统崩溃:GBcaching每个文件系统 非易失性块的位置(其中drive / vdev) 我会想象zdb和/或dtrace会成为日常工具,但不知道从哪里开始。