OpenVZ是一种基于软件的操作系统虚拟化工具,可以在主机Linux发行版中部署,管理和修改隔离的虚拟Linux环境。各种Linux发行版中的大量预构建操作系统模板允许用户轻松快速下载和部署虚拟环境。
sudo
。如果您尚未创建受限用户帐户,请按照“ 保护您的服务器”指南中的步骤操作。如果您打算将整个Linode VPS专用于运行OpenVZ而不是其他服务,则建议为主机服务器及其进程以及任何OpenVZ虚拟服务器模板创建单独的分区。下表说明了建议的分区方案:
划分 | 描述 | 典型尺寸 |
---|---|---|
/ | 根分区 | 4-12 GB |
交换 | 分页分区 | 2倍RAM或RAM + 2GB(取决于可用的硬盘空间) |
/ VZ | 分区以托管OpenVZ模板 | 所有剩余的硬盘空间 |
在安装OpenVZ之前,必须配置系统以实现兼容性。Debian 9支持与自定义OpenVZ内核不兼容的新校验和功能。根据您的偏好,您可以选择从已安装的分区中删除metadata_csum,或者将受影响的分区重新格式化为兼容的Ext4卷。选择任一方法并按照下面相应部分中的说明进行操作。
/dev/sda1
为相应的卷名称。如果以下命令没有为已装入的磁盘卷生成输出,则可以跳过本节。
dumpe2fs -h /dev/sda1 2>/dev/null | grep -e metadata_csumfsck
文件中:
echo "copy_exec /sbin/e2fsck" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck echo "copy_exec /sbin/tune2fs" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck/dev/sda3
为您选择的卷。输出“0”表示成功。
警告使用该mkfs
命令格式化卷可能会导致数据丢失。
mkfs -t ext4 -O -metadata_csum /dev/sda3avoid-systemd
并粘贴以下内容:
/etc/apt/preferences.d/avoid-systemd1 2 3
Package: *systemd* Pin: release * Pin-Priority: -1apt update
命令将从系统生成警告。该命令应该成功。如果没有,请使用以下参数更新系统:
apt --allow-unauthenticated update/vz
。如果安装后该目录不存在,请使用以下命令创建符号链接:
ln -s /var/lib/vz/ /vzvznet.conf
在下面的行中创建文件并粘贴:
/etc/vz/vznet.conf1
EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"必须将系统配置为每次重新启动服务器时引导OpenVZ内核。
grub.cfg
文件less
,或首选文本编辑器:
less /boot/grub/grub.cfggrub.cfg
文件中,查找类似于以下内容的部分:
/boot/grub/grub.cfg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
. . . menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e025e52b-91c4-4f64-962d-79f244caa92a' { gfxmode $linux_gfx_mode insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod ext2 set root='hd0' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0 e025e52b-91c4-4f64-962d-79f244caa92a else search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a fi echo 'Loading Linux 4.9.0-3-amd64 ...' linux /boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0 echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-4.9.0-3-amd64 } submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-e025e52b-91c4-4f64-962d-79f244caa92a' . . .复制前面的文本条目submenu
,在本例中,文本将是:Debian GNU / Linux的高级选项。grub.cfg
“子菜单”行下面的文件中,您将看到多个缩进的“menuentry”部分。这些代表了可用的内核。从这些,您需要找到新安装的OpenVZ内核菜单项。它应该类似于下面的内容。请注意,有些将是恢复内核,应该被忽略:
/boot/grub/grub.cfg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
. . . menuentry 'Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-2.6.32-openvz-042stab123.9-amd64-advanced-e025e52b-91c4-4f64-962d-79f244caa92a' { gfxmode $linux_gfx_mode insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod ext2 set root='hd0' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0 e025e52b-91c4-4f64-962d-79f244caa92a else search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a fi echo 'Loading Linux 2.6.32-openvz-042stab123.9-amd64 ...' linux /boot/vmlinuz-2.6.32-openvz-042stab123.9-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0 echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-openvz-042stab123.9-amd64 } . . .
Again, write down the text directly after "menuentry" in single quotes. Here, the text to copy is **Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64**.GRUB_DEFAULT=
。开头的行。删除此参数的默认值,然后按照以下格式输入您在前面步骤中复制的文本。通过上面的示例,值将如下所示:
GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64"
请注意,两个复制的字符串都用胡萝卜“>”字符分隔。/etc/vz/vz.conf
并更改以下行以使用simfs
而不是ploop
:
/etc/vz/vz.conf1
VE_LAYOUT=simfsploop
的simfs
。您还可以自行配置其他选项,例如SWAP和RAM分配。完成后保存并关闭。 /etc/vz/conf/101.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 . . . # RAM PHYSPAGES="0:256M" # Swap SWAPPAGES="0:512M" # Disk quota parameters (in form of softlimit:hardlimit) DISKSPACE="2G:2.2G" DISKINODES="131072:144179" QUOTATIME="0" # CPU fair scheduler parameter CPUUNITS="1000" NETFILTER="stateless" VE_ROOT="/var/lib/vz/root/$VEID" VE_PRIVATE="/var/lib/vz/private/$VEID" VE_LAYOUT="simfs" OSTEMPLATE="centos7-x86_64" ORIGIN_SAMPLE="vswap-256m" NAMESERVER="8.8.8.8" IP_ADDRESS="192.168.0.101/24" HOSTNAME="centos-7"
exit
命令行。
vzctl start [CTID] vzctl enter [CTID]容器无法访问互联网或从互联网访问。必须将主机服务器配置为向每个已安装的虚拟环境传递请求。
注意您可能需要以root身份登录
su -
才能在本节中运行iptables-save命令。
xxx.xxx.xxx.xxx/xx
包含一系列IP地址,以便访问将来添加的任何容器。例如,输入192.168.0.0/24将设置IP地址192.168.0.0到192.168.0.255的路由:
iptables -t nat -A POSTROUTING -s [container IP] -o eth0 -j SNAT --to [host server IP]iptables-persistent
安装,请跳过此步骤。保存新的Iptables规则:
iptables-save > /etc/iptables.confiptables-persistent
保存规则:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT iptables-save > /etc/iptables.confiptables-persistent
安装,请跳过此步骤:
iptables-save > /etc/iptables.conf安装OpenVZ,下载模板,创建容器和配置Internet访问后,您的虚拟环境将完全像任何普通Linux环境一样运行:需要定期更新,安全配置等。大多数配置可以通过OpenVZ命令从主机服务器完成。
请参阅“ 外部资源”部分中的“OpenVZ基本操作”链接,以熟悉基本管理命令。还可以下载其他用户创建的模板,这些模板未包含在主模板列表中。您可以通过“OpenVZ用户贡献的模板”链接找到这些内容。
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。