According to the official Virtuozzo 7 information, the proper and reliable way to use OpenVZ 7 virtualization is to deploy the server using Virtuozzo 7 ISO image from https://download.openvz.org/virtuozzo/releases/7.0/x86_64/iso/
If due to whatever reason there is no way to deploy the server using ISO, there is also a way to convert CentOS 7 to VZ7. Such scenario is not fully supported by SolusVM and should be performed on the server's owner risk
Before proceeding with installing vzkernel, it is required to prepare the server to match the requirements of Virtuozzo 7. The main part here is to have a dedicated EXT4 partition mounted on /vz.
Mount a specifically created partition or a logical volume (it's a preferable way, it will be easier to extend it if required). The file system on the partition/volume must be ext4. Do not forget to add the corresponding mount point to /etc/fstab.
Here are the sample steps on how to achieve that in case there is a second drive /dev/sdb. Note that steps are just an example.
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 64G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 21G 0 part ├─centos-root 253:0 0 20G 0 lvm / └─centos-swap 253:1 0 1G 0 lvm [SWAP] sdb 8:16 0 64G 0 disk # vgcreate vz /dev/sdb Physical volume "/dev/sdb" successfully created. Volume group "vz" successfully created # lvcreate -n vz -l 100%FREE /dev/vz Logical volume "vz" created. # mkfs.ext4 /dev/vz/vz # mkdir /vz # mount /dev/vz/vz /vz # echo "/dev/vz/vz /vz ext4 defaults 1 1" >> /etc/fstab
Overall The result should be similar to the following one:
# df -hT /vz Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vz-vz ext4 50G 827M 46G 2% /vz
Type must be ext4 and it must be me mounted on /vz.
Once /vz partition is prepared, we can go ahead with the conversion.
Install python sub-processes, the latest OpenVZ 7 release, Epel repository, prctl utility, OpenVZ kernel and ploop packages:
# yum localinstall https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/Packages/p/python-subprocess32-3.2.7-1.vz7.5.x86_64.rpm # yum localinstall https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/Packages/o/openvz-release-7.0.11-3.vz7.x86_64.rpm # yum install epel-release -y
Install vzlinux release:
# yum install python3 # rpm -Uvh http://repo.virtuozzo.com/vzlinux/7/x86_64/os/Packages/r/readykernel-scan-0.11-1.vl7.noarch.rpm # rpm -Uvh http://repo.virtuozzo.com/vzlinux/7/x86_64/os/Packages/z/zstd-1.4.4-1.vl7.x86_64.rpm # rpm -Uvh http://repo.virtuozzo.com/vzlinux/7/x86_64/os/Packages/v/vzlinux-release-7-1.vl7.89.x86_64.rpm
Move CentOS repositories to another location to avoid package conflicts in future:
# mv /etc/yum.repos.d/CentOS-* /root/
Re-install json-c and jansson packages from virtuozzo repositories
# rpm -e --nodeps --justdb json-c # yum erase jansson # yum localinstall http://repo.virtuozzo.com/vzlinux/7.7/x86_64/os/Packages/j/jansson-2.10-1.vl7.1.x86_64.rpm # yum localinstall http://repo.virtuozzo.com/vzlinux/7.7/x86_64/os/Packages/j/json-c-0.11-13.vl7.1.x86_64.rpm
Install the necessary packages:
# yum install prlctl prl-disp-service vzkernel *ploop*
Update the node:
# yum update
On OVH dedicated servers also generate the grub.cfg file:
# grub2-mkconfig -o /boot/efi/EFI/virtuozzo/grub.cfg
Reboot the node:
Now, enable ploop kernel modules:
# modprobe ploop # modprobe pfmt_ploop1 # modprobe pfmt_raw # modprobe pio_direct
The conversion is done. Feel free to try installing SolusVM on it:
# curl -o install.sh https://files.soluslabs.com/install.sh && sh install.sh
In case you did everything right, you will see the following screen on CentOS 7:
The last step after that - install EZ packages:
# yum install *ez.noarch