我多次听说 ZFS 快照是“免费的”,因为 ZFS 的写时复制设计快照不占用任何磁盘空间,除非数据发生更改,然后才将空间使用限制在实际的块改变了。Stack Exchange 上的许多答案以及整个互联网上的帖子都提出了这种说法或说使用的空间“可以忽略不计”
这些陈述的准确性如何?ZFS 快照实际使用了多少磁盘空间?
我多次听说 ZFS 快照是“免费的”,因为 ZFS 的写时复制设计快照不占用任何磁盘空间,除非数据发生更改,然后才将空间使用限制在实际的块改变了。Stack Exchange 上的许多答案以及整个互联网上的帖子都提出了这种说法或说使用的空间“可以忽略不计”
这些陈述的准确性如何?ZFS 快照实际使用了多少磁盘空间?
我的组织有一个内部证书颁发机构 (CA),我们已经生成了许多内部证书并安装在机器上。
我正在设置一个FreeIPA LDAP/Kerberos 服务器,在初始安装后,它生成了它自己的内部 CA,我可以在 Web 界面中看到它。
我想与现有组织的 CA 签署 FreeIPA CA,以建立证书信任链。我正在遵循FreeIPA 手动更新外部签名 IdM CA 证书的说明,我相信这涵盖了使用外部 CA 签署 FreeIPA CA。这产生了一个 CSR,我使用现有的 CA 签署了该 CSR 以产生一个新的签署的 FreeIPA CA。
但是,我在尝试使用该ipa-cacert-manage renew --external-cert-file
命令重新导入新签名的 CA + 证书链时遇到了困难。当我按照说明运行它时,我收到一个错误,即 CA 证书链不完整,因为它缺少链中的一个证书:
[root@lockandkey ~]# ipa-cacert-manage renew --external-cert-file=/tmp/LockAndKey_FreeIPA_CA.crt --external-cert-file=/tmp/dfca.crt --external-cert-file=/tmp/jgca.crt
Importing the renewed CA certificate, please wait
CA certificate chain in /tmp/LockAndKey_FreeIPA_CA.crt,
/tmp/dfca.crt, /tmp/jgca.crt is incomplete: missing certificate with subject
'[email protected],CN=ca.digitalfruition.com,OU=Internal CA,O=Digital Fruition\, LLC,L=Newland,ST=North Carolina,C=US'
The ipa-cacert-manage command failed.
但是,该证书是在其中一个--external-cert-file
论点中提供的。我还尝试了一个“CA Bundle”文件(一个文件中有多个证书),结果是一样的。
进一步挖掘,问题实际上似乎来自load_external_cert
installutils.py
trust_chain = list(reversed(nssdb.get_trust_chain(ca_nickname)))
ca_cert_chain = []
for nickname in trust_chain:
cert, subject, issuer = cache[nickname]
ca_cert_chain.append(cert)
if subject == issuer:
break
else:
raise ScriptError(
"CA certificate chain in %s is incomplete: "
"missing certificate with subject '%s'" %
(", ".join(files), issuer))
在详细模式下运行ipa-cacert-manage renew
表明它确实找到了链中的所有证书,但是当它到达 [艺术trust_chain
形成的地方,trust_chain
仅包含 FreeIPA 证书而不包含链的其余部分。我能够通过展开命令并在终端中重放它们来重现场景。这是它崩溃的地方:
FreeIPAipa-cacert-manage renew
正在使用该选项调用certutil
“打印证书链” -O
,如下所示:
[root@lockandkey ~]# /usr/bin/certutil -d dbm:/tmp/tmppTphXX -O -n 'CN=Certificate Authority,O=FARCRY.SITEPALETTE.COM' -f /tmp/tmppTphXX/pwdfile.txt
"CN=Certificate Authority,O=FARCRY.SITEPALETTE.COM" [CN=Certificate Authority,O=FARCRY.SITEPALETTE.COM]
但是certutil
,即使证书由信任库中的另一个 CA 签名,也不会打印整个链。当我在中间 CA 上调用它时,您可以看到它certutil
确实显示了正确的链:
[root@lockandkey ~]# /usr/bin/certutil -d dbm:/tmp/tmppTphXX -O -n '[email protected],CN=ca.digitalfruition.com,OU=Internal CA,O=Digital Fruition\, LLC,L=Newland,ST=North Carolina,C=US' -f /tmp/tmppTphXX/pwdfile.txt
"[email protected],CN=Joshua Gitlin,OU=ca.josh.gitlin.name,O=Personal Certificate Authority,L=Newland,ST=North Carolina,C=US" [[email protected],CN=Joshua Gitlin,OU=ca.josh.gitlin.name,O=Personal Certificate Authority,L=Newland,ST=North Carolina,C=US]
"[email protected],CN=ca.digitalfruition.com,OU=Internal CA,O=Digital Fruition\, LLC,L=Newland,ST=North Carolina,C=US" [[email protected],CN=ca.digitalfruition.com,OU=Internal CA,O="Digital Fruition, LLC",L=Newland,ST=North Carolina,C=US]
所以我相信这是一个问题certutil
,但这是我到目前为止所得到的。
进一步调试我已经决定由于某种原因certutil
不喜欢我生成的证书,所以这可能是该 CSR 上的问题。其他证书验证良好...
难道我做错了什么?与另一个内部 CA 签署 FreeIPA 证书颁发机构的正确方法是什么?
昨天在 FreeBSD 10.3-RELEASE-p20 系统上尝试替换 zpool 中的磁盘时,zfs 文件系统在发出zpool detach srv gpt/d0
命令后变得无响应。服务器充当 NFS 服务器、WebDAV 服务器和 iSCSI 目标,并且在执行zpool detach
所有 iSCSI 客户端后开始出现超时。
这显然导致整个 ZFS 子系统锁定。zpool status
或任何其他命令只会挂起并且不会产生任何输出。中没有显示任何内容dmesg
,top
也没有显示任何消耗大量 CPU 的进程。最后,我们无法找到任何解决方案并被迫重新启动系统(包括使用硬重新启动,因为在停止所有服务后软重新启动未能重新启动系统)以使 iSCSI 目标重新联机。
是什么导致了这种情况,我们如何避免这种情况?zpool detach
在 FreeBSD 下更换 ZFS 池中的设备时,我们如何防止挂起?
在 VMWare ESXi / vSphere 中,您可以将磁盘或 LUN 标记为 "Flash",表示该磁盘是 SSD(或 LUN 是 SSD/flash storage backed)
执行此操作时,您会收到以下警告:
将 HDD 磁盘标记为闪存磁盘可能会降低使用它们的数据存储和服务的性能。仅当您确定这些磁盘是闪存盘时,才将这些磁盘标记为闪存盘。
这个警告让我很好奇:将 LUN 标记为闪存实际上有什么作用?它如何改变 VMware 的行为/性能?它怎么会恶化性能,IE在低级技术上有什么变化?
我有两个通过点对点隧道连接的 NAT 网络,如下所示:
| Machine A | | Machine B |
| 1.2.3.4 |<-10.101.3.2-------tun------10.101.3.1-> | 4.5.6.7 |
| 10.110.0.1 | | 10.100.1.1 |
-----+-------- --------+-----
| |
[ 10.110.1.0/24 net ] [ 10.100.0.0/16 net]
机器 A 有一个公共 IPeth0
和一个私有 IP 10.110.1.1
,vmbr0
并通过 ptp VPN 通过互联网与机器 B 连接,机器 B 有一个公共 IPen0
和一个私有 IP en1
(以及许多其他私有网络)
两个 LAN 上都有客户端使用带有两个公共 IP 的 NAT。这工作正常。(使用机器 A 上的 iptables 和机器 B 上的 pfSense 完成)
路由设置为机器 A 可以 ping 机器 B 的私有 ip 10.100.1.1
,并且可以访问网络 B 上的所有主机10.100.0.0/16
。同样,机器 B(以及网络 B 上的所有主机)可以访问机器 A,以及网络 A 上的所有主机10.110.1.0/16
但是,网络 A 上的主机无法与网络 B 上的主机建立连接(EG10.110.1.2
无法 ping 或 SSH 到10.100.10.50
)
我怀疑这与 A 上的 iptables 设置有关,因为 SSH from 10.100.10.50
to10.110.1.2
可以工作,但我不能然后反向 SSH。这对我说,我的 iptables FILTER 规则RELATED,ESTABLISHED
有效,但不知何故,我怀疑机器 A 正在尝试 NAT 并eth0
用于新连接。
我在所有我认为需要的地方添加了ACCEPT destination 10.100.0.0/16
iptables 规则,然后即使在我认为当事情不工作时不需要它们的地方,仍然无法从网络 A 到网络 B 的传出连接正常工作。
如何使用 iptables 通过点对点隧道正确连接两个经过 NAT 的专用网络?
附加信息:
机器 A 上的 iptables:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.100.0.0/16
DNAT tcp -- anywhere anywhere tcp dpt:http to:10.110.1.3:80
DNAT tcp -- anywhere anywhere tcp dpt:https to:10.110.1.3:443
DNAT tcp -- anywhere anywhere tcp dpt:xmpp-client to:10.110.1.4:5222
DNAT tcp -- anywhere anywhere tcp dpt:5281 to:10.110.1.4:5281
DNAT tcp -- anywhere anywhere tcp dpt:64738 to:10.110.1.4:64738
DNAT udp -- anywhere anywhere udp dpt:64738 to:10.110.1.4:64738
DNAT udp -- anywhere anywhere udp multiport dports isakmp,ipsec-nat-t to:10.110.1.10:1194
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.100.0.0/16
ACCEPT all -- anywhere 10.101.0.0/16
MASQUERADE all -- 10.110.1.0/24 anywhere
MASQUERADE all -- 10.110.1.0/24 anywhere
MASQUERADE all -- 10.110.1.0/24 anywhere
我在内核 2.6.32-431.11.2.el6.x86_64 下的 Linux 上有一个 ZFS zpool,它有一个 vdev。vdev 是一个 SAN 设备。我扩展了 SAN 的大小,尽管 zpool 已autoexpand
设置为on
,即使在重新启动机器、导出/导入池并使用zpool online -e
之后,我也无法扩展池。我确信 vdev 更大,因为fdisk
它显示它已从 215GiB 增加到 250GiB。这是我所做的一个示例:
[root@timestandstill ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 214G 207G 7.49G 96% 1.00x ONLINE -
[root@timestandstill ~]# zpool import -d /dev/disk/by-id/
pool: dfbackup
id: 12129781223864362535
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
dfbackup ONLINE
virtio-sbs-XLPH83 ONLINE
[root@timestandstill ~]# zpool import -d /dev/disk/by-id/ dfbackup
[root@timestandstill ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 214G 207G 7.49G 96% 1.00x ONLINE -
venuebackup 248G 244G 3.87G 98% 1.00x ONLINE -
[root@timestandstill ~]# zpool get autoexpand dfbackup
NAME PROPERTY VALUE SOURCE
dfbackup autoexpand on local
[root@timestandstill ~]# zpool set autoexpand=off dfbackup
[root@timestandstill ~]# zpool set autoexpand=on dfbackup
[root@timestandstill ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 214G 207G 7.49G 96% 1.00x ONLINE -
venuebackup 248G 244G 3.87G 98% 1.00x ONLINE -
[root@timestandstill ~]# zpool status -v dfbackup
pool: dfbackup
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
dfbackup ONLINE 0 0 0
virtio-sbs-XLPH83 ONLINE 0 0 0
errors: No known data errors
[root@timestandstill ~]# fdisk /dev/disk/by-id/virtio-sbs-XLPH83
WARNING: GPT (GUID Partition Table) detected on '/dev/disk/by-id/virtio-sbs-XLPH83'! The util fdisk doesn't support GPT. Use GNU Parted.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/disk/by-id/virtio-sbs-XLPH83: 268.4 GB, 268435456000 bytes
256 heads, 63 sectors/track, 32507 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/disk/by-id/virtio-sbs-XLPH83-part1 1 27957 225443839+ ee GPT
Command (m for help): q
[root@timestandstill ~]# zpool online -e dfbackup /dev/disk/by-id/virtio-sbs-XLPH83
[root@timestandstill ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 214G 207G 7.49G 96% 1.00x ONLINE -
venuebackup 248G 244G 3.87G 98% 1.00x ONLINE -
[root@timestandstill ~]# zpool status -v dfbackup
pool: dfbackup
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
dfbackup ONLINE 0 0 0
virtio-sbs-XLPH83 ONLINE 0 0 0
errors: No known data errors
如何扩展这个 zpool?
我已经阅读了很多关于规划 ZFS 重复数据删除的 RAM 要求的信息。我刚刚升级了我的文件服务器的 RAM 以支持 ZFS zvols 上的一些非常有限的重复数据删除,我无法在其上使用快照和克隆(因为它们被格式化为不同的文件系统的 zvols)但将包含很多重复的数据。
我想确保我添加的新 RAM 将支持我打算执行的有限重复数据删除。在计划中,我的数字看起来不错,但我想确定。
如何知道我的实时系统上 ZFS 重复数据删除表 (DDT) 的当前大小?我阅读了这个邮件列表线程,但我不清楚他们是如何获得这些数字的。(zdb tank
如有必要,我可以发布输出,但我正在寻找可以帮助其他人的通用答案)
发送到我的域的电子邮件会定期延迟。我在 Exim 的日志文件中看到/var/log/exim_mainlog
如下消息:
2013-05-16 18:58:18 1Ud77q-0002ns-Rd <= [email protected] U=ssupport P=local S=4350 [email protected] T="Some Subject" for [email protected]
2013-05-16 18:58:18 cwd=/var/spool/exim 3 args: /usr/sbin/exim -Mc 1Ud77q-0002ns-Rd
2013-05-16 18:58:18 1Ud77q-0002ns-Rd == [email protected] R=queueonly defer (-1): domain or user is in the queue only list. Message queued
我在/etc/exim.conf
以下路由器配置中发现:
queueonly:
driver = redirect
domains = +queue_domains
condition = ${if eq {$domain}{$primary_hostname}{${if eq {${lookup passwd{$local_part}{$value}}}{}{1}{0}}}{1}}
allow_defer
data = :defer: domain or user is in the queue only list. Message queued
这显然是domain or user is in the queue only list. Message queued
消息的来源。如果域列在中,看起来这将运行/etc/queuedomains
我不熟悉该文件/etc/queuedomains
。什么进程管理这个文件?Webhost Manager 中是否有控制列出哪些域的设置/etc/queuedomains
?
我怎样才能阻止domain or user is in the queue only list. Message queued
我的特定域的 Exim 消息?
更新:经过进一步调查,我收到消息“域或用户仅在队列列表中。消息已排队”,即使/etc/queuedomains
是空的。我正在观看 exim_mainlog,当我看到“域或用户在仅队列列表中。消息已排队”时,我cat /etc/queuedomains
在第二个终端中执行了一个,它是 0 字节。所以这里有其他因素在起作用。
我有两台运行 FreeBSD 变体的服务器:一台是 pfSense 路由器,一台是 FreeNAS 8 服务器。这两个服务器都运行 SNMP,我正在使用第三个 Cacti 服务器收集和绘制它们的信息。
来自 pfSense 服务器和 FreeNAS 服务器的 SNMP 数据不包括内存使用、CPU 使用和平均负载。
pfSense 服务器的流量图看起来不错。来自 FreeNAS 服务器的磁盘使用报告看起来很漂亮。我只是没有获得有关内存使用情况、CPU 使用情况或平均负载的任何数据。我知道这两个服务器都应该能够提供这些数据,因为在 pfSense 和 freeNAS 网络管理员中我可以查看图表。但我更愿意将所有图表都放在 Cacti 中以便于管理。
如何让我的 pfSense 服务器通过 SNMP 提供内存使用情况、CPU 使用情况和负载平均数据?我怎样才能让我的 FreeNAS 服务器通过 SNMP 提供内存使用、CPU 使用和负载平均数据?我假设相同的过程适用于两台服务器。
我有一个 VMware ESXi 4.1 服务器,我最近在其中添加了 2x1TB SATA 驱动器。该机器运行托管 ZFS 文件系统的NexentaStor Community VM。在添加新驱动器之前,所有 ZFS zpool 都驻留在虚拟磁盘(VMDK 文件)中,该磁盘位于硬件 RAID10 上服务器的 Vmware 数据存储上。
新的 SATA 驱动器没有硬件冗余,所以我的目标是将它们直接连接到 NexentaStor VM 并从中创建一个 RAID1 zpool。
我按照这些说明为新的 SATA 驱动器使用创建了两个物理 RDM 文件vmkfstools -z /vmfs/devices/disks/idnumber RDM1.vmdk -a lsilogic
将两个 RDM 磁盘添加到 VM 并在其上创建 raidz1 zpool 后,我开始将数据复制到 zpool。池已离线,我被告知有数千个校验和错误。
我在网上搜索了一下,发现很多人都在抱怨同样的情况。(示例)此后我放弃了使用 RDM,并创建了两个数据存储和两个 930GB VMDK 文件,我将把它们放在 RAIDz1 中。但是我想知道我哪里出错了。网上很多人说他们有这个配置。
我使用 RDM 而不是 VMDK 的目标是:
我曾计划在我将在本周晚些时候设置的全新 ESXi 5.1 服务器中使用相同的设置。在那种情况下,#4 特别重要,因为我想将现有的 zpool 添加到新的 VM。为什么我会收到这些校验和错误?它与 ESXi 4.1 有关吗?我做错了什么吗?
编辑:我已经使用 VMware ESXi 5.1 创建了相同的设置,到目前为止没有任何问题。我将对此进行极其彻底的测试,但到目前为止,这似乎是 ESXi 4.1 问题。
我正在尝试将我的文件服务器 (FreeNAS 8.0.1 / 8.2-RELEASE-p7) 与我的 Mac OS X 10.7 Lion Directory Server 的 Open Directory 连接...我知道 Mac OS X 提供 LDAP 服务,其他服务器可以通过该服务进行身份验证反对,但我很难让 FreeNAS 对 Mac OS X Open Directory 进行身份验证。
如何将我的 FreeNAS 文件服务器连接到我的 Mac OS X 目录服务器?
我有一个 ZFS zpool,在镜像配置中有两个磁盘,da0
并且da1
. da1
失败了,所以我将其替换为da2
使用
zpool replace BearCow da1 da2
这运行了几个小时,在此期间zpool status
显示阵列正在重新镀银。完成后,zpool status
显示重新镀银已完成,但阵列仍然退化...
我尝试了 azpool scrub
和 a zpool clear
,但数组仍然显示为降级:
[root@chef] ~# zpool status BearCow
pool: BearCow
state: DEGRADED
scrub: scrub completed after 0h20m with 0 errors on Tue Oct 9 16:13:27 2012
config:
NAME STATE READ WRITE CKSUM
BearCow DEGRADED 0 0 0
mirror DEGRADED 0 0 0
da0 ONLINE 0 0 0
replacing DEGRADED 0 0 0
da1 OFFLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors
我不能zpool replace BearCow da1 da2
再这样了,因为我da2
已经是 BearCow 的成员了……
这是运行 ZFS 池版本 15 的 FreeBSD (FreeNAS)。
如何让我的阵列再次显示为健康状态?
我的 VMWare ESXi 4 服务器似乎受到拒绝服务攻击。我在服务器上丢失了大量数据包 (60+%),并且几乎无法在主机上运行的 VM 上加载任何服务。
我安装了 Cacti,但由于受到攻击而无法加载它。我可以通过 SSH 连接到 VMware 主机。我可以运行任何命令来确定攻击的来源,或者阻止除我之外的所有 IP 地址,以便我可以再次加载 Cacti 以进行故障排除吗?
我试过esxcli network firewall get
但收到:Unknown Object firewall in namespace network
所有具有网络访问权限的 VM 都直接连接到 Internet,也就是说,在面向 Internet 的 VM 和路由器之间有一个虚拟交换机。
编辑: MDMarra 有一个好主意:禁用虚拟机所在的 vswitch。但是我无法让 vSphere 控制台响应足够长的时间来执行此操作。这可以通过 SSH 完成吗?
我正在使用 Virtualmin 并将其设置为让 Postfix 使用 ClamAV 扫描传入的电子邮件(使用clamdscan
)并删除任何包含病毒的电子邮件。但是,当我通过电子邮件向自己发送 EICAR 测试字符串时,它通过了就好了。我知道 ClamAV 会将此文件报告为病毒。我该如何解决这个问题/可能出了什么问题?
Linux下将文件标记为“锁定”/以防止对其进行任何更改的命令是什么?
我不是在谈论chmod
。有一个可以设置的属性(这个名字现在让我忘记了),它甚至可以防止以 root 身份运行的进程更改文件。这叫什么,我该如何设置?
我忘记了这叫什么,并且不记得网站和谷歌上的搜索功能的名称让我失望。
我需要编写一些脚本来更改 Apache conf 文件,即添加/更新 VirtualHosts。我计划在 Ruby 中执行此操作。在我自己编写之前,是否有任何脚本/rubygems 允许 Ruby 解析/修改 Apache conf 文件,特别是<VirtualHost>
指令?
我设法在 cPanel/WHM 下很好地配置它,但在 Virtualmin 下配置它时遇到问题:当我在 Virtualmin 中创建一个新的虚拟服务器时,我希望它自动创建一个带有共享通配符 SSL 域的子域的 Apache。例如,如果我为 some.example.com 创建一个虚拟服务器,我需要两个VirtualHost:
<VirtualHost 1.2.3.4:80>
ServerName some.example.com
ServerAlias www.some.example.com some_example.shared-ssl-domain.com
...
</VirtualHost>
<VirtualHost 1.2.3.4:443>
ServerName some_example.shared-ssl-domain.com
...
SSLEngine on
SSLCertificateFile /path/to/shared-ssl-domain.com.crt
SSLCertificateKeyFile //path/to/shared-ssl-domain.com.key
SSLCACertificateFile /path/to/shared-ssl-domain.com.cabundle
</VirtualHost>
在 cPanel/WHM 中,我能够轻松做到这一点,因为模板文件包含<VirtualHost>
and</VirtualHost>
指令。但是 Virtualmin 的模板现在可以了。有什么办法可以设置 Virtualmin 来做我想做的事吗?
我正在使用 Virtualmin 和 Postfix 设置 CentOS 服务器,并且我正在尝试使用 LDAP 来存储 unix 用户、组、Postfix 别名和虚拟域。我正在按照Webmin 网站的说明进行操作。
我创建了一个 LDAP 域并将 Postfix 配置为从 LDAP 获取别名和虚拟域,但为了做到这一点,我必须配置 postfix 以使用主 LDAP 帐户进行身份验证,cn=Manager,dc=mydomain,dc=com
. 这似乎是一个糟糕的主意,因为该帐户可以访问用户和组,而 postfix 不需要访问。
如何为 Postfix 创建一个新的 LDAP 帐户,该帐户只能访问 Postfix 所需的 LDAP 树?