概要
社内のVMサーバがパンパンになってしまったので、新しくVMサーバの構築をこんな感じで依頼されました。
社内運用担当者
「とりあえずCentをインストールして仮想マシンマネージャ使えるようにして。
HDDは300GB2、2TB2を挿してあるから、両方ともRAID1構成で、300GBの方にOSインストール、2TBの方はVMのイメージファイルを置く感じで。仮想マシンにLANからつなげるようにブリッジ設定もしておいてね。」
自分「???(はい、わかりました)」
それなりに業務でLinuxとかを触ってきましたが、よくわからんことがいっぱいだなあと思いながら調べつつ環境構築しました。
RAID1とは?
まずここが不明でした。これまでに聞いたこともない。
ので検索。
Web便利ノートより引用
RAID1は、同じデータを2本のハードディスクに書き込みすることで耐障害性を高めた構成です。ハードディスク1本に障害が発生してもシステムは停止せずにデータも失われません。
ただし、同じデータを二重で保管しているためハードディスク2本で1本分の容量しか使用できません。
要はHDDが壊れたときにデータを失わなくて済むように、2つのHDDに同じデータを書いておくってことですね。
細かいコマンドやらなにやらは置いといて、実際に作成していきます。
ブリッジとは?
ネットワーク系で名前だけは聴いたことあるが不明。
Qiitaの以下などを参考にしました。構築の手順などもここを参考にしています。
KVMでゲストOSをブリッジ接続する
ブリッジは2つのネットワークをつなぐための橋渡しなんですね。
今回で言うと、ローカルマシン、VMサーバが存在するLANと、仮想マシンが存在するLANの橋渡しとして、VMサーバ上にブリッジを設定します。
前提
- OS:CentOS 7.5
- メモリ:96GB
- CPU:6コア
- VM:KVM(仮想マシンマネージャ)
- 構成:
デバイス名 | 容量 | 構成 | マウントポイント | タイプ | 用途 |
---|---|---|---|---|---|
sda | 300GB | RAID1(md12) | / | ext4 | OSインストール領域1 |
sdb | 300GB | RAID1(md12) | / | ext4 | OSインストール領域2 |
sdc | 2TB | RAID1(md0) | /mnt/kvm | ext4 | VMイメージ作成領域1 |
sdd | 2TB | RAID1(md0) | /mnt/kvm | ext4 | VMイメージ作成領域1 |
VMサーバを構築する
今回はCentOS 7.5のISOイメージをDVDに焼いてインストールに使用します。
- ISOイメージは公式サイトからダウンロード。
- DVDをVMサーバにセットしてサーバを起動します。
- サーバが起動すると暗い画面で起動方法を確認されるので以下を選択します。
Test this media & Install CentOS 7
- Enterを押すとインストールメディアのチェックを行った後に、インストールが開始されます。
CentOSのインストール
基本的には画面の流れに沿ってインストールしていきます。
設定が必要な箇所、躓いた箇所などを記述していきます。
ソフトウェアの選択
以下を選択する。
ベース環境 | 選択するアドオン |
---|---|
サーバ(GUI使用) | 開発ツール 互換性ライブラリ 仮想化ツール 仮想化クライアント 仮想化ハイパーバイザー |
システム
- 「インストール先」をクリック
- 「ローカルの標準ディスク」から300GB2つだけを選択
- 「その他のストレージオプション」→「パーティション構成」→「自分でパーティションを行う」を選択
- 「完了」をクリック
パーティション設定
一番の難所でした。。。何にどれぐらい設定すればいいのかもわからず、自動構成だとRAIDが組めず。。。
順序としては最初にboot、boot/efiをRAID1構成で作成、2つのHDDをLVMで1つとしたところにswap、/を割り当てていきます。
それぞれに設定している容量はあくまで参考程度です。
- デバイスタイプ:RAID
- RAIDレベル:RAID1(冗長化)
- 「設定の更新」をクリック
- デバイスタイプ:LVM
- Volume Group:「修正」をクリック
- 300GBのディスク2つを選択
- RAIDレベル:RAID1を選択
- サイズポリシー:できるだけ大きく
- 「保存」をクリック
- デバイスタイプ:LVM
- Volume Group:swapで設定したボリューム
- ファイルシステム:ext4
ネットワークの設定
ポート1にLANケーブルが接続されている前提で記述しています。
後からブリッジの設定などでネットワーク設定は変更していきますが、一旦設定しておきます。
- 「ネットワークとホスト名」をクリック
- 「イーサネット(eno1)」を「ON」に変更
- 「設定」をクリックし、「IPv4のセッティング」タブを表示
- 以下を設定し「保存」をクリック
- 方式:手動
- アドレス:192.168.200.10
- サブネットマスク:255.255.255.0
- ゲートウェイ:(環境に合わせて設定)
- DNSサーバ:(環境に合わせて設定)
ブリッジの設定
現在のブリッジ設定を確認
初期状態ではvirbr0のみが存在する。
[root@Juliett ~]# brctl show
virbr0 8000.5254009fd896 yes virbr0-nic
[root@Juliett ~]#
新たなブリッジの設定を追加
今回はeno1ポートを使用してbr0ブリッジを設定します。
--- (1)
[root@Juliett system]# nmcli connection add type bridge ifname br0
接続 'bridge-br0' (8dcbbc7a-a693-4999-a211-b91f8b28d947) が正常に追加されました。
[root@Juliett system]# nmcli connection modify bridge-br0 bridge.stp no
--- (2)
[root@Juliett system]# nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses "192.168.200.10/24" ipv4.gateway "(ゲートウェイのIP)" ipv4.dns (DNSのIP)
--- (3)
[root@Juliett system]# nmcli connection add type bridge-slave ifname eno1 master bridge-br0
[root@Juliett system]# nmcli connection delete eno1 ←リモート接続だとここで切断される
--- (4)
[root@Juliett system]# systemctl restart network
[root@Juliett ~]# nmcli connection show ←作成されていることの確認
NAME UUID TYPE DEVICE
bridge-br0 8dcbbc7a-a693-4999-a211-b91f8b28d947 bridge br0
bridge-slave-eno1 62c68dba-baf5-4d53-8671-e6f75b7ece73 ethernet eno1
virbr0 731cc38d-7578-47dd-abdf-27c46466c732 bridge virbr0
vnet0 293bfa8d-4d85-47da-832d-d869f8b3fbca tun vnet0
eno2 fe8c7c94-87b4-447c-9894-5cb0627a386a ethernet --
eno3 7620ac97-db9b-483d-9fec-c95389476ebe ethernet --
eno4 0445a38c-e018-4243-8b09-4abe38d046db ethernet --
[root@Juliett ~]#
番号 | 概要 |
---|---|
1 | br0という名前のブリッジを作成。 |
2 | br0にIP、ゲートウェイ、DNSを設定。 ここはeno1に設定したIPと同じものを設定する。 |
3 | ポート1(eno1)をブリッジに追加し、eno1の接続を削除する。 リモートで接続して作業している場合は、このタイミングでネットワークが切断される。 |
4 | ネットワークを再起動して、ブリッジが作成されていることを確認する。 bridge-br0、bridge-slave-eno1が設定されていれば成功。 |
VMイメージ用のHDDをマウント
ここまででVMサーバの構築は完了したので、最後にVMイメ-ジを配置するためのHDDをマウントする。
sdc、sddにRAID1構成を設定し/mnt/kvmにマウントする。
RAID構成の作成
sdc、sddをRAID1構成として/dev/md0を作成する。
mdadm --verbose --create /dev/md0 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sdc /dev/sdd
HDDのフォーマット
HDDをext4形式でフォーマットする。
mkfs.ext4 /dev/md0
再起動時の設定
再起動後もRAID構成が維持されるように設定する。
念のために設定ファイルのバックアップを取得してから行う。
cp /etc/mdadm.conf /etc/mdadm.conf.org
mdadm --detail --scan | grep "/dev/md0" >> /etc/mdadm.conf
マウントポイントの作成
HDDをマウントするための領域を作成する。
後続の「マウント設定の追記」を行うと設定が間違っていた場合に、最悪サーバが起動しなくなるためマウントできるかどうかの確認もしておく。
mkdir -p /mnt/kvm
mount /dev/md0 /mnt/kvm
ls /mnt/kvm ←エラーが発生していなければ成功
umount /mnt/kvm ←アンマウントしておく
マウント設定の追記
再起動後も自動でマウントされるように設定する。
念のために設定ファイルのバックアップを取得してから行う。
cp /etc/fstab /etc/fstab.org
echo "/dev/md0 /mnt/kvm ext4 defaults 0 0" >> /etc/fstab
仮想マシン1の作成
ようやくVMサーバの構築が完了したのでゲストVMを構築していきます。
ISOイメージさえ用意してしまえば、Linux系でもWindows系でもサーバを構築できます。
今回はCentOS 7.3をインストールする例を紹介します。
ゲストVMの作成
- VMサーバに接続し、仮想マシンマネージャを起動
- 左上の「新しい仮想マシンの作成」をクリック
ステップ 1/5
「ローカルのインストールメディア」を選択し、「進む」をクリックします。
ステップ 2/5
「ISOイメージを使用」を選択し、「参照」をクリックします。
インストール用のISOイメージを選択し、「ボリュームの選択」をクリックします。
元の画面に戻り、選択したISOイメージが正しいこと、OSの自動判別にチェックが入っていることを確認し「進む」をクリックします。
ステップ 3/5
仮想マシンに設定するメモリ、コア数を設定します。
ここではメモリ1GB、CPU1コアを割り当てています。
※ここはVMサーバのスペック、作成する仮想マシンの数、仮想マシンに必要な性能に応じて設定してください。
ステップ 4/5
「カスタムストレージの選択または作成」を選択し、「管理」をクリックします。
ウインドウ左下の「+」をクリックし、「/mnt/kvm」を選択します。
選択したkvmが画面左に追加され、青色になっていることを確認したら、ボリューム横の「+」をクリックします。
名前に「仮想マシン名.qcow2」を入力し、最大容量に仮想マシンに割り当てるディスクサイズを設定します。
設定が正しいことを確認し、「完了」をクリックします。
作成されたボリュームが選択されていることを確認し、「ボリュームの選択」をクリックします。
設定を確認し「進む」をクリックします。
ステップ 5/5
名前に「仮想マシン名」を入力する。
「ネットワークの選択」をクリックし、作成したブリッジが選択されていることを確認したら、「完了」をクリックします。
OSのインストール
細かい手順は割愛しますが、作成したい仮想マシンの設定に合わせてインストールしていきます。
ネットワークは以下を設定します。
設定 | 値 |
---|---|
方式 | IPv4 |
割り当て | 静的 |
IPアドレス | 192.168.200.30 |
サブネットマスク | 255.255.255.0 |
接続の確認
OSのインストールが終了したら作業は完了なので、疎通確認を行っていきます。
ローカルマシンでコマンドプロンプトを立ち上げ以下のコマンドを実行します。
C:\Users>ping 192.168.200.30
192.168.200.30 に ping を送信しています 32 バイトのデータ:
192.168.200.30 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.30 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.30 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.30 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.30 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
このような表示になれば成功です。
パケットがロストするようであれば、ファイアウォールなどの設定を確認してみてください。
最後に、同じ手順で仮想マシン2(192.168.200.31)を作成することで、目標としていたネットワーク構成を構築することができました。
おわりに
無事VMサーバ構築ができましたでしょうか?
私は元々ハード系には詳しくないので、調べながら試行錯誤を繰り返してどうにか構築できました。
大分省略してしまっている部分などありますが、自分と似たようなことをしたい人の助けになればいいかなと思います。
また、このほかにもマシン室にいなくても各種作業を行えるようにVNCサーバなどのインストールも行っていますが、そちらは別の記事で紹介しようと思います。