我在使用NFSv4 ACL的Solaris内核模块的OmniOS服务器上设置了SMB / CIFS文件共享,这些ACL应与Windows客户端正常工作。 我想创build一个共享的目录,其目标如下:一个用户(比方说alice )应该能够创build和修改文件,但不能删除它们。 还应该防止创build子目录。 应该允许读访问。 我已经尝试了以下ACL,基本上工作: /usr/bin/chmod A=\ user:root:rwxpdDaARWcCos:fd—–:allow,\ # root has full access user:alice:rwx—aRc–s:——-:allow,\ # dir: create files, read everything user:alice:rwxp–aARWc–s:fi—-:allow \ # files: wpAW is needed for full file write access, everything is only inherited to files /pool/share 但是,如果alice在Windows资源pipe理器中查看新增文件的“ 安全”选项卡,她可以授予自己完整的访问权限,然后删除该文件,即使她没有共享权限。 如何解释这种行为? 我怎样才能改变它,使ACL不能被修改? 编辑: ls输出似乎是正常的: # /usr/bin/ls -v total 1 -rwx——+ […]
我在这里有一个相对较新的盒子,在18个磁盘arrays上运行带有ZFS-on-Linux的Ubuntu。 前几次我做了zpool scrub ,看起来好像一切都很好,但是最后几次我尝试过,它完全破坏了系统 – 当我可以做任何事情时,它报告一个平均负载20-50,大部分时间它只是没有反应。 这不是预期的行为吗? 有没有一些configuration可以改变,以减less这个问题? 更新: 硬件configuration基本上是http://www.45drives.com/products/storage/s45-lite.php 18个6TB磁盘通过HighPoint R750 HBA连接。 Ubuntu 14.04 LTS,Linux 3.19内核。 游泳池目前大约占50%。 没有重复数据删除。 [更新2]:磁盘排列在2个RAIDZ(单奇偶校验)vdevs中,每个9个磁盘。
我使用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 […]
我有一个8镜像驱动器和一个热备份池。 镜像集中的其中一个驱动器失败,但我无法确定热备份是否自动添加。 备用状态为“IN USE”,扫描显示重置1.7T。 镜像0仍然显示DEGRADED然而。 是镜像0 0 100%,我只需要清除“zpool clear primary_vol”的状态? 或者我需要发出一个“zpoolreplacec0t12d1 c0t21d1” zpool status pool: primary_vol state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' […]
以下是我的ZFS卷和快照列表,以及每个ZFS卷的来源和克隆。 我想删除所有的快照,但保留所有的文件系统。 我怎样才能做到这一点? 我已经试过zfs promote升级,然后尝试删除文件系统的许多不同组合的每个文件系统。 这转移了快照“生活”的地方; 例如, zfs promote tank/containers/six将tank/containers/three@F zfs promote tank/containers/six移动快照tank/containers/three@F提升到tank/containers/six@F 文件系统中的实时数据没有被修改(这是我想要的!),但我仍然不能删除快照(这不是我想要的)。 一个典型的zfs destroy尝试告诉我它有依赖的克隆,其中一些(快照)我想销毁,但其他的(文件系统)我不想销毁。 例如。 # zfs destroy tank/containers/six@A cannot destroy 'tank/containers/six@A': snapshot has dependent clones use '-R' to destroy the following datasets: tank/containers/five tank/containers/two@B tank/containers/two 在上面的例子中,我不想摧毁tank/containers/five或tank/containers/two ,但是如果我们zfs promote五个和两个,我仍然不能销毁任何快照。 有解决scheme吗? # zfs list -t all -o name,origin,clones NAME ORIGIN CLONES tank – – […]
这个问题涉及到一个更通用的问题 ,但是这次我想更具体地问一下,如果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的高可用性,我现在专注于复制数据。 谢谢!
问题 我最近安装了一个新的磁盘并在其上创build了一个zpool: /# zpool create morez /dev/sdb 使用一段时间后,我注意到它很慢: /morez# fio –name rw –rw rw –size 10G read: IOPS=19.6k, BW=76.6MiB/s (80.3MB/s)(5120MiB/66834msec) write: IOPS=19.6k, BW=76.6MiB/s (80.3MB/s)(5120MiB/66834msec) 这个testing与我的实际使用情况非常相似。 我正在从磁盘读取中等数量(〜10k)的图像(每个〜2个MiB)。 当磁盘大部分是空的时候,它们都是一次写入的,所以我不认为它们会被分割。 为了比较,我testing了ext4: /# gdisk /dev/sdb … /# mkfs.ext4 -f /dev/sdb1 && mount /dev/sdb1 /mnt && cd /mnt /mnt# fio –name rw –rw rw –size 10G read: IOPS=48.3k, BW=189MiB/s (198MB/s)(5120MiB/27135msec) […]
我只是想知道是否明智地将4x500Gb和2×750添加到相同的ZFS池? 或者我们应该只添加相同大小的硬盘到游泳池? 当我们有很多配对的磁盘时,任何文档都会非常方便或者指导我们该怎么做。
我一直在研究OpenSolaris和ZFS以用于NAS。 迄今为止,我创造了以下内容: /jar/项目 /jar/存储 /jar/开发商 /jar/沙箱 分配给坦克的总空间是3.4Tb(RAIDZ2)。 开发者装载的是我们的Subversion版本库,它应该被locking,所以只有系统pipe理员才能访问那些内容加上suDevelopers组中的内容。 SandBox是一个游戏区域,它是所有打开的门,读/写/删除任何东西。 我想知道如何实现以下function,无论是使用ACL还是只使用标准的Unix权限。 这个NAS有三大类用户,这是用户层次结构。 除了CIFS之外,没有任何广告或其他任何东西可以共享这个NAS。 suDevelopers他们可以访问坦克中的所有内容。 suStaff这些用户是工作人员,除了坦克中的开发人员zfs之外,他们应该可以访问所有内容。 sucontractors这些用户只能看到存储文件夹,不能访问其他文件夹。 问题是存储区域中的一些文件包含我们不希望承包商看到的敏感信息(序列号,许可证密钥)。 我们可以在那里放置文件的用户在Windows中设置这些权限,他们会自动设置到正确的位置? 我不知道如何正确地做上述事情,无论是ACL还是CHMOD我都应该使用。
如果我在池中有一对镜像对的250GB驱动器,并且以后再购买两个驱动器,并将另一对镜像对添加到同一个池中,那么第二对镜像对可以是500GB? 这样我的总可用空间将是750GB? 或者,所有镜像对在一个池中需要是相同的大小?