ESXi本身现在已经不支持配置LACP了,要配置必须使用vCenter完成。
分类目录归档:Information techonology
Windows MDM未知错误0x80192efe的解决方案
症状:
设备无法自动enroll MDM,事件管理器里面(Applications and Services Logs -> Microsoft -> Windows -> DeviceManagement-Enterprise-Diagnostics-Provider -> Admin)有如下报错:
1 |
MDM Enroll: Failed (Unknown Win32 Error code: 0x80192efe) |
解决方法:
首先去Azure AD和Intune删掉这台设备(能看到的都删掉)。
然后让Azure AD Sync重新同步一次:在安装有Azure AD Sync的服务器上执行
1 2 |
PS C:\Windows\system32> Import-Module ADSync PS C:\Windows\system32> Start-ADSyncSyncCycle -PolicyType Initial |
等这台机子被重新同步到Azure AD以后,强制重新enroll MDM:在目标设备上执行
1 |
gpupdate /force |
使用PowerDNS自建权威DNS服务器
珍惜你身边自架DNS和邮件服务器的人吧,他们很可能互相都认识。 #晦涩难懂的码农段子
— 𝓧𝓲𝓷 𝓛𝓲 (@delphij) April 27, 2019
设计目标
- PowerDNS权威DNS
- PostgreSQL后端
- 双节点HA
- 管理面板
迁移Proxmox VE(KVM)虚拟机到VMWare ESXi
迁移前的准备工作
- 记录下VMID和VM信息的对应关系——Proxmox VE关机以后这些数据很难找到
- 关闭所有虚拟机
- 把所有LVM类型的存储上的硬盘迁移到local类型存储上,以便提取文件
如果你像我一样面前摆着一块离线的Proxmox VE硬盘,想知道VMID和虚拟机名的对应关系,那么可以前往/var/lib/pve-cluster/config.db
,用SQLite 3打开。
转换磁盘格式(第一遍)
你可以用Proxmox VE面板的Move Disk功能直接把硬盘转换成 VMDK 格式。或者如果你喜欢手动操作的话,在/var/lib/vz/images/{VMID}
文件夹下找到对应的磁盘镜像文件,然后用qemu-img
做转换:
1 |
qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 100/vm-100-disk-0.qcow2 vm-100-disk-0.vmdk |
(虽然这里写了adapter_type=lsilogic
,但是和之后具体使用什么虚拟adapter没有直接关系。)
如果遇到以下bug,那么请更新qemu-utils
:
1 |
error while converting vmdk: compat6 cannot be enabled with hwversion set |
传输镜像到ESXi
用网页管理面板或者打开SSH服务以后用SCP传输都行,SCP速度比网页上传快得多。目标位置:/vmfs/volumes/{your_disk_name}/
注意qemu-img转换出来的vmdk是thick provision的,请确保目标存储设备上有足够空间。
转换磁盘格式(第二遍)
从普通vmdk转换成flat的vmdk以能被ESXi使用。
1 |
vmkfstools -d thin -i origin.vmdk converted.vmdk |
注意这样转换出来的是两个文件:一个converted.vmdk
是元数据,一个converted-flat.vmdk
是硬盘数据,二者必须保持一致的命名,如果要移动必须一起移动。不要自己给硬盘文件取名的时候在后面加-flat
,这会导致问题。
后续设置
Windows
Windows自带VMWare SATA和SCSI控制器的驱动。
如果开了Secure Boot以后开机自动进recovery,使用以下命令解决:
1 |
bcdedit /set recoveryenabled no |
(PowerShell下面需要加引号。)
如果迁移前后网卡MAC地址相同的话,不需要重新配置IP地址。但是vmxnet3网卡驱动需要单独安装。
Linux
如果initramfs里面没有打包SATA/SCSI控制器驱动,第一次启动可能需要使用IDE硬盘然后手动重新生成initramfs。
配置了静态IP的虚拟机可能需要重新配置,因为网卡名变了。
参考:
Proxmox VE中虚拟机非对等路由出站数据包被丢的情况分析
有客户反应,在Proxmox VE中的虚拟机,当一条进站TCP连接的进站方向路由经过隧道,而出站方向是直接走默认路由时,出站的数据包被丢。首先我们怀疑iptables:
1 2 3 4 5 6 7 |
# iptables-save | grep INVALID -A PVEFW-Drop -m conntrack --ctstate INVALID -j DROP -A PVEFW-FWBR-IN -m conntrack --ctstate INVALID,NEW -j PVEFW-smurfs -A PVEFW-HOST-IN -m conntrack --ctstate INVALID -j DROP -A PVEFW-HOST-IN -m conntrack --ctstate INVALID,NEW -j PVEFW-smurfs -A PVEFW-HOST-OUT -m conntrack --ctstate INVALID -j DROP -A PVEFW-Reject -m conntrack --ctstate INVALID -j DROP |
看来确实配置了conntrack规则,丢掉没有正确建立连接的数据包。但是我们的虚拟机出去到上游路由器是同一个二层,数据包为什么会被丢呢?这就要说到Linux的bridge中有个功能是将所有经过bridge的数据包发给iptables过滤。让我们看看这个功能是否开启:
1 2 |
# sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-iptables = 1 |
果然是开启的。Proxmox VE需要实现VM上的ipset,这个功能是必需的。
那么要解决这一问题,我们只能关闭Proxmox VE防火墙的丢弃INVALID包功能了。根据文档,新建或编辑/etc/pve/nodes/<nodename>/host.fw
文件:
1 2 3 |
[OPTIONS] nf_conntrack_allow_invalid: 1 |
然后重新启动防火墙服务以更新规则:
1 2 |
pve-firewall stop pve-firewall start |
参考: