问题标签 [zfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - “mds”用什么来迭代挂载的文件系统?
在过去的几年里,我一直在密切关注 OS X 的 Open ZFS 开发场景。自从 Greenbytes 等出现可悲的问题以来,过去几个月事情取得了显着进展,但我很高兴看到我们终于接近获得真正的 Spotlight 支持。我注意到前几天 Jorgen Lundman 发来的这封电子邮件(他投入了大量个人时间来推动这件事并为社区做出贡献),并认为这里的其他人可能有兴趣加入这个,他的关于在 OS X 上实现对 ZFS 的 Spotlight 支持:
总而言之,我认为这个问题的症结在于:
以及为方便起见的电子邮件正文:
mysql - dockerfile - 无法连接错误
所以这就是我要做的:我需要使用 docker 自动设置一些容器。其中之一是这样的: Debian Squeeze 具有有限的 CPU 份额和有限的内存(1 个 cpu 份额和 512 mb 内存),预装了 apache2、build-essential、php5、mysql-server-5.5、openssh-server 并打开了一些端口( Apache 为 8000,MySQL 为 1500)。所以我创建了以下 dockerfile :
apache-config.conf 的内容是这样的:
在 www 文件夹中,我使用以下代码放置了一个 php 文件:
测试与 mysql 服务器的连接
然后
我将所有这些构建成这样的图像:
然后我像这样运行图像
它似乎可以工作,当我在浏览器中访问 localhost:8000/site 时,apache 服务器可以工作,但显示“无法连接”。我究竟做错了什么?另一个问题是,contaienr 正在运行,但我无法附加到它。我运行这个命令
然后什么也没有发生,不能从那里做任何其他事情,我做错了什么?
我必须再构建几个与此类似的 dockerfile 来创建容器。所有这些都必须托管在 ZFS 文件系统上,我必须基于它配置一个 50gb 的容器存储库,这是什么意思,我该怎么做?
对不起我的英语,这不是我的母语:(提前谢谢你
python - python子进程Popen挂起
我看过很多例子,很多似乎表明问题是死锁。我没有写信给标准输入,所以我认为问题是其中一个 shell 命令过早退出。
在 Popen 中执行的是:
换句话说,登录到远程主机并(发送存储卷的复制流,将其通过管道传输到 gzip)将其通过管道传输到 zfs recv 以写入本地数据存储。
我已经看过关于缓冲区的解释,但我绝对没有填满这些,而且 gzip 过早地退出了,所以我认为 process.wait() 永远不会退出。
这是我跑步并打断它时会发生的情况
我也尝试使用 Popen.communicat() 方法,但如果 gzip 退出,它也会挂起。在这种情况下,我的命令 (zfs recv) 的最后一部分退出,因为本地数据集已被修改,因此不会应用增量复制流,因此即使这将得到修复,也必须有一种处理 gzip 损坏的方法管道?
运行时:
raspberry-pi - 如何通过 Raspberry-Pi 设备共享 ZFS 格式的 USB 磁盘
我有一个 ZFS 格式的 USB 磁盘,我想在家庭网络上共享它并有一个未使用的 Raspberry-Pi (512MB),它肯定不是我拥有的最快的计算机,但也肯定是消耗更少的计算机。
在 LAN 请求上唤醒将是一个不错的功能,并希望 USB 驱动器可以在一段时间不使用时进入睡眠状态。
问题是 IT 使用什么发行版/如何配置它?
filesystems - BTRFS 和 ZFS 快照如何工作?
更具体地说,他们如何设法查看整个子卷并记住它的所有内容(文件、文件大小、文件夹结构),同时将其放入如此少量的数据中。
zfs - 单个池中的两个 ZFS 阵列需要将它们分开
我不确定是否有人可以帮助我,但我会试一试。
目前使用 Ubuntu ZFS 为我提供了一个 ZFS 阵列,它由两个 RaidZ1 阵列、3x3TB 和 3x2TB 磁盘组成。
然而在安装更大的阵列时很愚蠢,我将第二个阵列添加到同一个池中,该池中已经有大量数据(目前称为存储)。我的计划是使用 3x2TB 磁盘作为备份磁盘,以防文件服务器或 ZFS 设置本身出现问题。
所以我真的有两个问题,一个是将所有数据移动到更大的数组中,当它在同一个 zfs 池中时?(当前名称是存储池名称)。那么有没有办法关闭剩余的旧未使用的 3x2TB 阵列,以便可以缩小池?
所以我遇到了一个问题,我不确定如何继续,甚至不知道我正在寻找的东西是否可能,所以任何线索都会很棒。提前致谢
python - 使用 Paramiko 在远程文件服务器上执行 zfs 命令完全为所有用户提供 NFS/zfs
昨天我对 Paramiko 进行了两行代码更改,这不应该(据我所知)产生任何不利影响,然后我们的电话立即开始响起,并且收到了有关用户无法访问的报告的电子邮件他们 NFS 挂载的主目录是 zfs 文件系统。我询问了我的同事们的意见,每个人都很难理解为什么这个改变不仅没有完成我的计划,而且为什么它会为每个人都带来一切。
在使用 Paramiko 执行“zfs create”命令创建新用户的 NFS 主目录后,我使用 Python 的“time.sleep(5)”行给远程系统执行和处理命令的机会(有时特别是如果 NFS 服务器处于压力之下,命令可能需要一两秒才能真正生效)。
事实证明,我们似乎遇到了一个罕见的情况,即 5 秒的延迟是不够的。所以我决定把它从 Python 的“time.sleep(5)”函数改成使用 Paramiko 的“channel.recv_exit_status()”函数来等待退出状态码,这样花费的时间是多少是必需的(不是任意的秒数)。
以下是代码的区别(删除以减少确定 zfs 路径和用户名等平凡的东西):
原始版本:
新版本:
似乎这样做时,“zfs create”命令作为文件服务器上的一个进程存在并且永远不会完成。 ps -eaf | grep "zfs create"
将命令显示为文件服务器上的一个进程,该进程在我 Ctrl+C 退出原始调用程序之前一直存在。最令人惊讶的是,这似乎足以彻底破坏从该服务器导出的所有 zfs 文件系统。在 Ctrl+C 并等待几分钟后,一切恢复正常,人们停止报告 NFS 中断。
这是Paramiko 1.14.1和Python 2.7.8。执行/调用机器是Solaris 11.2,远程文件服务器(进程挂起的地方)是Solaris 11.1。
freebsd - 如何从 FreeBSD(ZFS 和 UFS)上的 inode 获取路径?
Windows (NtQueryObject)、Linux (/proc/self/fd/x) 和 OS X (F_GETPATH) 都有检索当前打开文件描述符路径的方法。据说 FreeBSD 也是通过类似以下代码的方式进行的:
这对几乎所有类型的文件描述符都有效,除了返回空路径的常规文件,至少在 FreeBSD 10 中。我认为这是一个疏忽,因为从检查内核代码来看,返回路径似乎微不足道,尽管可能存在是性能原因不这样做。
procstat 使用与上述相同的 API,因此也只返回除常规文件之外的所有内容的路径。使用 statfs() 我至少可以获得文件挂载点的路径,但是检索挂载点和实际文件之间的路径片段是问题所在。
所以让我问这个问题:是否可以要求 UFS 或 ZFS 从 inode 返回路径片段,也许使用一些神奇的 ioctl 或 sysctl,甚至是一些实用程序库?有问题的代码不需要打开文件描述符的路径,它只需要当前可以找到文件描述符的一些规范路径(这是为了处理跟踪提议的 Boost.AFIO的第三方文件重命名)。
我提前感谢您的帮助。FreeBSD 是该功能的主要操作系统中唯一引人注目的,没有它,编写文件系统竞争安全检测代码是不可能的:(
编辑:我在http://comments.gmane.org/gmane.os.solaris.opensolaris.zfs/38277找到了关于让 ZFS 将 inode 转换为路径的讨论。显然有一个 ZFS_IOC_OBJ_TO_PATH ioctl,但从谷歌判断这不是一个很好的代码路径
linux - 由于 Linux 上的池配置不正确,无法打开 ZFS 池
重新启动后,我的 ZFS 池无法打开我的主池。我得到的确切错误是:“池元数据已损坏,无法打开池”
当我使用 zpool status(从故障恢复控制台)检查 zpool 配置时,它显示的配置都是错误的。配置列出了我刚刚移动到其他驱动器的几个驱动器。
目前 zpool status 的输出如下所示:
我的问题是,为什么重新启动后配置突然恢复到旧状态?(我在重新启动之前检查了 zpool 状态,一切都很好并且没有报告错误)。我如何告诉 ZFS 更改配置以便我可以打开池并取回我的数据?
我正在运行 Fedora 20,内核 3.18.7-100
linux - 使用 Icinga 监控系统检查 Linux 主机上 ZFS 池的状态
我有一个用于备份存储的服务器。它在 Linux 上运行 ZFS,配置了 RAID z2 数据池并通过 Samba 共享。我需要监控 ZFS 文件系统至少能够看到有多少可用空间。
我认为一个简单的 check_disk 插件可以完成这项工作。
我能够从 icinga 服务器 cli 执行命令:
但 GUI 显示以下错误:
它在 check_mk 监控系统下工作,但我们现在正在从 check_mk 迁移。我在这台机器上检查 Icinga 中的其他文件系统(根、引导)没有任何问题。
我会很感激任何建议。
谢谢