注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态。
交流:唯一投稿邮箱:hostvps@88.com。
一.介绍
SolusVM我想应该不用介绍了,目前国内外卖VPS的最常见的面板之一,另外还有Virtualizor以及Xen System,以及比较少见的Promox和ESXi以及非常稀有土豪专用的OnApp。当然还有些号称云主机的用OpenStack或者OpenNebula,这些就不提了。不过我相信大部分人应该都接触过SolusVM,作为OnApp旗下的比较低端的虚拟化产品,以及和WHMCS等财务系统比较好的集成,所以非常多的VPS商家都喜欢用这个。
所以这个系列来稍微介绍下这些IDC比较常用的东西,之前的Proxmox也是这个系列的其实,之后会有啥就看心情了。
由于Solusvm的某些BUG(其实是一堆),在CentOS7上安装Solusvm会导致出现无法限速,无法重启后自动启动VM的情况,所以一般情况下建议使用CentOS6安装。
但是Solusvm对于系统的分区是有要求的,所以我们从安装CentOS6开始介绍,当然是跳着介绍的,只说需要特别注意的地方,最好的情况是你的独服商家提供了Solusvm的镜像,这样你就不用折腾的,但是有些只提供了OpenVZ Slave(Master)的镜像,所以这种情况下如果你要安装KVM或者Xen的Solusvm Slave就需要自己动手了。
二.安装
本文分为Master篇和Slave篇,我将在本篇文章中分别介绍
首先看下安装前的注意事项
- You CANNOT Install a SolusVM Master on a Xen/KVM Slave Directly, you can however install your Master on a Xen VPS which is hosted on this slave, it just cant be installed directly onto the slave
解释: 这个就是告诉你,你无法直接在一台已经安装了Xen或者KVM的Slave上安装Master,但是你可以在Slave上开的VM中安装Master,当然如果你有别的的空的机器还是建议分开(OVZ可以使用Master with OpenVZ来实现安装在一台机器上)
- This Script should NEVER be used to upgrade SolusVM to the latest version, doing so will destroy your installation of SolusVM
解释: 安装脚本无法被用于升级Solusvm,这么做会导致你的已经安装的Solusvm损坏
- DO NOT use this installer on servers that contain any other control panel (cPanel, Directadmin etc..) Always use a clean install of CentOS/RHEL/Scientific!
解释: 不要在存在其他控制面板(比如cPanel、Directadmin或者其他的),总是使用一个纯净的系统(CentOS/RHEL/Scientific之一)
支持的系统和虚拟化
PS. 需知
1. CentOS5那列是支持的,但是不进行维护了
2. Virtuzzo的话在我看来是OpenVZ的商业(企业)版,功能更加强大,但是依旧是属于和OpenVZ一样类似于容器,内核依赖于宿主机,无法在Linux宿主机上安装Windows啥的
分区要求
翻译一下
虚拟化 分区布局
1. "/"(根目录)需要80GB以上,使用ext4/ext3并且选择Primary(主分区)而不是逻辑分区
2. Swap(交换分区)需要4GB以上,以便应对内存不足的情况(VM会占用宿主Swap)
3. 剩下的空间全部分配给LVM(需要注意,只配置Logical Volume Group逻辑卷组,具体的卷会由Solusvm自己创建),Solusvm推荐使用32MB及以上的PE(Physical Extent, 物理块)大小
- Xen Source
1. 同上(KVM)
2. Swap(交换分区)不超过4G(VM*不会*占用宿主Swap)
3. 同上(KVM)
- OpenVZ
1. "/"(根目录)需要40GB以上,使用ext4/ext3并且选择Primary(主分区)而不是逻辑分区。如果没有创建"/vz"目录且独立挂载分区,OpenVZ的模板会存储在"/vz/template/cache"目录,占用"/"根目录空间
2. Swap(交换分区)两倍于物理内存(如果物理内存小于2GB,则Swap为物理内存+2GB)
3. "/vz"占用剩余的空间,用于存储OpenVZ的模板以及VM的磁盘
- OpenVZ 7
1. 使用 Virtuozzo Linux
2. 同上(OpenVZ)
3. 同上(OpenVZ)
4. 同上(OpenVZ)
安装脚本倒是挺简单
1 2 |
wget https://files.soluslabs.com/install.sh sh install.sh |
这个安装脚本是多合一的,所以不管是Master还是Slave都是通过这个脚本进行安装的,本文章多图,请注意连WIFI(虽然可能来不及了)
首先,请按照上面说明准备好系统环境,大部分的商家提供ISO挂载来安装的功能,建议使用这个而不是系统模板来安装,因为模板安装不太方便调整分区。
Hetzner的话也有类似的功能,这就不需要Rescue模式了,请注意了。我们点击面板上的VNC,然后来进行安装
然后会给你一个IP以及密码,使用VNC客户端连接即可,可以下载tightvnc或者realvnc啥的
PS.需要注意,这儿给出的IP是带端口的(但其实也不是端口)
比如给你的是192.168.0.1:1,你会很奇怪为啥端口是1对吧,其实是VNC的端口,默认从5900开始,1代表的就是5901,即你实际的地址是192.168.0.1:5901
当然,在开始连接之前我们需要重启服务器进入VNC安装模式(重启前记好端口和密码,重启后会消失的)
然后我们就能连上去了
记得选上两块硬盘
中间啥时区啊,网络啊,就跳过了,因为没啥特别的
大概是这样的
然后还是比较常规的安装流程了,我也就不说了
然后进入系统后运行脚本开始安装,首先是脚本环境安装以及部分检测,稍等后进行简单的选择题
由于是独服,所以我们这台机器上装KVM的Slave,也就是选4
然后就开始安装了
稍等一会儿然后就OK了,最后会给出ID Key以及ID Password,凭借IP以及这两个就能在Master里面添加节点了
然后,按照说明我们还需要配置个Bridge,按照Solusvm的教程其实挺简单的——>传送门 https://documentation.solusvm.com/display/DOCS/KVM+Bridge+Setup
我这边简单的介绍下
1. 首先安装bridge-utils软件包(虽然文档里让你检查是否已经安装,但是直接装下不就知道了吗…)
1 |
yum install bridge-utils -y |
2. 然后查看你现有的网卡配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#你的网卡名字可能有差别,总之选你外网IP的那个 cat /etc/sysconfig/network-scripts/ifcfg-eth0 #内容大概如下,虽然我Hetzner上安装完不是这样的,不过差不多啦 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes HWADDR=MAC地址 IPADDR=公网IP NETMASK=子网掩码 NETWORK=网络号 GATEWAY=网关 BROADCAST=广播地址 IPV6INIT=yes IPV6_AUTOCONF=yes |
3. 备份你的配置
1 |
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/backup-ifcfg-eth0 |
4. 依照你网卡配置创建Bridge的配置文件
1 2 3 4 5 6 7 8 9 10 11 |
vi /etc/sysconfig/network-scripts/ifcfg-br0 #内容参照如下 DEVICE=br0 TYPE=Bridge BOOTPROTO=static ONBOOT=yes IPADDR=公网IP NETMASK=子网掩码 NETWORK=网络号 GATEWAY=网关 BROADCAST=广播地址 |
PS.这部分你按照自己的,有啥填啥,没的去服务器面板看看,有些比如广播地址和网络号其实都是不必要的,可选。另外有IPv6地址的自己参照着填,这个需要注意一下,如下
1 2 3 4 5 6 |
#Hetzner的IPv6在CentOS下大概配置文件需要加这些,最后一行少了不行,倒数第二行不能改 IPV6INIT=yes IPV6ADDR=IPv6地址/64 IPV6_DEFAULTGW=fe80::1 #在Bridge中这儿应该是br0 IPV6_DEFAULTDEV=eth0 |
5. 修改原网络配置
1 2 3 4 5 6 7 |
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=MAC地址 IPV6INIT=yes IPV6_AUTOCONF=yes ONBOOT=yes BRIDGE=br0 |
这儿这个IPV6_AUTOCONF如果你上面是手动配IPv6的这个就不要了,有些机房IPv6自动DHCP分配的可以开这个
6. 重启网络
1 |
/etc/init.d/network restart |
我建议这部分最好慎重一点,特别是如果你的机器没有KVM或者IPMI,改错了可能就得重装了,但是,也可以做个故障修复脚本
1 2 3 4 5 |
#配置重启后的计划任务,删除Bridge配置,覆盖原配置文件然后重启网络 echo "@reboot rm -rf /etc/sysconfig/network-scripts/ifcfg-br0 && \cp /etc/sysconfig/network-scripts/backup-ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0 && /etc/init.d/network restart" >> /var/spool/cron/root chmod 600 /var/spool/cron/root service crond reload service crond restart |
在配置这个之后,如果你发现自己搞炸了导致服务器失联,请使用控制面板上的重启来使机器重启恢复,之后你可以再次作死了。
PS. 当然,在你成功配置后记得把计划任务删掉,别问我怎么删
配置完大概是这样的,那个virbr0不用管,是自动添加的一个,如果看官方文档还可以配置一个内网用的Bridge,这个就看你自己需求了
然后我们就可以找个地方来装Master了,重复上面的第一步操作,在选择那儿选1
然后等着安装完成
如果你解析了域名到IP上可以按照它给的命令来签发Let's Encrypt的证书
我们只做测试,所以这些都不管,直接登录面板,然后添加节点(更改默认密码啥的就不用我提了吧)
然后我们来添加一份中文翻译(这个是用户界面的翻译,管理员安安心心看英文啦)
1 2 3 |
cd /usr/local/solusvm/language/client/ wget "https://documentation.solusvm.com/download/attachments/7667936/Simplified-Chinese.lang.txt?api=v2" -O Chinese.lang.txt chown solusvm:solusvm Chinese.lang.txt |
然后我们需要添加模板和ISO,KVM的模板我们可以从SolusVM的TDN那儿获取)——>传送门
模板的获取命令和参数都有,举个栗子,我们要添加CentOS6的模板
1 |
wget http://templates.repo.onapp.com/solusvm/kvm/linux-centos-6-x86_64-minimal-latest.gz -O /home/solusvm/kvm/template/linux-centos-6-x86_64-minimal-latest.gz |
然后照着信息添加
接着添加完后模板其实是在Master上的,我们需要同步到节点上
先Queue然后Active,之后稍等变成Complete就OK了
然后去添加一个Plan
然后加下IP
这是先加Block然后加IP的,像Hetzner和OVH这种机房IP绑定MAC的也必须给IP指定一个MAC,不能用默认的auto随机生成
然后就可以开机器了(开机器必须要创建一个用户,左侧Add Client了解一下)
然后就OK了
然后在用户面板也能看到啦
三.优化
默认情况下,我们的cpu是kvm64模式,这个时候在VM内显示的CPU型号是QEMU开头的,虽然这个是为了集群情况下能够方便迁移,不因为CPU型号不同导致某些故障,但是这种情况下你的宿主机CPU指令集不能完全提供给VM,会导致性能损耗。
那么怎么改呢,很简单,直接后台修改参数,然后保存重启VM就行
如果需要后续创建的机器都是这样的,可以直接修改模板里面的CPU Model
重启之后的效果