libvirtを使用してマルチノードのVagrantクラスタを構成する

2936 ワード

現在、多くの実験室には大きなメモリ、高周波数、マルチコアの高性能サーバが装備されているため、多くの仮想マシンの実験は実際に実験室で完了することができ、公有クラウドよりもテスト結果が正確です.現在、最も良い方法は、Vagrant+libvirt+KVMの仮想マシンクラスタを実験室で構築することだと思います.CentOS/Fedora/RedhatでVagrant+libvirtの仮想マシンクラスタを構築する方法について説明します.
特長
  • は、複数の物理マシン上の仮想マシン間の相互通信
  • をサポートする.
  • Vagrantfileによって仮想マシンが起動する特定の物理ノードを直接指定することで、パブリッククラウドで仮想マシンが割り当てられた物理ノードトポロジーの不明確による実験誤差を効果的に低減することができる.
  • Vagrantfileを作成することによって、テスト環境の迅速な構築と導入を完了する
  • VirtualboxよりもKVM仮想マシンのパフォーマンスが高い
  • ステップ
    従来のネットワーク名の使用
  • /etc/default/grubのGRUB_CMDLINE_LINUX行には、次の2つのオプションnetが追加されます.ifnames=0 biosdevname=0.
  • grub 2-mkconfig
  • を実行
  • /etc/sysconfig/networt-script/ifcfg-xの内容を修正し、ifcfg-eth0ifcfg-eth1
  • に名前を変更します.
  • 再起動機器
  • ノード間SSH相互接続
  • ssh-keygenを使用してネイティブ鍵を生成し、ssh-copy-idを使用するusername@hostnameコピーキー
  • libvirtのインストールと構成
  • 配置/etc/hosts
  • 注意、hostnameの名前は正確でなければなりません
  • 複数のノード間のTLSアクセスリファレンス:TLSSetup-Libvirt Wiki
  • Vagrantのインストールと構成
  • 公式サイトからVagrant
  • をインストール
    rpm -ivh https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.rpm
    
  • vagrant-libvirtプラグイン
  • をインストール
    dnf -y install qemu libvirt libvirt-devel ruby-devel gcc
    vagrant plugin install vagrant-libvirt
    

    Vagrantfileの作成
    ただし、masterはリモートホスト、slaveはローカルホスト、リモートホストはlibvirt.hostにホスト名を設定します.
    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    # All Vagrant configuration is done below. The "2" in Vagrant.configure
    # configures the configuration version (we support older styles for
    # backwards compatibility). Please don't change it unless you know what
    # you're doing.
    Vagrant.configure("2") do |config|
      config.vm.define "master" do |master|
        master.vm.box = "centos/7"
        master.vm.provider :libvirt do |libvirt|
            libvirt.host = "e2104"
            libvirt.driver = "kvm"
            libvirt.username = "root"
            libvirt.password = "111111"
            libvirt.connect_via_ssh = true
        end
        master.vm.network :public_network, :dev => "eth0", :mode => 'bridge', :ip => "10.0.2.111"
      end
    
      config.vm.define "slave" do |master|
        master.vm.box = "centos/7"
        master.vm.network :public_network, :dev => "eth0", :mode => 'bridge', :ip => "10.0.2.110"
      end
    end
    

    仮想マシンの起動
    vagrant up master
    vagrant up slave
    

    注意事項
  • インストール前にlibvirtがインストールされている場合はlibvirtを完全にアンインストールし、サーバ
  • を再起動します.
    yum remove libvirt libvirt-client
    reboot
    yum install libvirt libvirt-devel
    
  • TLSアクセス鍵のcnはホスト名である必要があります.そうしないと
  • エラーが発生します.
    country = AU
    state = Queensland
    locality = Brisbane
    organization = libvirt.org
    cn = e2105  #(      )
    tls_www_client
    encryption_key
    signing_key