因为架设在虚拟机上的 Plex Server 需要 Intel UHD 显卡正确驱动才能使用硬件转码,所以服务器上插了一块亮机卡,然后在 ESXi 里面将 Intel UHD Graphics 显卡直通给了 Windows 虚拟机。
但是,虚拟机通过 Windows 更新打上各种驱动之后,Intel UHD 显卡报错代码 43,无法启动。
因为架设在虚拟机上的 Plex Server 需要 Intel UHD 显卡正确驱动才能使用硬件转码,所以服务器上插了一块亮机卡,然后在 ESXi 里面将 Intel UHD Graphics 显卡直通给了 Windows 虚拟机。
但是,虚拟机通过 Windows 更新打上各种驱动之后,Intel UHD 显卡报错代码 43,无法启动。
最近一直在折腾完全虚拟化的家庭服务器,其中虚拟 Xpenology 一直是一个头疼的问题。按照 Xpenology 论坛给出的虚拟化安装方式,将 loader 做成一块 SATA 硬盘挂载,结果就是在系统更新的时候总会出现代号 13 错误(安装包已损坏)。
另外一个解决方案,先制作实体 USB 启动盘,然后在 ESXi 中将 USB 直通给 Xpenology 虚拟机。但是还要在机器上插一个 U 盘太麻烦,遇到 U 盘故障的话,恢复系统也是一个麻烦事。如果能虚拟 USB 启动盘就好了。但是,ESXi 虚拟机设置里面并没有虚拟 USB 存储设备的选项。
设置页面里面没有,不代表不能做!
不知不觉间,已经在家里组建了三台服务器
这次又按耐不住,开始折腾第四台服务器了。
之前曾经写过一篇《为 Windows Server 2012 远程桌面主机配置服务器证书》。当服务器升级到 Windows 10 Pro 之后,发现老方法已经不管用了。于是,查找资料,总结出来适用于 Windows 10 Pro 的证书配置攻略。
自从服务器换装 Windows 10 专业版之后,大部分存储空间的操作都可以通过控制面板搞定(开始菜单内搜索“storage spaces”)。但是有些细节设置在控制面板里面没有,最典型的例子就是“柱面数量”(Number of Columns)。
本文将会记录一些必须要用 PowerShell 搞定的存储空间操作。
之前我曾经写过一篇《家用服务器之网络篇:1Gbps已经不够用了!》,里面提到了使用网络连接聚合(LAG,Link Aggregation Group)把四个 1Gbps 的连接合并成一个 4Gbps 的连接。
但是,最近在做网络调试的时候发现,两台都配有 4Gbps 网络连接聚合的服务器,它们之间的通信速度居然只有约 1Gbps!就算使用 802.3ad LACP 作为聚合方式,最高也只能跑到 1Gbps。后来查了资料,发现网络连接聚合的目的
这与我需要的“增大文件传输带宽”目的想去甚远,于是又寄希望于多通道 SMB(SMB Multichannel)。
小米小方可以说是市面上最廉价的家庭安防摄像头。虽然官方固件只支持云端录像,但是仍然有大神做出了 RTSP 固件,让小方可以加入本地安防录像系统。第一代使用 ARM 处理器的小方有 fang-hacks,第二代使用 T20 芯片的小方 1S 有 Dafang-Hacks,但是使用 T20L 芯片的新版小方 1S 却打着“不支持”标签。
其实 T20L 只是 T20 的低配版本,通过调整 Dafang-Hacks,也可以给 T20L 版的小方 1S 刷上 RTSP 固件。
1Gbps 真的不够用了吗?或许吧。但是考虑到现在的路由器动不动就 AC1900、AC2600、AC3200,只接一根 gigabit 网线肯定是无法提供那么大带宽的。这时候就需要靠网络连接聚合(LAG,Link Aggregation Group)来提升速度了。原理很简单,一根网线 1Gbps,两跟网线就是 2Gbps,三根网线就是 3Gbps……
服务器当然也可以这样搞。于是最近热衷于淘垃圾的我,又打开 eBay,在垃圾堆里找了一块四口 gigabit 网卡。
因为嫌之前用的 Asus Z97-C 上面有太多用不到的 PCI 接口(不是 PCIe),而且仅有的一条 PCIe x16 又没办法分成两个 x8 使用,用来做外部扩展的 Dell H310 只能跑在 x4 模式下面,性能损失较大。于是就去 eBay 买了块很便宜的拆机主板 Asus Z97M/G30AK。
首先这款主板是 mATX 尺寸,机箱里就省出三个 PCIe 插槽的位置可以放 HP SAS Expander 卡。其次这款主板上面的四个扩展槽全部都是是 PCIe,而且可以把 x16 分成两个 x8 使用。完美符合我的需求。
但是,有个问题,这主板的 BIOS 没有 NVMe 支持,也没有内置 SLIC(很怀疑之前机器上怎么装的 Windows)。于是,只能通过修改 BIOS,至少加入 NVMe 支持。
经过几年的积攒,服务器的硬盘位终于塞满了。于是再扩展硬盘位就变成了一个问题。
之前一直靠 USB 3.0 外置硬盘盒,但是每个硬盘位都需要至少 $20 扩展成本(买硬盘盒)。而且连接速度和稳定性也不够理想,在将外置硬盘加入存储池时也会遇到各种各样的问题。
直到发现 HP SAS Expander 这块扩展卡之后,这个问题终于能得到比较可靠的解决方法了。(关于扩展卡,详见我之前的文章《家用服务器之存储篇:大规模存储背后的简单实现》)
因为自己拼装一个硬盘架需要各种零件,各个订单的到货时间也都不一样,这将会是一个持续得比较久的工程,所以本文将尝试采用更新记录的方式,边做边更新,看看需要花费多长时间,进行多少尝试,才能完成这么一个硬盘架。
上一篇《家用服务器之存储篇:选择SATA/SAS控制卡》里面推荐了 Dell PERC H310 这款 SAS/SATA 控制卡。但是一块 Dell H310 只能接 8 块硬盘,两块 Dell H310 加上主板上的 SATA 接口一共能接 20 块硬盘。那么如果多于 20 块硬盘呢?如果以后还要扩展外置存储呢?
接下来我就要再介绍一个实用的 SAS Expander 扩展卡。
之前家里的服务器一直用着破烂 AMD 推土机架构的 FX-6100,早就看着不爽了,于是这次趁着全家电脑升级,将服务器也升级到四代酷睿。同时也针对服务器最重要的存储部分做了一次彻底的升级。
其实,在此之前,家里服务器陆陆续续用过不少存储方案。本文将记录各种我使用过的存储方案,并一一分析其中的优缺点。
Update 2019/05/26: 由于服务器已换装 Windows 10 做系统,本文将不再更新,缺失的屏幕截图也不会补上。
服务器上的硬盘越来越多,数据也存放得越来越乱。不仅出现了数据跨盘,在硬盘出现问题的时候也容易丢数据。自从发现了 Windows Server 的 Storage Spaces 功能之后,便琢磨将硬盘做成阵列,由系统控制,然后在上面搭建虚拟磁盘,或许是一个很好的解决办法。
无奈 Windows Server 2012 的 Storage Spaces 功能太有限,于是就更新到了 Windows Hyper-V Server 2016。至于原因嘛,
之前试用了一下 ArduCam Multiple Camera Adapter,基本上实现了一个 Raspberry Pi Zero 拖四个摄像头。但是缺点也是显而易见的:
于是,想出一个念头,能不能用 Pi Zero Cluster 来代替这个转接板呢?
Windows Server 2012 服务器出现这个问题有一段时间了,具体来讲就是一个应用程序打开了服务端口,绑定地址 0.0.0.0
(所有网络接口),防火墙入站设置正确,端口可以通过 localhost
或者 127.0.0.1
访问,但是无法通过局域网 IP 访问。
然后把端口改到 50000 以上又可以访问了。
今天跟这个问题较上劲了,一点一点改端口,然后发现 47000 以下基本上都无法访问,47001 就没问题了。顺着这个线索找到了故障的根本原因:DirectAccess/WinNat 默认占用 6001-47000 端口,用来做 IPv6-to-IPv4 转换。
解决起来也很简单,重新分配一下 WinNat 占用的端口就好了。
Set-NetNatTransitionConfiguration -IPv4AddressPortPool @("192.168.1.100, 10000-47000")
或者干脆卸载 DirectAccess(远程访问角色)。
多说几句,自从使用了 Raspberry Pi(后来改用 Orange Pi)来做家里的 DHCP/DNS/VPN 服务器,家里网络比之前灵活多了。Windows Server 2012 安安心心做文件服务器,各取其所长,各司其职,网络问题也少了很多。
简单列一下最近常用的命令
虽然 root 掉了 OnHub,但是目前只能 telnet 进去。进去之后发现 OnHub 真是贫瘠,里面可以说是一穷二白,连个 GCC 都没有。
在网上找了个 Chromebrew(GitHub),但是 OnHub 本身没有 xz,也没办法解压那些软件包。
于是问题变成了怎么样安装 xz,毕竟 OnHub 上连 GCC 都没有。
于是顺着 Chromebrew 找到了 chrome-cross,这个专门交叉编译 Chrome OS 软件包的项目。于是,拿来主义,fork 之后加上了 xz。
再之后就顺利多了。Chromebrew 用了 OnHub 上没有的 wget,解决办法就是 fork 之后用 curl 代替 wget。
把这些七七八八的都修改好之后,终于可以往 OnHub 里面安装软件包了。
export LD_LIBRARY_PATH=/usr/local/lib
crew install buildessential
crew install nano