美文网首页
使用VirtualBox搭建虚拟机集群

使用VirtualBox搭建虚拟机集群

作者: eriolchan | 来源:发表于2016-10-29 23:35 被阅读1619次

    安装VirtualBox

    $ sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" >> /etc/apt/sources.list.d/virtualbox.list'
    $ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
    $ sudo apt-get update
    $ sudo apt-get install virtualbox-5.1
    

    创建虚拟机

    操作系统为Ubuntu,选择VDI 格式存储。网络配置使用两个网卡

    • eth0 使用Internal 方式,为虚拟机集群建立内网通信。
    • eth1 使用NAT 方式配合使用端口转发,为虚拟机建立与外界的通信。

    虚拟网卡配置

    选项 特点 其他
    NAT 虚拟机通过主机访问外网 虚拟机之间无法互相访问,主机无法访问虚拟机,外网可以通过端口转发 (port forwarding) 访问虚拟机。
    Bridged 虚拟机通过主机网卡与外网桥接,有独立的IP 地址 虚拟机之间、虚拟机与主机之间、虚拟机与外网之间都可以互相访问。
    Host-only 虚拟机通过Host-only网卡与主机之间建立内网 (192.168.56.0/24) 虚拟机之间、虚拟机与主机之间可以互相访问。虚拟机与外网之间无法互相访问。
    Internal 虚拟机之间建立内网 虚拟机之间可以互相访问。虚拟机与主机之间、虚拟机与外网之间无法互相访问。
    NAT Network 虚拟机之间建立内网,并通过主机访问外网 虚拟机之间可以互相访问。主机和外网无法访问虚拟机。

    配置sudo 无需密码

    $ echo "devops ALL=(ALL:ALL) NOPASSWD: ALL" > nopasswd
    $ sudo chown root.root nopasswd
    $ sudo mv nopasswd /etc/sudoers.d
    

    网络配置

    内网IP 使用192.168.1.0 网段的静态地址,外网IP 使用DHCP 分配。

    $ sudo vim /etc/network/interfaces
    

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0

    auto eth1
    iface eth1 inet dhcp

    将所有的集群节点添加到/etc/hosts 文件中。

    配置ssh

    安装ssh,并在集群内各个节点之间建立无需密码的连接。

    # 所有节点执行
    $ sudo apt-get install ssh
    $ ssh -keygen -t rsa
    
    # master执行
    $ cat ~/.ssh/id_rsa.pub > authorized_keys
    
    # slave执行
    $ ssh-copy-id -i ~/.ssh/id_rsa.pub master
    
    # master分发文件
    $ scp ~/.ssh/authorized_keys devops@slave1:.ssh
    

    如果需要由root 建立ssh,修改文件/etc/ssh/sshd_config,将PermitRootLogin 设为yes。

    配置ntp

    安装ntp,并在集群间同步时间。

    # 所有节点执行
    $ sudo apt-get install ntp
    
    # master临时同步时间
    $ sudo ntpdate 0.ubuntu.pool.ntp.org
    $ sudo vim /etc/ntp.conf
    

    更改配置文件,添加以下内容,只允许局域网内部同步时间。

    $ sudo vim /etc/ntp.conf
    

    # Allow LAN machines to synchronize with this ntp server
    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

    # slave临时同步时间
    $ sudo ntpdate master
    

    更改配置文件,添加以下内容,并注释其余的server 配置。

    server master

    关闭防火墙

    $ sudo ufw disable
    

    减少使用swap 分区

    $ sudo /etc/sysctl.conf
    

    添加以下内容

    vm.swappiness=0

    并验证输出是否为0

    $ cat /proc/sys/vm/swappiness
    

    导入VDI 镜像

    创建并注册虚拟机

    $ VBoxManage createvm --name master --ostype "Ubuntu_64" --basefolder "~/virtualbox/master" --register
    

    挂载硬盘

    $ VBoxManage storagectl "master" --name "IDE Controller" --add ide
    $ VBoxManage storageattach "master" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium ~/virtualbox/master/master.vdi
    

    设置虚拟机参数,网卡配置、可使用的内存、允许vrde 登录

    $ VBoxManage modifyvm master --nic1 intnet
    $ VBoxManage modifyvm master --nic2 nat
    $ VBoxManage modifyvm master --natpf2 "ssh,tcp,,10000,,22"
    $ VBoxManage modifyvm master --memory 2048
    $ VBoxManage modifyvm master --vrde on
    $ VBoxManage modifyvm master --vrdeport 3398
    

    启动虚拟机

    $ VBoxManage startvm master --type headless
    

    显示虚拟机信息

    $ VBoxManage showvminfo master
    

    关闭虚拟机

    $ VBoxManage controlvm master acpipowerbutton
    

    相关文章

      网友评论

          本文标题:使用VirtualBox搭建虚拟机集群

          本文链接:https://www.haomeiwen.com/subject/dopyuttx.html