我正在考虑从 ext3 迁移到 ZFS,以便在我的 Debian Linux 主机上使用ZFS on Linux进行数据存储。我真正想要的 ZFS 的一个杀手级功能是它的数据完整性保证。随着我的存储需求增加而微不足道地增加存储的能力也是我所期待的。
但是,我还在同一台主机上运行了几个 VM。(尽管通常情况下,在我的情况下,主机上任何时候都只有一个 VM 运行。)
考虑到 ZFS 的数据校验和和写时复制行为,以及 VM 磁盘映像是相对较大的文件(我的主 VM 的磁盘映像文件目前为 31 GB)这一事实,这样的 VM 来宾内部的性能影响是什么?迁移?我可以采取哪些步骤来减少可能的负面性能影响?
如有必要,我可以在 VM 磁盘映像上使用较少的数据完整性保证(我不会在任何 VM 内做任何真正重要的事情),并且可以轻松地将它们与文件系统的其余部分分开,但如果我不这样做会很好不必(甚至有选择地)关闭最让我想迁移到不同文件系统的功能。
对于工作站级系统而言,硬件非常强大,但与高端服务器(32 GB RAM,很少使用超过 10 GB,6 核 3.3 GHz CPU,目前可用 2.6 TB磁盘空间df总计约 1.1 TB 可用空间;迁移到 ZFS 可能会增加一些可用空间),我不打算运行重复数据删除(因为在我的情况下打开重复数据删除不会增加太多)。计划是从 JBOD 配置开始(显然有良好的备份),但如果条件允许,我最终可能会转向双向镜像设置。
我想使用 cron 来安排我的 ZFS 池的定期清理,并在清理完成后的相当短的时间内,通过电子邮件将状态报告发送给我自己。这样做的目的是发现任何问题,而无需手动查找它们(推而不是拉)。
第一部分很简单:只需设置一个 cron 作业,以zpool scrub $POOL在我的特定情况下合理的时间间隔以 root身份运行。
第二部分,我不太确定该怎么做。zpool scrub立即返回,然后系统在后台运行清理(如果清理是由管理员从终端启动的,这当然是理想的行为)。zpool status给我一个状态报告并退出(在擦洗运行时退出代码为 0;它还没有完成,所以我不知道退出状态在完成后是否会改变,但我对此表示怀疑)。为 zpool-s清理记录的唯一参数是“停止清理”。
主要问题是检测从刷洗到完成刷洗的状态变化。鉴于此,其余的应该就位。
理想情况下,我想告诉zpool scrub在擦洗完成之前不要返回,但我看不出有任何方法可以做到这一点。(这会使简单的 cron 变得几乎太容易了zpool scrub --wait-until-done $POOL; zpool status $POOL。)
如果做不到这一点,我想询问系统当前是否正在进行清理,最好以不会因升级或配置更改而中断的方式冒太大风险,以便我可以根据之前是否正在运行擦洗已完成(通过在擦洗状态从擦洗变为未擦洗时执行 zpool 状态)。
这个特殊的设置是针对工作站系统的,所以虽然像 Nagios 这样的监控工具可能有可以解决这个问题的插件,但是仅仅为这个任务安装这样一个工具感觉有点过头了。有人可以建议解决该问题的技术含量较低的解决方案吗?
这个问题更像是一个数学问题而不是一个服务器问题,但它与服务器密切相关。
如果我有一台服务器,我可以保证 95% 的正常运行时间,并且我将该服务器放在 2 个集群中,那么正常运行时间是多少?现在,假设我也这样做,但我将其设为 3 个集群?
让我们不要考虑诸如单点故障之类的事情,而只关注此处的数学。使这有点复杂的一件事是,例如,如果我有 2 个服务器,那么它们都关闭的可能性是 2^2,所以是 1/4;或者 3 是 2^3,所以 1/8。考虑到我对这些服务器中的每一个都有 5% 的停机时间,总平均值会是那 5% 的 1/8 吗?
你会如何计算这样的事情?
我已经在我控制的服务器上安装了 Debian 打包的 fail2ban。由于我之前有一些失败正则表达式,因此我将它们放入本地过滤器定义文件中,因此它们也会被考虑在内。因此,我最终得到了 /etc/fail2ban/filter.d/sshd.conf 和 /etc/fail2ban/filter.d/sshd.local。这是推荐的设置方式,它似乎工作得很好。
但是,在 .local 文件中,我实际上是从 .conf 文件中替换了整个失败正则表达式列表。文档似乎没有表明有任何其他方法可以做到这一点,为了让它工作,我只是将发行版提供的 .conf 文件复制到 .local 文件并进行了一些添加。
如果我能简单地修改列表,从上游和 Debian 维护者的工作中受益,以便及时了解发行版维护的日志条目过滤器正则表达式的变化,那就太好了。
我能想到的唯一真正的解决方法是实际创建两个 jail,一个使用分发提供的配置,另一个使用我自己的配置。这似乎具有(相当重要的)缺点,即它们被视为独立的监狱(您会期望这样的设置)。
当然,我不可能是唯一一个想要将我自己的几个失败正则表达式添加到已经存在的集合中的人,并且将维护的麻烦降到最低。
是否可以通过站点本地或主机本地文件修改fail2ban 过滤器定义中的 failregex 和 ignoreregex 列表,而无需对相应的全局或分发提供的文件进行任何更改?如果是,那该怎么做呢?
我是一名网络开发人员。我在硬件方面没有太多经验。出于这个原因,我使用托管服务器。
今天早上,我们设置中的一个驱动器出现故障。但是,整个网站都崩溃了。我问我的网络主机发生了什么,他回答说硬盘出现故障,RAID 控制器无法正常工作。阵列设置为 RAID 4。
你们以前见过吗?是否可以?
感谢您对这些家伙的任何帮助。我需要知道我的网络主机是否对我诚实。
对于 IPv4,几乎可以肯定的是,除非有某些特定需求需要基于 IP 的虚拟主机,否则应该进行基于名称的虚拟主机以避免不必要地耗尽地址空间。
然而,鉴于对于 IPv6,当前的建议是即使是主站点也应该接收多个 /64s 的地址空间,在特定情况下缺乏操作实践会使其变得困难或禁止,将不同的 IPv6 地址分配给不同的 IPv6 地址是否不合理?每个网站,即使这些网站共同托管在同一台服务器上?
假设某种良好的地址管理基础设施已经到位,可以处理地址分配,那么支持或反对为每个网站提供自己的 IPv6 地址的好论据是什么?
为完整起见,RFC 中上述引用部分的相关部分是(强调我的;请注意,这仅用于比较,并且此引用并未提出有关家庭网络的问题):
同时,给主站点一个单一的 /64 可能很诱人,因为与今天的 IPv4 实践相比,这已经是更多的地址空间。然而,这排除了即使是主站点也会增长以支持未来多个子网的期望。因此,默认情况下,强烈希望即使是主站点也能获得多个子网的空间。因此,本文档仍然建议为主站点提供多于一个 /64 的位置,但也不建议为每个主站点提供一个 /48。
同样为了完整性:相关网络还没有任何 IPv6 分配,我不知道可能进行的分配的确切大小,但我希望在接下来的 6-12 年内设置和运行 IPv6几个月,并希望提前计划一下,以便在发生这种情况时做好准备。
我们有几个主机,其中有一个相同的热备用主机,该主机已打补丁和更新,因此非常接近具有相同的软件和配置。万一出现故障,网络电缆会被切换,DHCP 服务器会更新为新的 MAC 地址。这是最好的情况,因为通常还有更多需要修改的地方。
我觉得有一个热备主机很浪费电,浪费时间去维护它,而且因为在故障转移的情况下需要修改配置,所以我想问以下问题:
热备用主机是否过时,现在有更好的方法吗?
与其使用热备用主机,不如将其设为冷备用,将硬盘驱动器放入主主机并将 RAID 从 1 更改为 1+1 是否有意义。如果出现故障,我所要做的就是更换网线、更新 DHCP 服务器、取出硬盘驱动器并将它们插入冷备用并打开电源。在我看来,好处是 2x2 磁盘始终同步,因此在故障转移时只需要维护一台主机并且不需要更改配置。
这是一个好主意吗?
我的印象是,如果在从 ZFS 池读取期间发生 I/O 错误,则会发生两件事:
我的镜像设置中的一个磁盘似乎出现了坏扇区。这本身并不令人担忧;这样的事情发生了,这就是为什么我有冗余(准确地说是双向镜像)。每次我清理池或读取特定目录中的文件时(我还没有费心确定哪个文件有问题),dmesg 中会弹出以下内容,显然具有不同的时间戳:
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: [302621.236578] ata6.00: cmd 60/a8:78:18:5a:12/00:00:5c:01:00/40 tag 15 ncq 86016 in
Nov 1 09:54:26 yeono kernel: [302621.236580] res 41/40:a8:18:5a:12/00:00:5c:01:00/00 Emask 0x409 …Run Code Online (Sandbox Code Playgroud) 我已经使用SSL Labs 的 SSL Server Test来测试 HTTP 服务器的 SSL 设置,但它不支持其他使用 SSL 的情况,例如 IMAP。是否有针对使用 SSL 的非 HTTP 服务器的等效详细测试?我已经使用SSL Shopper 的 SSL Checker进行了基本测试,但它没有详细介绍它是否正确配置了 Perfect Forward Secrecy 等。
我有一个私有 Apache 服务器,只能从我的 LAN 端口 443 访问,并带有 StartSSL 证书。
由于 Firefox 51 发布,我无法再连接到它,因为StartSSL 根证书已从信任库中删除。
我考虑过迁移到 Let's Encrypt,但这似乎需要面向公众的 HTTP 服务器。在我的情况下可以使用 Let's Encrypt 吗?
如果可能的话,我宁愿避免为 SSL 证书付费。
linux ×3
zfs ×3
debian ×2
fail2ban ×1
failover ×1
hardware ×1
ipv6 ×1
lets-encrypt ×1
monitoring ×1
raid ×1
redundancy ×1
ssl ×1
tls ×1
virtualbox ×1
web ×1
web-hosting ×1
zfsonlinux ×1