像大多数 Linux 系统一样,我的系统很少需要重新启动(如果有的话)。如果不重新启动,如何处理磁盘完整性检查和文件系统维护?您是否安排定期重新启动以运行 fsck?EXT4 CentOS 6.3
我正在测试我对某些代码所做的某些更改是否有效。为此,我需要知道文件系统缓存通常是如何工作的。我假设我们得到的是默认值,因为我们可能没有对此进行任何有趣的调整。
本质上,如果我从我的代码中询问“这个文件是否存在?”,答案会在“x”毫秒后返回。如果我后来又问了几分钟,答案回来了,多快,所以我猜有一些缓存对那里发生的。
如果我想再次测试并刷新缓存,我应该等待多长时间,所以它会再次花费“很长时间”?(我想看看我是否修复了我的网络应用程序中的性能问题,但我只能知道它是否已修复,如果有关文件存在的信息未缓存,因为如果缓存,它确实运行得很快)
我知道这不是最有说服力的问题,答案可能是“视情况而定”,我要求的是理智的默认。换句话说,如果我在 3 小时或 6 小时后再次测试,我可以指望它不会被缓存吗?
据我所知......这是一个 Ubuntu 服务器,内核版本:3.9.3-x86-linode52,Ubuntu 版本:Ubuntu 12.04.3 LTS,托管在 Linode 上。文件系统是ext3
谢谢!
丹尼尔
即使您只有一个物理设备,ZFS 也很有用,到处都写着,因为它会告诉您由于位衰减等导致的数据损坏。
然而,它真的能解决这种腐败问题吗?
换句话说,在单个物理设备上将 ZFS 作为文件系统运行有什么显着的好处吗?
有没有什么简单的方法可以告诉 Linux 在内存中缓存文件目录?
我意识到 Node.Js 和 Apache 将大部分时间花在文件 I/O 上,如果您有很多文件(尤其是对于脚本和模板文件;数据库可以根据需要缓存内容,如果表不是太大)。当然,您应该使用 Squid 或其他加快速度的方法,但这需要大量配置,并且不能轻松自动完成,我的重点是“可部署性”(即使是交互式安装也需要太多您的普通用户。当然,必须考虑所有安全因素(包括对包含的 httpd 配置的自动修补)。)。
另一方面,内存映射文件应该是轻而易举的,因为您真的只想告诉系统:“嘿,将该文件保留在内存中,直到我告诉您删除它或直到重新启动”;或者甚至是一些侵入性的 API,它可以直接将其挂钩到相关的 POSIX 或系统调用中,并且在用户空间中完全做到这一点。有那么简单吗?我似乎找不到一些简单的代码片段或指令集来完成(不适用于 Linux 或 Windows)。
帮助将不胜感激!
假设我要构建一个非常大的 1PB zpool。我将有一个带有 HBA 的主机单元(可能是 4 端口 LSI SAS 卡),并且我可能将 7 个 45 驱动器的 JBOD 连接到主机单元。
使用 raidz3 执行此操作的基本方法是创建 21 个不同的 15 驱动器 raidz3 vdev(7 个 JBOD 中的每一个 3 个 15 驱动器 vdev),然后从所有 21 个这些 raidz3 vdev 中创建一个池。
这将工作得很好。
这里的问题是,如果您因任何原因丢失一个 vdev,您将丢失整个池。这意味着您绝对不会丢失整个 JBOD,因为那会丢失 3 个 vdev。但是,在邮件列表线程中,有人暗中暗示了一种组织磁盘的方法,这样您就可以确实丢失整个 JBOD。他们说:
“使用戴尔 R720 主机,加上一堆双路径连接到几个 LSI SAS 交换机的戴尔 MD1200 JBOD……我们进行了三重奇偶校验,并且我们的 vdev 成员资格设置为我们最多可以丢失三个 JBOD 并且仍然可以功能(每个 JBOD 一个 vdev 成员磁盘)。”
......我不太确定他们在这里说什么。我认为他们的意思是,不是在一个 HBA 上拥有一个 vdev(所有连续的 15 个(或 12 个,或其他)磁盘),您实际上将 vdev 的奇偶校验驱动器拆分为其他 JBOD,这样您可能会丢失任何 jbod 并且您在其他地方仍然有 N-3 驱动器来覆盖该 vdev …
不建议在没有 ECC RAM 的计算机上使用 ZFS。那么,什么是好的选择呢?或者风险是一样的,所以不管我使用什么管理器,如果 RAM 中的一点点翻转都会是同样的问题?
我正在尝试确定是否应该使用 ZFS。如果我不应该,有没有比非 ECC RAM 更安全的方法?
问题在底部。
我有几个 ZFS 文件系统我想使用 ZFS 压缩,但是由于启用压缩只会影响写入文件系统的新数据,我想编写一个可以迁移文件系统的脚本,因此所有数据都被压缩。
这是我的测试尝试
du -h /tmp/dump.txt
zfs create -p tank3/xtest1/fs
cp /tmp/dump.txt /tank3/xtest1/fs
zfs list | grep xtest
zfs create tank3/xtest2
zfs set compression=lzjb tank3/xtest2
zfs inherit compression tank3/xtest2
zfs snapshot tank3/xtest1/fs@snap
zfs send tank3/xtest1/fs@snap | zfs receive tank3/xtest2/fs
zfs get compression tank3/xtest2/fs
zfs list | grep xtest
zfs destroy -r tank3/xtest1
zfs destroy -r tank3/xtest2
echo "test 2"
zfs create tank3/xtest2
zfs set compression=lzjb tank3/xtest2
zfs list | grep xtest
cp /tmp/dump.txt /tank3/xtest2
zfs list …Run Code Online (Sandbox Code Playgroud) 我有几百个文件夹需要迁移到新服务器。我被要求为每个单独的文件夹创建一个 xfs FS 。Ran a du 所以我知道每个文件夹的确切大小和指定的 1G 块大小。
如何计算创建每个虚拟磁盘所需的大小?用 xfs 格式化后,我失去了一些空间。
我的 rhel 盒子上的磁盘快用完了。我试图找到所有的文件/dev/sda2。我们是否有一个命令可以给出文件系统中的所有文件(理想情况下,有大小)/dev/sda2?
/dev/sda2
31297508 28615356 1092292 97% /
mybox > df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 31297508 28615356 1092292 97% /
Run Code Online (Sandbox Code Playgroud) 关于 FreeNAS 是否可以作为虚拟机运行存在很多争论。
官方的立场是可以,但需要额外的配置。
如果我不能保证我可以遵循这些建议,那么与我运行带有 EXT4/XFS 的普通 Linux 系统或带有 UFS 的 FreeBSD 相比,我是否更容易出现故障——尤其是灾难性故障?
具体来说,假设我无法进行 PCI 直通,也无法禁用写入缓存。此外,我将只有一个虚拟磁盘用于存储(由硬件 RAID 支持的 VMDK),因此没有 RAIDZ。显然,会有备份。
编辑:为了澄清我为什么要这样做 - 我需要一个文件服务器,这是我必须使用的基础设施。如果我需要,我可以获得额外的虚拟磁盘来设置 RAIDZ,否则就是这样。我正在寻找一个好的文件服务器解决方案,而 FreeNAS 似乎符合要求。除了关于虚拟化 ZFS 以及如何丢失所有数据和损坏备份的所有这些可怕的警告之外。
我意识到在这个基础设施上部署 FreeNAS 是有风险的。我的问题是:它是否比替代方案风险更大?
EDIT2:我似乎无法传达我的意图。带有 ZFS 的 FreeNAS 是一个坚如磐石的 NAS 平台。但是,从我所读到的内容来看,如果您在标准 VM 配置上运行它,那么使 ZFS 作为裸机文件服务器更可靠的功能似乎实际上可能对您不利。如果是这样,那么在标准 VM 设置上使用不同的文件系统是更好的选择(即没有直接 IO,启用写缓存)。这是一个正确的评估吗?
filesystems ×10
linux ×5
zfs ×5
storage ×3
cache ×2
backup ×1
corruption ×1
ecc ×1
ext4 ×1
file-sharing ×1
freenas ×1
maintenance ×1
memory ×1
mount ×1
rhel6 ×1
sas ×1
solaris ×1
windows ×1