搭建简易的私有云
什么是「私有云」?
云服务一般有三种部署方式:
-
公有云(Public Cloud)
公有云由云服务提供商控制,对公共互联网开放。用户只需为其使用的资源(包括服务器、存储容量和应用等)付费,而无需担心具体的维护问题。
-
私有云(Private Cloud)
私有云是为单独的用户或组织构建的,可在公共互联网或内部网络中部署。用户可根据实际需求进行定制化的部署和管理。
-
混合云(Hybrid Cloud)
混合云是以上两种方式的组合,集合了公有云和私有云的优点。
(图片来源:Sam Johnston)
私有云的搭建过程
环境:macOS,VirtualBox。
-
创建 Linux 虚拟机(以 Ubuntu 为例)
在 Ubuntu 官网下载 Ubuntu 镜像文件,然后在 VirtualBox 中创建虚拟机(命名为 ubuntu-base,以区别其他虚拟机)。
-
配置虚拟机网络
查阅 VirtualBox 的文档可知,VirtualBox 一共提供了 7 种网络连接方式,其中较常用的几种连接方式如下:
查看 ubuntu-base 的网络设置,发现已经存在一块连接方式为 NAT 的网卡:
由上面的表格可知,虚拟机能通过该网卡访问到主机(进而访问到外网),而虚拟机之间不能通过该网卡相互访问。
接下来,在
菜单—>管理->主机网络管理器
中创建一块名为 vboxnet0 的虚拟网卡,并将 IPv4 地址设置为192.168.100.1/24
,作为主机的地址。在终端中使用
ifconfig
命令就可以找到该网卡:此时可以在 ubuntu-base 中启用第二块网卡(接口就是刚才创建的虚拟网卡),并将连接方式设置为仅主机(Host-Only)网络。由上面的表格可知,主机能通过该网卡访问虚拟机,虚拟机之间也可以通过该网卡通讯。
启动 ubuntu-base,并在终端中输入
nmtui
打开网络管理器。选择「编辑连接」后可看到两个以太网连接:有线连接 1(enp0s3)和有线连接 2(enp0s8),分别对应网卡 1 和网卡 2。设置有线连接 2 的 IPv4 地址为
192.168.100.42/24
(与主机地址192.168.100.1/24
在同一网段),作为第二块网卡的地址。在主机的终端中输入
ping 192.168.100.42
能够 ping 通,说明主机可以访问虚拟机 ubuntu-base。在虚拟机的终端中输入
ping 192.168.100.1
能够 ping 通,说明虚拟机能够访问主机。在虚拟机的终端中输入
ping whichxjy.com
能够 ping 通,说明虚拟机能够访问外网。 -
通过 ssh 连接虚拟机
首先检查虚拟机中是否开启了 ssh 服务:在终端中输入
ps -e | grep ssh
,如果结果中只有ssh-agent
则说明 ssh 服务器未开启。此时可通过/etc/init.d/ssh start
指令开启 ssh 服务器。如果结果显示「没有那个文件或目录」,则说明该虚拟机并未下载 sshd,需要通过sudo apt-get install openssh-server
下载相应的安装包之后再开启 ssh 服务。如果想要进一步确认,可以输入service ssh status
指令,如果显示为active
则说明 ssh 服务器已正常开启。确认虚拟机开启 ssh 服务后,在主机终端上输入
ssh 192.168.100.42 -l whichxjy
访问虚拟机,其中192.168.100.42
是前面设置的第二块网卡的地址。 -
复制虚拟机
在 VirtualBox 中右击 ubuntu-base,选择复制,将新的虚拟机命名为 ubuntu-clone。注意需要选择「为所有网卡重新生成 MAC 地址」,并选择「链接复制」(关于完全复制和链接复制的区别可见文档:Cloning Virtual Machines)。
启动 ubuntu-clone,发现主机名和 ubuntu-base 一样。为了区分这两个虚拟机,可以通过
sudo vim /etc/hostname
指令打开/etc/hostname
来修改主机名。与此同时,通过
sudo vim /etc/hosts
指令打开/etc/hosts
来修改 IP 地址与主机名之间的映射。这次我们用另一种方式来配置网卡:通过
sudo vim /etc/network/interfaces
指令打开/etc/network/interfaces
文件并修改第二块网卡的 IP 地址为192.168.100.43/24
。重启该虚拟机,在终端中输入
ping 192.168.100.1
能够 ping 通,说明虚拟机能够访问主机。在该虚拟机的终端中输入
ping whichxjy.com
能够 ping 通,说明该虚拟机能够访问外网。在主机的终端中输入
ping 192.168.100.43
能够 ping 通,说明主机可以访问虚拟机 ubuntu-clone。在主机终端上输入
ssh 192.168.100.43 -l whichxjy
访问虚拟机。主机可通过 ssh 对 ubuntu-clone 进行一系列操作:
参考
Cloud Computing - Wikipedia
What is a private cloud computing? - CloudPro
What is a private cloud? - Microsoft Azure
Public Cloud vs Private Cloud vs Hybrid Cloud - IntelCanada
How to Create a Network of Machines in VirtualBox with SSH Access - Corey Schafer