这是关于Linux上的zfs(CentOS 7)的一个问题。 我有一个非常简单的安装两个8 TB磁盘,一个磁盘镜像另一个。 zpool create -f -o ashift = 12 $ zpoolName mirror $ disksById 如果需要更换一个磁盘,根据zpool手册页,更换磁盘的大小必须等于或大于configuration中两个磁盘的最小大小。 从我所了解的情况来看,通常情况下,不同品牌和型号的驱动器(和型号修订版)之间的确切尺寸通常会有所不同,即使它们都被标记为8 TB。 不过, 我希望能够用任何其他的8TB磁盘replace它 ,而不一定是相同的品牌和型号。 我如何做到这一点? 我会期望有一个选项来创buildzpool命令,以便整个磁盘不是用于池,但留下一些松懈,但我找不到这样的选项。 我看到的唯一build议是在创build池之前对磁盘进行分区,创build一个“池”分区和一个“松散”分区,但是我读过这会影响磁盘性能,因为磁盘caching不能被正确使用zfs,所以我想我想避免这个。
在ZoL上创build我的RAID-Z池时,我可以很容易地在稍后插入其他磁盘。 同时我了解到,这是不可能的。 但是…我在创build初始池时遇到了类似的问题。 只有4个空闲的SATA端口,而是一个带有3个2TB磁盘的旧RAID5和一个带有3个4TB磁盘的新RAIDZ1。 解决的办法是a)降级RAID5和b)用一个稀疏文件构build起初的RAIDZ作为“虚拟的第三个驱动器”,在创build池之后立即使其脱机: 创build稀疏文件: dd if=/dev/zero of=/zfs1 bs=1 count=1 seek=4100G 创buildraidz池: zpool create zfspool raidz /dev/disk1 /dev/disk2 /zfs1 立即取下稀疏文件: zpool offline zfspool /zfs1 将数据迁移到zfspool 。 卸载旧的RAID5磁盘,添加第三个新的4TB磁盘 使用实际的第三个驱动器replace并popup池中的稀疏文件: zpool replace zfspool /zfs1 /dev/disk3 这真是太好了! 现在我了解到,尽pipeZFS不直接支持将单个磁盘添加到RAIDz,但它支持逐个replace较大的磁盘。 所以这是我的计划。 有人看到有缺陷吗? 购买第四个4TB磁盘并从现有池中脱机一个磁盘 在这两个空闲磁盘上创build2x2TB分区。 从这四个“磁盘”中构buildRAIDz:3x2TB = 6TB的networking存储。 出于性能原因:立即脱机第二个分区之一 迁移最大 6TB的数据到新的水池,并摧毁旧的水池 replace离线的“2TB磁盘”与一个真正的4TB之一的旧池。 等待重弹。 在具有两个活动分区的驱动器上:使第二个2TB分区脱机,并将其replace为旧池中的第二个4TB磁盘。 等待重复。 一个接一个:使剩余的2TB分区离线,使用4TB增长该分区,并重新添加磁盘池。 等待重复。 冲洗和重复的最后2TB磁盘/分区 这会工作吗? 我知道我在这个过程中由于缺less冗余而更容易丢失数据,但我会备份最重要的数据。 […]
我试图在CentOS 7(3.10.0-327.10.1)上创buildzpools,而zpool命令似乎讨厌“wwn-0x”ID。 “zpool status”已清除 – 机器上当前没有configurationzpools。 我有驱动器: lrwxrwxrwx. 1 root root 9 Mar 11 14:30 wwn-0x5000cca2440ba0a0 -> ../../sds lrwxrwxrwx. 1 root root 9 Mar 11 14:30 wwn-0x5000cca2440ba1dc -> ../../sdu lrwxrwxrwx. 1 root root 9 Mar 11 14:30 wwn-0x5000cca2440992cc -> ../../sdl 如果我input: zpool create -f asdf /dev/sds /dev/sdu /dev/sdl 它工作很好。 但是,如果我使用WWN ID,则会出现错误,具体取决于我发送的内容: zpool create -f asdf […]
我负责下载和处理大量的财务数据。 每个交易日,我们必须增加100GB左右。 为了处理这些数据,我们从我们大学的数据中心租用了一个虚拟服务器(3个核心,12 GB RAM)和一个30 TB的块设备。 在虚拟机上,我在Linux上安装了Ubuntu 16.04和ZFS。 然后,我在30TB块设备上创build了一个ZFS池。 使用ZFS的主要原因是压缩function,因为数据是可压缩的(〜10%)。 请不要因为没有遵循ZFS希望看到裸机的黄金规则而对我太苛刻,我不得不使用基础架构。 张贴的原因是我面临一个写速度差的问题。 服务器能够从块设备读取大约50 MB / s的数据,但写入数据的速度非常慢,大约为2-4 MB / s。 以下是有关池和数据集的一些信息: zdb tank: version: 5000 name: 'tank' state: 0 txg: 872307 pool_guid: 8319810251081423408 errata: 0 hostname: 'TAQ-Server' vdev_children: 1 vdev_tree: type: 'root' id: 0 guid: 8319810251081423408 children[0]: type: 'disk' id: 0 guid: 13934768780705769781 path: '/dev/disk/by-id/scsi-3600140519581e55ec004cbb80c32784d-part1' phys_path: […]
对于运行Windows 8.1的几台(〜5台)个人电脑,我必须在Ubuntu 16.04服务器上使用Samba4来设置域控制器。 此外,DC应提供几个具有用户特定访问权限的共享文件夹,并充当打印机服务器。 为了防止数据损坏,我考虑在镜像模式下使用ZFS来存储共享文件夹的内容,但是查看ZOL参数“acltype”的可能值,我感觉到Linux上的ZFS只实现了POSIX ACL。 这反过来会使我的计划变得不可能,因为根据[1] Samba4 AD DC需要NFS ACL,并且我没有其他机器可用作Samba文件服务器(这个限制不存在)。 有没有什么我可以做的使用ZFS,或者我必须使用不同的文件系统,例如Btrfs(我不知道它是否足够成熟的生产使用)? 提前致谢。 [1] https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller#Using_the_Domain_Controller_as_a_File_Server 编辑@zoredache:我已经想过这样做,但我不知道是否有可能是一个问题,如果只有在NAS完成启动过程后DC才可用。 说实话,ZFS由于其所有function而具有吸引力,但我并不认为这是必要的。 只是想防止点腐,但我相信有其他select… @ewwhite不幸的是,由于成本的原因,Windows Server不是一种select – 我为一个小型慈善机构设置了这个东西。
我在Ubuntu服务器16.04LTS上设置ZFS和NFS,并有一个奇怪的问题,使我疯了。 我已经使用ZFS共享设置了ZFS和NFS,如https://pthree.org/2012/12/31/zfs-administration-part-xv-iscsi-nfs-and-samba/中所述 。 正如你可以在我的日志中看到的,尽pipe我已经设置了zfs-share在引导过程中运行zfs share -a ,但共享仍然没有被导出。 即使更奇怪,是zfs share -a当我手动运行它仍然不会。 如果我重置其中一个共享的sharenfs属性,然后重新运行zfs share -a我只能让zfs共享工作。 见下文 $ showmount -e Export list for apu: /mnt localhost $ sudo zfs share -a $ showmount -e Export list for apu: /mnt localhost $ sudo zfs share pool1 cannot share 'pool1': filesystem already shared $ sudo zfs get sharenfs pool1 NAME […]
我对zfsonlinux很新。 我刚刚成功地build立了一个全新的服务器,在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 现在,我可以从真正的乐趣开始。 磁盘拉! 我现在拔出磁盘C.我有一个工作池,但降解(如预期): NAME STATE […]
一个池已经遭受了永久性数据损坏,以便将文件数据作为快照的一部分。 如果文件数据是文件系统的一部分(而不是任何快照的一部分),我可以简单地从合适的备份副本中恢复文件。 如何从快照副本或池的(部分1 )副本中恢复或修复(并清除由ZFS报告的错误)快照中的文件? 1部分副本至less包含受影响的快照以及受影响的池上的上一个快照。 例 这是一个很容易重现的非常人为的例子: 从(bash)shell提示符下: cd mkdir zfs-test for i in {1..2}; do dd if=/dev/zero of=zfs-test/tank-file$i bs=1G count=1 &> /dev/null; done sudo zpool create tank1 ~/zfs-test/tank-file1 sudo zpool create tank2 ~/zfs-test/tank-file2 sudo zfs snapshot tank1@snapshot1 sudo sh -c 'zfs send tank1@snapshot1 | zfs receive -F tank2' 创build一个文本文件/ tank1 / test-text-file ,其内容可以在hex编辑器中轻松find。 这是我用的: […]
我使用GPT和zpool的2x3TB磁盘,第一个磁盘(sda4)上使用2.7TB分区,第二个磁盘(sdb4)上使用1TB。 原因是最初两个磁盘都只有1TB,我用3TB依次replace了两个磁盘。 但是在我有1x1TB和1x3TB的时候,我使用了3TB的剩余部分作为我现在要删除的另一个分区。 我使用Linux上最新的ZFS(0.6.5.7-8-wheezy)。 什么是正确的方法来调整池的全2.7TB? autoresize目前closures。 这是lsblk和zpool status的当前输出: # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 2,7T 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 14,5G 0 part │ └─md0 9:0 0 14,5G 0 raid1 / ├─sda3 8:3 0 4,2G 0 part │ └─md2 9:2 0 4,2G 0 […]
这个问题涉及到一个更通用的问题 ,但是这次我想更具体地问一下,如果ZFS可以在像我这样的用例中replaceDRBD。 这就是两台服务器,既可以托pipe自己的虚拟机,也可以同时复制虚拟机或其他数据,以减less硬件故障或维护的停机时间。 这个设置是按照预期的,我希望首选本地读/写,并且可以在某个任意时间框架内存在潜在的数据丢失。 DRBD使用不同的镜像协议支持这种情况,其中复制协议A是我所需要的asynchronous。 在我的设置中,DRBD的主要好处是切换到更多的同步协议很简单,只需configuration和重新启动即可。 另外,可以将dm-crypt放在DRBD块设备的顶部,并将文件系统放入dm-crypt,以便每个数据都被encryption。 另一方面,DRBD的问题是它需要块设备,并且需要使用RAID和LVM等其他技术来关心它们的可用性和大小。 特别是resize的东西似乎很有趣,因为我的服务器将来有空闲的插槽来连接更多的磁盘。 为了支持resize ,我需要使用DRBD下的LVM,首先使用LVM添加存储,然后调整DRBD的大小以考虑新的存储。 比我仍然需要处理dm-crypt,文件系统本身等。这看起来很复杂,有点容易出错。 另一方面,像ZFS这样的文件系统已经提供了自己的LVM,并且能够发送/接收增量快照。 所以理论上ZFS应该能够实现相同的协议像DRBD这样的方法不需要使用RAID,LVM等。只需将存储添加到服务器中,将其存入ZFS池中,并立即可用于主持更多/更大的虚拟机或其他。 发送/接收快照听起来和DRBD所做的一样高效,因为它只是增量的二进制数据,无论需要什么开销来描述接收ZFS中要理解的变化。 我已经读过使用无休止循环的人们,没有hibernate时间发送/接收ZFS快照,并在之后再次在源文件中直接删除它们,因为它们仅用于短期复制。 不过,encryption似乎是ZFS的一个问题。 dm-crypt可能在zvols之类的东西上工作,将来它可能直接支持encryption ,但是现在不支持 。 另外,发送/接收快照似乎总是asynchronous的,如果需要的话,没有办法像DRBD提供的那样实现更多的同步协议。 这可能是可以接受的,因为不需要使用LVM并使整个设置更容易。 还是我错了,还有其他方式比发送/接收快照如何ZFS能够转发数据到其他主机开箱即用? 在DRBD镜像协议中,您是否经常在短时间内发现使用ZFS发送/接收快照的一些基本性能差异或限制? 后者可能会更有效率,因为只有块级我猜。 DRBD和ZFS之间的任何其他差异你能想到吗? 请记住,我目前不需要DRBD的高可用性,我现在专注于复制数据。 谢谢!