今更ながらにHyper-vの冗長化 (Hyper-Vレプリケーション 解決編)

[今更ながらにHyper\-vの冗長化 \(Hyper\-Vレプリケーション 七転八倒編\) \- Qiita](https://qiita.com/qyen/items/079591984b30edeacd5e) の続きです。

#前回までのあらすじ
前回の構成でレプリケーションをストレージ専用ネットワーク経由にできませんでした。
![テスト環境](https://qiita-image-store.s3.amazonaws.com/0/199750/ccfdf9c2-3028-fcab-4837-e85da499c3d8.png)
![スクリーンショット (88)1.png](https://qiita-image-store.s3.amazonaws.com/0/199750/3a49ed39-a8ca-bfe5-85a9-b99a8c4c34b8.png)


原因はおそらく**HyperVコンテナがレプリケーション用に開くポートはHyperVホストが自称するFQDN[^1]でのみ受信可能**なのに、hostsで定義されたストレージネットワークの対向サーバー名がこれと異なっていた事でしょう。

[^1]: [システムのプロパティ/フルコンピュータ名](https://camo.qiitausercontent.com/0764933c16ebdec20db311187cb37d090a87b0ad/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139393735302f38336633333863322d396136362d616437612d316564632d6330393334356365623238312e706e67)


つまりは
![Untitled(1) (1).png](https://qiita-image-store.s3.amazonaws.com/0/199750/70c4a0c4-8450-b87d-c962-3a56e0b8a6a8.png)
こうなって

![Untitled(1).png](https://qiita-image-store.s3.amazonaws.com/0/199750/1f3f0e41-aed8-23e7-88a9-79cb5e6c25df.png)

こうなった。[^2]
[^2]: [知らない子ですねとは \- はてなキーワード](http://d.hatena.ne.jp/keyword/%C3%CE%A4%E9%A4%CA%A4%A4%BB%D2%A4%C7%A4%B9%A4%CD)


ホスト側の名前でつなげると
![Untitled(1) (2).png](https://qiita-image-store.s3.amazonaws.com/0/199750/d1d55f22-77e9-8f9c-87e6-d2c3274c22d6.png)
こうなっていたのでOKだった。

なので、プライマリ側からストレージ側のレプリカを**レプリカの自称するFQDN**で接続できるようにすればOKと。
![Untitled(1) (1).png](https://qiita-image-store.s3.amazonaws.com/0/199750/92be93e8-eec2-237a-0a85-858266753c8e.png)

#解決編

##構成を見直し

### システム設定
||HyperV1|HyperV2|
|:----:|:----:|:----:|
|ホスト名|castor|pollux|
|自称fqdn[^1]|castor.hyperv.local|pollux.hyperv.local|
|eth0|192.168.11.231|192.168.11.232|
|eth1|10.20.30.10|10.20.30.20|

### HOSTS の定義
```bash:hosts
# ストレージネットワーク側の設定
# サーバーのフルコンピュータ名(fqdn)を指定
10.20.30.10	castor.hyperv.local
10.20.30.20	pollux.hyperv.local

# ホストネットワーク側の設定
# 特に必要なければなくてもOK
192.168.11.231	castor.hyperv.public
192.168.11.232	pollux.hyperv.public
```
これを双方に配置

### オレオレ証明書
```powershell
New-SelfSignedCertificate -DnsName "castor.hyperv.local" –CertStoreLocation "cert:\LocalMachine\My" -TestRoot
New-SelfSignedCertificate -DnsName "pollux.hyperv.local" –CertStoreLocation "cert:\LocalMachine\My" -TestRoot
```
自称のFQDN分だけあればいいのでSAN[^3]は指定しない

## さくさくと設定

### 証明書作成
![スクリーンショット (112).png](https://qiita-image-store.s3.amazonaws.com/0/199750/05bdb1af-e7b4-3e73-fa87-e4d04c994296.png)

### 証明書の配置
![サーバー証明書のエクスポート](https://qiita-image-store.s3.amazonaws.com/0/199750/c2c3abd4-6311-d7b0-ebc8-65ff89bc24a0.png)
サーバー証明書のエクスポート

![ルート証明書のエクスポート](https://qiita-image-store.s3.amazonaws.com/0/199750/e3cf9522-9fdf-c8cf-f08d-30562bf717bc.png)
ルート証明書のエクスポート

![スクリーンショット (113).png](https://qiita-image-store.s3.amazonaws.com/0/199750/c559ec0b-aaac-704c-46f4-057dcfa41d38.png)
はい。

これを
![スクリーンショット (64).png](https://qiita-image-store.s3.amazonaws.com/0/199750/b74511bf-64ac-2619-9639-0de8f997ed61.png)
![スクリーンショット (114).png](https://qiita-image-store.s3.amazonaws.com/0/199750/115452d5-60e9-1c0f-3431-dcc7537b3dbf.png)
はい。

### レプリカサーバーの設定
![スクリーンショット (115).png](https://qiita-image-store.s3.amazonaws.com/0/199750/c18c7a7b-d0fe-5c18-c0ef-4b0ba7818da0.png)
はい。

### VMレプリケーションの設定
![スクリーンショット (116).png](https://qiita-image-store.s3.amazonaws.com/0/199750/880d3ff5-e250-63c0-7d7e-6ab726939ea6.png)

YES!!

# 双方向レプリケーション化
ここまでで castor→polluxのレプリケーションができるようになった。
せっかくなのでpollux→castorのレプリケーションも設定して双方向レプリケーションにしよう。

## 設定
ここまでの設定で双方ともにhostsと証明書がインストールされているので、必要なのは

- castorをレプリカサーバーとして有効に
- castorのFirewallに443の穴あけ

となる。

### castorをレプリカサーバーとして有効に
![スクリーンショット (118).png](https://qiita-image-store.s3.amazonaws.com/0/199750/1520b417-ed18-5af7-a92b-51f86d849a23.png)
はい。

### castorのFirewallに443の穴あけ

![スクリーンショット (119).png](https://qiita-image-store.s3.amazonaws.com/0/199750/4c7ae071-b3a5-b3da-8df0-0c104034efa4.png)
はい。

### polluxの仮想マシンにレプリケーションの設定
![スクリーンショット (120).png](https://qiita-image-store.s3.amazonaws.com/0/199750/3f10c3f8-cfd8-48e4-df6e-89faecaca87d.png)

YES!!

# 次回予告
次回は実際にフェールオーバーしてみたりします。


[^3]: Subject Alternate Names /SSLに含めるドメインの別名