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