淘汰的低端主机搞上 Windows Server2012R2 Hyper-V
虚拟机一:CentOS7 + Apache24 + PHP73 + MySQL80 = NextCloud + WordPress
虚拟机二:LEDE = MWAN + aliyunDDNS + KMS
考虑过使用实体机运行 CentOS 这个系统,但是我 LEDE 难道又要另外一台主机(低功耗平台j1900/N3150等)来搞就不现实了。成本、功耗都不如一台主机来的实际,至于 LEDE 运行在实体机与虚拟机的性能差别,我没有对比过不知道。包括 CentOS 也没有使用实体机长期运行过。一直在使用阿里云 ECS 上面的 CentOS7,对比 Hyper-V 里运行的 CentOS7 ,阿里云 ECS 除了磁盘响应快点,其它都是 Hyper-V 上的性能更强。
可以负责的说 LEDE 运行在 Hyper-V 磁盘 SSD 上已经飞快了!!一块博通双口千兆网卡 + 两块 intel 单口千兆网卡,第二代 Hyper-V 虚拟机。虽然入户只是 100M,内外网都完美识别使用千兆,速度与响应飞快,没有发现任何瓶颈。
虽然有几台垃圾低端淘汰的 PC ,最后还是决定了只用一台主机搞虚拟机,在功耗与成本方面都更有优势。
使用 NextCloud 存储照片、文件、资料等等,并与 PC 客户端同步,这样是否相当于实现了镜像存储?进一步提高数据不会由于硬盘损坏导致突然丢失的风险。而且 NextCloud 可以通过 DDNS 实现外网访问等各种方便,比纯粹的存储池镜像模式存储强多了。
所以 NextCloud 需要一个容量比较大的数据盘,在 Hyper-V 使用 SSD 的性能确实是爽,不过既然是使用淘汰的主机作为家用的低级服务器,就不应该考虑大容量的 SSD 咯。自己主用的 PC 都只是128G SSD + 2TB HDD而已。但是 Hyper-V 使用机械盘 HDD 运行 CentOS 明显比在 SSD 上运行慢了许多,没有对比就没有伤害。 CentOS 一样可以像 Windows 那样,系统装在 SSD ,资料文件需要大容量存储的使用 HDD !
实际上早就已经是这样搞过了,但是效果并不理想,应该是分区不合理的原因。
最初是这样搞的:
Hyper-V 建立一个 50G 放在 SSD 上的 动态磁盘VHDX 用作 CentOS 系统所有分区但不包括 /var
目录,挂载一个1TB放在 HDD 上的 动态磁盘VHDX 作为 /var
分区。
这个方案运行了一段时间,稳定没有问题,唯一就是速度并不理想。甚至在安装 Nextcloud 与 WordPress 的时候都感觉到还没有单纯使用 HDD 的速度快。
能感觉到的是在启动或重启 CentOS 的时候,确实是快了一点点。
最近又这样搞的:
Hyper-V 建立一个 30G 放在 SSD 上的 固定磁盘VHDX 用作 CentOS 系统,挂载一个1TB放在 HDD 上的 动态磁盘VHDX 作为 /fzdata
目录。
然后修改 apache24 默认网站根目录为 /fzdata/www/html/
目录。
当然是效果明显好了!才会在这里唧唧歪歪的记录下来的。磁盘读写各方面都提升了,舒服。
修改 Apache24 默认网站根目录的方法
1、修改 httpd.conf 配置文件
vi /etc/httpd/conf/httpd.conf
# DocumentRoot "/var/www/html"
# 注释掉原有的默认网站根目录,添加我们的网站根目录
DocumentRoot "/fzdata/www/html"
# 原有的规则不用修改路径,我们只需增加自己的新路径
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
# 原有的规则不用修改路径,我们只需增加自己的新路径
<Directory "/var/www/html">
# Options Indexes FollowSymLinks
Options FollowSymLinks
# AllowOverride None
AllowOverride All
Require all granted
</Directory>
# 我们只需增加自己的新路径在这里即可。
<Directory "/fzdata/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/fzdata/www/html">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
2、修改 ssl.conf 配置文件
vi /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>
# DocumentRoot "/var/www/html"
# 注释掉原有的默认网站根目录,添加我们的网站根目录
DocumentRoot "/fzdata/www/html"
#ServerName www.example.com:443
ServerName www.abcd.com:443
</VirtualHost>
其它的ssl证书等配置,只需按照常规配置即可。
3、一定要注意 /fzdata/ 这个目录的权限
apache 必需有权限访问 /fzdata/
这个目录
我当时折腾了好久都是失败,总是提示 You don’t have permission to access /xx/xxx/ on this server.
这个目录在创建的时候权限是 755
但是挂载 1TB 的 xfs 分区到 /fzdata/
目录,重启系统后,权限却变成了 700
没有注意到挂载后会改变目录的权限问题,最后才发现这个问题,将权限改为 755 之后,一切运行都正常了。