2015年3月16日月曜日

VMware NSX @SoftLayer - その2 【1台目のESXi構築】


今回は、1台目のESXi5.5を構築します。
管理クラスタのうちの1台となります。
追加のPrivate VLAN関連の操作を除けば、SoftLayer上にESXiが1台必要になった場合の構築手順ともなります。

管理クラスタ内で、vCenterを動かします。
このクラスタでは、vCenterがないと制御できないものは極力利用しない方針とします。障害からの回復性を高めるためです。VSANやvFRC (vSphere Flash Read Cache) などは動かしません。分散仮想スイッチも設定しません。
vCenterをインストールするに当たり、DNSによる名前解決が必須と考えておかないと無用なトラブルに巻き込まれるので、管理クラスタ内で冗長化されたDNSキャッシュサーバーを動かします。冗長化されたログサーバーもほしいところです。
NSXを管理するための仮想サーバー群もこのクラスタで動作させます。その他、vCenterと通信が必須となるもの、例えば、vSphere Management Assistant (vMA) 等もこのクラスタに入れればよいと思います。


1台目のESXi用に物理サーバーを発注します。


【管理クラスタ所属ESXi用物理サーバーの発注】

[Account] - [Place an Order]

Order SoftLayer Products and Services
  Devices
    Bare Metal Servers
      Monthly

Dual Processor Multi-Core Servers
  Intel   Xeon 2620   12Cores   2.00GHz   Up to 4 drives   16GB - 256GB   $379

Location
  DATA CENTER: SJC01- San Jose - West Coast United States
System Configuration
  OPERATING SYSTEM: CentOS 6.x (64bit)
  HARD DRIVES
    Disks 1: 500 of 500 GB SATA
    Disks 2: 500 of 500 GB SATA
      Create RAID storage group
        Type: RAID 1
        Size: 500
        Partition Template: Linux Basic
Network Options
  UPLINK PORT SPEEDS: 1 Gbps Redundant Public & Private Network Uplinks

Host and Domain Names: mgesxi01.pod1.example.com


月額課金の物理サーバーを発注します。RAIDコントローラがなく、NICが冗長化されていないものでもよければ、時間課金の物理サーバーを選んでも構いません。クラスタにESXiホストを追加したり削除したりするテスト用途で活用できると思います。

東京のデータセンタ (tok02) を選ぶと17%増しの料金がかかるので、今回はサンノゼ・データセンタ (sjc01) で構築します。どのデータセンタを選ぶかで選択肢が変わったりする部分もあるので、できるだけ東京のデータセンタを選択すべきと考えます。本稿では、コスト最優先でサンノゼ・データセンタを選びます。

OSは、ESXiをあえて選ばず、CentOSとしています。ライセンスを持ち込む前提です。
ここで用意されているESXiを選ぶと、Enterprise Plus相当のライセンスが付与され、SoftLayer内のライセンス管理サーバーのようなものとの通信が発生し、従量課金となるようです。VSAN用のライセンスも購入できるのかどうか、SoftLayerに問い合わせてはいません。

サンノゼ・データセンタで支給されたRAIDコントローラは、Adaptec ASR-71605 でした。
VMware社が配布しているESXiのインストーラISOは、このRAIDコントローラのドライバが同梱されていないので、インストーラISOを作成する必要があります。インストーラISOの作り方は、「AACRAID Driver v1.2.1-40700 for VMware」から取得したドライバに同梱されているPDFに記載されています。
東京のデータセンタでは、LSI MegaRAID SAS 9361-8iが支給され、VMware社が配布しているインストーラISOがそのまま使えました。
HDDは、コスト面からSATAを選択していますが、故障率の低さからSSDをお勧めしておきます。SSDは寿命があるので、クラウドならではの対処法として、定期的 (2~3年おきくらい) に物理サーバーを発注しなおして、ホストを入れ替える運用がよいのだと思います。同じ値段だと性能もアップしているはずです。

NICは、管理クラスタ用ESXiホストに限り、Unbondedを選びます。通常の冗長化を選ぶと、LACPが有効化されています。分散仮想スイッチであればLACPの設定ができますが、標準仮想スイッチではできないので、注意が必要です。

※Unbondedを選び、負荷分散はせずに、アクティブ・スタンバイで構築するのが一番安全だと考えていましたが、うまくいきません。Unbondedではなく通常の「Redundant」を選び「IPハッシュに基づいたルート」で負荷分散と冗長化の両方を利用するのがよいようです。そして、チケットを発行し、LACPからStandard Ether Channel設定に変更してもらいます。状況によっては、以下の作業でssh接続できない場合もあるようですが、dcuiにてESXi Shellを有効化し、コマンドラインで冗長化設定まですれば、想定通り接続できるようになる場合があるようです。

Private Onlyを選択しておけば、物理的にインターネットとの接続ができなくなるので、よりセキュアな設計となります。インターネットとの接続を排除したい場合、管理ポータルから、Public VLANに接続されているNICを無効化することもできますし、仮想スイッチにPublic VLAN接続されているNICを関連付けないこともできますし、グローバルIPアドレスを割り当てないこともできますし、ファイアウォールを導入して通信を遮断することもできます。セキュリティ設計に合致する方法を選択すればよいです。複数の手段を併用するのも有用だと思います。今回は、必要となった場合にいつでも利用できるようにするため、Private Onlyは選択しないこととします。Public VLANをプライベート用途に利用して帯域を確保するという選択もありだとは思います。
6台以上のHDDを搭載可能な筐体を選んでおくと、10GbpsのNICを選択可能となります。今回は検証目的ということで1GbpsのNICを選択していますが、本番では、10Gbpsが必須と思われます。
なお、未検証ですが、管理ポータルから発注せずに、sales@softlayer.com経由、またはチケット経由で発注し、NICの追加を依頼することができます。徹底的にセキュリティを重視するのであれば、Public VLANをプライベート用途に利用できないと考えるべきです。

※東京データセンタにおいては、NICを追加するサービスがないとのことでした。NICを追加できるデータセンタでは、10Gbpsの冗長化NICを追加すると、$200/month追加となるみたいです。


ESXiをインストールする準備をします。


【ESXiインストール準備】

①IPMIの権限をOperatorからAdministratorへ変更する依頼チケットを発行する。
②仮想CD-ROMデバイスから起動するように、BIOS設定変更をチケットで依頼する。
③VMware社のサイトからESXiインストーラをダウンロードする。
④必要であれば、ドライバを追加したESXiインストーラを作成する。
⑤「NAS / FTP」タイプのFile Storageを発注し、ESXiインストーラをアップロードする。
⑥Portable Private IP Addressを発注する。
⑦Private VLANをチケット経由で4つ発注し、各VLANにPortable Private IP Addressを発注する。
⑧追加したPrivate VLANを物理サーバへTrunkするように依頼するチケットを出す。
⑨CentOSにログインし、Private VLAN側のNICのMACアドレスをメモしておく。
⑩eth0とeth2について、LACPからStandard Ether Channel設定に変更するようチケットで依頼する。


①、②、⑦、⑧、⑩については、チケットを発行して依頼する必要があります。
一時期、⑦については管理ポータルから発注できましたが、現在はまた発注できなくなっています。

①でAdministrator権限を取得すると、IPMIのIPアドレスを変更できるようになります。SoftLayer側がユーザによるIPMIのIPアドレス変更を想定しているかどうかは知りませんが、IPアドレスを自由に割り当てできるとネットワーク設計の幅が広がります。その場合、管理ポータルの使い勝手が悪くなるのは間違いないです。管理ポータルでみえる設定と実際のネットワーク設定が異なっている方がセキュアだという考えもなくはないかもしれません。

③で、5.5update2のインストーラ (VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64.iso) を取得します。

⑥、⑦では /26 のサイズでPortable Private IP Addressを発注することをお勧めします。無料です。
なお、Private Primary IP Addressesは、IPMIに付与されているものを除き、利用する予定はありません。Consistent Performance Storageを利用する場合は必要かもしれません。

⑦では、物理サーバーと同じPOD内にVLANを確保してもらうよう、接続するルータ名を伝える必要があります。物理ネットワーク機器 (Gateway ApplianceのVyattaを含む) を発注することになると思いますが、その場合には、PODを意識しておく必要があります。そうでない場合は、PODを意識しなくても、特に問題はないと思います。1つのPOD内ですべてを完結させるのか、複数のPODに跨ったシステムを構築するのか、最初に決めておいた方がよいです。
本稿では、以下の組み合わせで支給されたものとして例示していきます。
VLAN 1554 Portable 10.91.17.192/26 for Management   ※ VLANタグなしで利用
VLAN 1734 Portable 10.90.29.128/26 for vMotion (FT)
VLAN 1913 Portable 10.91.29.64/26  for SAN (iSCSI / VSAN)
VLAN 1981 Portable 10.91.142.0/26  for VxLAN (VTEP)
VLAN 2237 Portable 10.91.96.64/26  for Edge Gateway

⑨は、念のための作業です。vmnic0, vmnic2がPrivate VLANに接続されているはずですが、何らかのトラブル時には、MACアドレスを確認するしかない場面に遭遇するかもしれません。

※ POD: http://en.wikipedia.org/wiki/Point_of_delivery_(networking)


ESXiをインストールします。


【ESXiインストール】

①IPMIにて、ESXiインストーラISOをマウントする。
②IPMIにて、コンソールを開く。
③物理サーバーを再起動し、インストーラを起動する。
④インストールを続行する。
⑤EULAに同意する。
⑥インストール先デバイスを選択する。
⑦再インストールの場合は、いくつかの選択肢が提示されるので選ぶ。
⑧日本語キーボードを選択する。
⑨rootのパスワードを設定する。
⑩インストールを開始する。
⑪インストールの完了を待ち、IPMIにて、ESXiインストーラISOをアンマウントする。
⑫再起動する。


①で、ISOを配置したNASのホスト名を指定する際、名前ではなくIPアドレスで指定する必要があります。IPMIでは、DNSサーバーが登録されていないので、名前解決できません。


最小限のネットワーク設定を行います。


【ESXiへ管理用IPアドレス付与】

①コンソールでDCUIにログインする。
②Troubleshooting Options - Enable SSHを選択する。
③Configure Management Netwokr - IP Configurationを選択する。
④IP Address、Subnet Mask、Default Gatewayを設定する。
  10.91.17.196/255.255.255.192 gw 10.91.17.193
⑤必要があればVLAN IDを設定する。
⑥Management Networkを再起動し、設定変更を反映する。


①で「F2」キーを入力できない場合は、Virtual Keyboardを起動して入力する必要があります。

これだけの設定を行うとsshでログインできるようになります。コンソールでの作業は何かと不便なので、ここでは設定内容を最小限にしています。


sshでログインし、残りの設定を行います。


【ESXi初期設定(管理クラスタ用)】

①DNSサーバーを登録する。
esxcli network ip dns server add --server=10.91.17.251
esxcli network ip dns server add --server=10.91.17.252
esxcli network ip dns server list

②ホスト名を登録する。
esxcli system hostname set --fqdn=mgesxi01.pod1.example.com
esxcli system hostname get

③ドメイン名を登録する。
esxcli network ip dns search add --domain=pod1.example.com
esxcli network ip dns search list

④デフォルトで作成されるデータストア名を変更する。
vim-cmd hostsvc/datastore/rename datastore1 "$(hostname -s)-das01"
vim-cmd hostsvc/datastore/listsummary | grep name

⑤sshクライアントの使用を可能とする。
esxcli network firewall ruleset set --ruleset-id=sshClient --enabled=yes
esxcli network firewall ruleset list | grep ssh

⑥シェル有効化の警告を抑止する。
esxcli system settings advanced set --option=/UserVars/SuppressShellWarning --int-value=1
esxcli system settings advanced list --option=/UserVars/SuppressShellWarning

⑦Syslog転送を有効化する。
esxcli network firewall ruleset set --ruleset-id=syslog --enabled=true
esxcli system syslog config set --loghost="tcp://10.91.17.249:514,tcp://10.91.17.250:514"
esxcli network firewall ruleset list | grep syslog
esxcli system syslog config get

⑧NTPを設定する。
cat << 'EOF' | tee /etc/vmware/firewall/ntpd.xml
<!-- Firewall configuration information for NTP Daemon -->
<ConfigRoot>
    <service>
        <id>ntpServer</id>
            <rule id='0010'>
                <direction>inbound</direction>
                <protocol>udp</protocol>
                <porttype>dst</porttype>
                <port>123</port>
            </rule>
            <enabled>false</enabled>
            <required>false</required>
    </service>
</ConfigRoot>
EOF

esxcli network firewall refresh
esxcli network firewall ruleset set --ruleset-id=ntpServer --enabled=yes
esxcli network firewall ruleset set --ruleset-id=ntpClient --enabled=yes

cat << 'EOF' > /etc/ntp.conf
restrict default kod nomodify notrap noquery nopeer
restrict 127.0.0.1
restrict 10.0.0.0    mask 255.0.0.0   nomodify nopeer
restrict 172.16.0.0  mask 255.240.0.0 nomodify nopeer
restrict 192.168.0.0 mask 255.255.0.0 nomodify nopeer
restrict 100.64.0.0  mask 255.192.0.0 nomodify nopeer
server 10.0.77.54
driftfile /etc/ntp.drift
EOF

/sbin/chkconfig ntpd on
esxcli network firewall ruleset list | grep ntp
chkconfig --list ntpd

⑨IPv6を無効化する。
esxcli network ip set --ipv6-enabled=false
esxcli network ip get

⑩ジャンボフレームを有効化する。
esxcli network vswitch standard set --mtu=9000 --vswitch-name=vSwitch0
esxcli network ip interface set --interface-name=vmk0 --mtu=9000
esxcli network vswitch standard list --vswitch-name=vSwitch0
esxcli network ip interface list

⑪NICの冗長化を設定し、セキュリティ設定を変更する。
esxcli network vswitch standard uplink add --uplink-name=vmnic2 --vswitch-name=vSwitch0
esxcli network vswitch standard policy failover set --active-uplinks=vmnic0,vmnic2 --load-balancing=iphash --failure-detection=link --notify-switches=yes --failback=yes --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup policy failover set --use-vswitch --portgroup-name="Management Network"
esxcli network vswitch standard policy security set --allow-forged-transmits=no --allow-mac-change=no --allow-promiscuous=no --vswitch-name=vSwitch0

esxcli network vswitch standard policy failover get --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup policy failover get --portgroup-name="Management Network"
esxcli network vswitch standard policy security get --vswitch-name=vSwitch0
esxcli network ip interface tag get --interface-name=vmk0

⑫vMotion用のVMkernelを設定する。
esxcli network vswitch standard portgroup add --portgroup-name="vMotion Network" --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup set --portgroup-name="vMotion Network" --vlan-id=1734
esxcli network ip interface add --interface-name=vmk1 --mtu=9000 --portgroup-name="vMotion Network"
esxcli network ip interface ipv4 set --interface-name=vmk1 --ipv4=10.90.29.132 --netmask=255.255.255.192 --type=static
esxcli network ip interface tag add --interface-name=vmk1 --tagname=VMotion
esxcli network ip interface tag add --interface-name=vmk1 --tagname=faultToleranceLogging
esxcli network ip interface tag get --interface-name=vmk1

⑬SAN用のVMkernelを設定する。
esxcli network vswitch standard portgroup add --portgroup-name="Storage Area Network" --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup set --portgroup-name="Storage Area Network" --vlan-id=1913
esxcli network ip interface add --interface-name=vmk2 --mtu=9000 --portgroup-name="Storage Area Network"
esxcli network ip interface ipv4 set --interface-name=vmk2 --ipv4=10.91.29.68 --netmask=255.255.255.192 --type=static
esxcli network ip interface tag get --interface-name=vmk2

esxcli network vswitch standard portgroup list
esxcli network ip interface ipv4 get
esxcli network ip interface list

⑭再起動する。
reboot


sshでログインするにあたり、認証方法として、チャレンジレスポンス認証にてパスワードを入力する必要があります。通常のパスワード認証ではログインできません。

DNSキャッシュサーバー、Syslogサーバーは次回以降に構築します。

NTPはクライアントとしてだけではなく、サーバーとしても動くように設定しています。

※2015/12/31 追記
上記のNTPサーバーに関するファイアウォール設定は、ESXiを再起動すると消えてしまいます。
今、手元にESXi5.5がないので、ESXi6で確認しました。
修正手順は以下のようになります。


⑧NTPを設定する。
cat << EOF_ > /etc/rc.local.d/local.sh
#!/bin/sh
cat << 'EOF' | tee /etc/vmware/firewall/ntpd.xml
<!-- Firewall configuration information for NTP Daemon -->
<ConfigRoot>
    <service>
        <id>ntpServer</id>
            <rule id='0010'>
                <direction>inbound</direction>
                <protocol>udp</protocol>
                <porttype>dst</porttype>
                <port>123</port>
            </rule>
            <enabled>false</enabled>
            <required>false</required>
    </service>
</ConfigRoot>
EOF
esxcli network firewall refresh
esxcli network firewall ruleset set --ruleset-id=ntpServer --enabled=yes
esxcli network firewall ruleset set --ruleset-id=ntpClient --enabled=yes
exit 0
EOF_
/etc/rc.local.d/local.sh

cat << 'EOF' > /etc/ntp.conf
restrict default kod nomodify notrap noquery nopeer
restrict 127.0.0.1
restrict 10.0.0.0    mask 255.0.0.0   nomodify nopeer
restrict 172.16.0.0  mask 255.240.0.0 nomodify nopeer
restrict 192.168.0.0 mask 255.255.0.0 nomodify nopeer
restrict 100.64.0.0  mask 255.192.0.0 nomodify nopeer
server 10.0.77.54
driftfile /etc/ntp.drift
EOF

/sbin/chkconfig ntpd on
esxcli network firewall ruleset list | grep ntp
chkconfig --list ntpd



10.0.77.54 (time.service.networklayer.com) への問い合わせを実行するのは管理クラスタ内のESXiホストのみとし、その他のサーバーは仮想も含め、管理クラスタのESXiホストへ問い合わせることとします。他のESXiホストでの設定は以下のようになります。

esxcli network firewall ruleset set --ruleset-id=ntpClient --enabled=yes
cat << 'EOF' > /etc/ntp.conf
restrict default kod nomodify notrap noquery nopeer
restrict 127.0.0.1
server ntp01.pod1.example.com
server ntp02.pod1.example.com
server ntp03.pod1.example.com
driftfile /etc/ntp.drift
EOF
/sbin/chkconfig ntpd on
esxcli network firewall ruleset list | grep ntp
chkconfig --list ntpd

vMotion用、SAN用に【ESXiインストール準備】⑦で発注したVLANのうちの2つを割り当てます。
これらのVLANに紐づいたPortable Private IP AddressからIPアドレスを割り当てます。


SoftLayer標準のPing監視設定を変更します。


【SoftLayerのPing監視設定変更】

①付与したPortable Private IP AddressへのPing監視を追加する。
②Primary Public IP AddressへのPing監視を削除する。



これで、パブリック・クラウド (SoftLayer) 上にて、ESXiが動くようになりました。

0 件のコメント:

コメントを投稿