インターリンクの「おまかせDNS」を使ってみた

自宅ウェブサーバーの名前解決にいきなり「BIND」はハードルが高かったのでセカンダリーのISPであるインターリンクの「おまかせDNS」を使ってみました。

利用しているドメインマネージャーに下記ネームサーバーを登録して

ネームサーバー: ddns1.interlink.or.jp
ネームサーバー: ddns2.interlink.or.jp

コントロールパネルからマスターモードでドメイン名とAレコードに固定IPアドレスを指定して「登録」するだけでAWS(Amazon Web Services) の Route53並みにフレンドリーなGUIによる名前解決ができました。

AWSでDHCPv6を有効にする

AWSユーザーガイドのIPv6への移行 シナリオにしたがってCentOS7のDHCPv6を有効にした手順を未来の自分にメモします。

 まずインスタンス内から外に向けてping6 を打ってみます。

$ ping6 ipv6.google.com
connect: Network is unreachable

届きませんでしたね。そこで以下のカスタムファイルを作成して保存します。

# vi /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
network: version: 1 config: - type: physical name: eth0 subnets: - type: dhcp - type: dhcp6

ここからifcfg-eth0を手動で編集します。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no ↓ IPV6INIT=yes
DHCPV6C=yes (追記 NM_CONTROLLED=no (追記

/etc/sysconfig/network を開いて以下の行を追記して保存します。

# vi /etc/sysconfig/network
NETWORKING_IPV6=yes (追記

続いて次のコマンドで/etc/sysctl.d 下のインターフェイス固有ファイルにaccept_ra=1を設定します。

# echo "net.ipv6.conf.eth0.accept_ra=1" > /etc/sysctl.d/enable-ipv6-ra.conf && sysctl -p /etc/sysctl.d/enable-ipv6-ra.conf

accept_ra = 1 と確定していればOKです。

# ssysctl -a | grep "net.ipv6.conf.eth0.accept_ra"
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1

最後にsystemctl restart network でインターフェイスを再起動してping6を確認します。

$ ping6 ipv6.google.com
PING ipv6.google.com(nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e)) 56 data bytes 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=1 ttl=104 time=2.32 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=2 ttl=104 time=2.40 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=3 ttl=104 time=2.35 ms 64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=4 ttl=104 time=2.38 ms

今度はping6 が到達するようになりました。

参考サイト:

Amazon Virtual Private Cloud – ユーザーガイド

Crontis: AWS EC2 IPv6 not working

VMware OVF Tool 4.4.0 でVMをエクスポート

開発環境のベストプラクティスをバックアップできるVMware OVF Tool 4.4.0(2020/4/20現在最新版)でVMをエクスポートしてみる。

VMware OVF Toolを利用してESXi 6.7からVMをエクスポート

ESXiクライアント(Web Server)にインストールするよ。

$ sudo sh ./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle

VMをエクスポートできるよ。

$ ovftool --noSSLVerify vi://root:password@192.168.1.100/test-vm exported-vm.ova

GUIから.ova ファイルをドラッグ&ドロップでデプロイできるよ。

簡単だね!

アンインストール方法は、-lオプションでProduct Nameを調べて

$ sudo sh ./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle -l
Extracting VMware Installer...done. Product Name Product Version ==================== ==================== vmware-ovftool 4.4.0-15722219

–uninstall-component=vmware-ovftool するとできるよ!

$ sudo sh ./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle --uninstall-component=vmware-ovftool

ESXiでプライベートなvSwithに接続するデータベースVMを作ってみた

データベースをプライベートサブネットに秘匿するのはAWSでもESXiでも同様にセキュリティ上で大事なことなので下記URLの記事を参考にメモしました。

ESXi】仮想スイッチとポートグループを作成してVMにネットワークを追加

1.物理NICによるアップリンクのない標準仮想スイッチを追加する

左ペインの[ネットワーク] を開いて[仮想スイッチ]タブの[標準仮想スイッチの追加]からvSwitch3を追加して行きます。

[ポートグループ]タグから、先ほど追加したvSwitch3 を[仮想スイッチ]に持つ、「Local Network」という名前(名前は適当でよい)のポートを[ポートグループの追加]から追加します。

2.mariaDBデータベースサーバーVMを作る

「DB Server」という名前でmariaDBデータベースサーバー用VMを作ります。

環境 要件
CPU
メモリ 8GB
ストレージ 100GB(シンプロビジョニング)
起動オプション EFI起動
OS CentOS7

先ほど作った、「Local Network」ポートを追加します。

前回の「Web Server」同様、パワーオンしてインストレーションDVDを起動します。今回はベースを「インフラストラクチャーサーバー」「mariaDB データベースサーバー」「開発ツール」にチェックを入れます。

ネットワーク設定は今回、以下の通りにしました。

プロパティ アドレス
IPアドレス 172.16.1.100
ネットマスク 23
ゲートウェイ 172.16.1.1
DNSサーバー 172.16.1.1
ホスト名 maria.stuffy.jp

ネットワークの設定でEthernet(ens192) を接続済み[ON] にしてからユーザー、パスワードを設定して再起動します。

3.「Web Server」に2枚目のポートグループを追加する。

既存のサブネット[192.168.1.0/24]である「VM Network」に加えて新規ネットワークアダプタ「Local Network」を追加、設定していきます。

# ip a で2枚目のens224が追加されていることを確認。

ここからはDEVICEの名前変更、2つ目のvNICのアドレスを [172.16.1.10] として固定IPの払い出し、DHCP無効のコマンドを設定しています。systemctl restart network でネットワークマネージャーを再起動して設定を反映します。

[root@www ~]# nmcli c a type ethernet ifname ens224 con-name ens224(DEVICE名変更
接続 'ens224' (80221264-033b-4385-8383-b893dd56dfdc) が正常に追加されました。

[root@www ~]# nmcli d s
DEVICE  TYPE      STATE                     CONNECTION
ens192  ethernet  接続済み                  ens192
ens224  ethernet  接続中 (IP 設定を取得中)  ens224
lo      loopback  管理無し                  --

[root@www ~]# nmcli c m ens224 ipv4.address 172.16.1.10/23
(固定IP払い出し [root@www ~]# nmcli c modify ens224 ipv4.method manual
(DHCP無効 [root@www ~]# nmcli d s DEVICE TYPE STATE CONNECTION ens192 ethernet 接続済み ens192 ens224 ethernet 接続中 (IP 設定を取得中) ens224 lo loopback 管理無し -- [root@www ~]# systemctl restart network
(network再起動 [root@www ~]# nmcli d s DEVICE TYPE STATE CONNECTION ens192 ethernet 接続済み ens192 ens224 ethernet 接続済み ens224 lo loopback 管理無し --

4.「Web Server」から 「DB Server」に ping を打ってみます。

疎通確認・・・

[root@www ~]# ping 172.16.1.100
PING 172.16.1.100 (172.16.1.100) 56(84) bytes of data.
64 bytes from 172.16.1.100: icmp_seq=1 ttl=64 time=0.159 ms
64 bytes from 172.16.1.100: icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from 172.16.1.100: icmp_seq=3 ttl=64 time=0.075 ms
64 bytes from 172.16.1.100: icmp_seq=4 ttl=64 time=0.078 ms
64 bytes from 172.16.1.100: icmp_seq=5 ttl=64 time=0.078 ms
64 bytes from 172.16.1.100: icmp_seq=6 ttl=64 time=0.077 ms
^C
--- 172.16.1.100 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4999ms
rtt min/avg/max/mdev = 0.075/0.093/0.159/0.029 ms

5.「Web Server」から「DB Server」にパスワードでSSHログインしてみます。

「Local Network」 のトポロジー

お疲れ様でした。

ESXi6.7+CentOS7+GPUパススルー+cuda11.0インストールしてみる

テーマ的には新鮮味のないエントリーですが、nvidia-xconfigするとCentOS7のXウィンドウズが起動しないという事実を突き止めることができたので備忘録としてメモ。

環境要件
ハードウェア富士通 TX1310 M3
仮想化ESXi6.7 Update3
グラフィックボードNVIDIA GTX1050Ti
ゲストOSCentOS7.8
ドライバーNVIDIA-Linux-x86_64-450.51.run
CUDACUDA 11.0.3

Yahoo!ショッピングで購入した中古のNVIDIA GeForce GTX1050Ti

補助電源を必要とせず、富士通 TX1310 M3のコンパクトな筐体に収まるショート基盤のPalit GeForce GTX1050Ti です。マザーボードに差してDisplay Portから変換ケーブルでHDMIディスプレイに接続すると何もせずに映りましたが、今回は ESXi のゲストOSにコンソールでログインしてXウィンドウを起動してnvidia-smi コマンドが通ることを目標にしました。

1.ESXi のGPUパススルー設定

グラフィックボードをVMから認識できるようにする設定をしていきます。左ペインの[ホスト]-[管理]をクリックして[ハードウェア]-[PCIデバイス]-[NVIDIA Corporation GP107[GeForce GTX 1050Ti]] を選択して[パススルーの切り替え]をクリック。同様にAudio デバイスもパススルーして再起動します。

2.VMの新規作成

「ML Server」という名前でCentOS7.isoからEFI起動オプションのVMを新規作成します。

仮想ハードウェア 要件
CPU 4
メモリ 16GB(すべてのゲストメモリを予約(すべてロック)
ハードディスク 100GB

[仮想マシンオプション]から[起動オプション]-[ファームウェア]-[EFI]を選択。

ゲストOSを起動してインストーラーを開始。今回は「サーバー(GUI使用)」をベースとします。

ここからはCentOS での作業となります。

3.nouveau を無効にする

GUI起動したらroot からCUIログインに変更して再起動します。

# systemctl set-default multi-user.target

/etc/modprobe.d/modprobe.conf と/etc/modprobe.d/blacklist-nouveau.conf ファイルでOS起動と同時に立ち上がる標準のグラフィックドライバー nouveau をブラックリストに登録します。

# vi /etc/modprobe.d/modprobe.conf

blacklist nouveau

# vi /etc/modprobe.d/blacklist-nouveau.conf

options nouveau modeset=0
blacklist nouveau

yum で最新のカーネルに更新してnouveau ドライバーを無効にした起動イメージを作ります。

# yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) 

CentOS によるdracut では明示的に–omit-drivers nouveau しないとだめでした。

# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
# dracut --force --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)

いったん、VMをシャットダウンしてPCIデバイスとしてグラフィックボードを追加します。

Audioデバイスもついでに追加して[仮想マシンオプション]-[詳細]-[構成の編集]から下記設定をします。(何故だかは分かりません。)

hypervisor.cpuid.v0 FALSE

4.VMを起動→CUDAをインストール

CUDAをインストールするため、再びのCentOSでの作業となります。nouveauがロードされていないことを確認します。

$ lsmod | grep nouveau
何も表示されなければOK
$ lspci | grep -i nvidia
13:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1) 13:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)

つづいてCUDAのコンパイルに必要なgcc gcc-c++ dkms などをyum で一気に揃えます。

# yum install epel-release
epelリポジトリを導入
# yum install --enablerepo=epel dkms
# yum install pciutils gcc gcc-c++ libglvnd libglvnd-devel
# yum install centos-release-scl
scl(Software Collection) を導入
# yum install devtoolset-9
# yum install llvm-toolset-7
rhel ツールセットを導入
# scl enable devtoolset-9 bash
# scl enable llvm-toolset-7 bash

あらかじめhttps://developer.nvidia.com/cuda-toolkit からwgetでクライアントにダウンロードしたcuda_11.0.3_450.51.06_Linux.run ファイルをscp で転送して実行権限を与えて実行します。

$ wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_Linux.run
$ chmod 705 ./cuda_11.0.3_450.51.06_Linux.run
$ sudo sh ./cuda_11.0.3_450.51.06_Linux.run

cudaインストールのついでにグラフィックドライバーもインストールできる優れものなのですが、nvidia-xconfig をオプションで有効にするとXウィンドウズが 「no screens found」となり起動しません。(/var/log/Xorg.0.log を良く読む。)最終的にはnvidia-uninstallしてドライバーのアンインストールが必要でした。このあたりの細かい設定は再調査が待たれます。ここでは、drm-kernelオプションと共に無効にしてインストールしました。

パスを登録してVMを再起動します。

$ vi .bashrc
export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ source ~/.bashrc
$ echo $PATH
パス確認
# shutdown -r now

nvidia-smi と入力すると

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

エラーでドライバーが認識されていない模様。NVIDIA公式から単体でNVIDIA-Linux-x86_64-450.51.runをダウンロード、インストール、再起動すると良かったようです。

$ startx

# nvidia-smi が通りました。こんどは、anaconda, cuDNN, TensorFlow インストールしたいですね。

参考URL

インストールガイド CentOS 7.5 minimal with MATE & Nvidia CUDA 9.2 – 脱N00Bしたいエンジニア

ESXi6.7でGPUパススルーしてCUDA10とChainer4.4を使ってみる – Qiita

OS付属コンパイラが古すぎて困った人へ | HPCシステムズ Tech Blog

slurm+mpich+cudaの設定(CentOS7) – 株式会社バイオモデリングリサーチ

仮想マシンのmacアドレスの設定

ESXiの仮想マシン(CentOS7)のmacアドレスをコマンドから確認する方法をメモします。

VMware仮想マシンのMACアドレスを固定にする方法 を参考にしました。

# cd /vmfs/volumes/<データストア名>/<仮想マシン名>

# vi <仮想マシン名>.vmx
ethernet0.generatedAddress = "macアドレス"

後は、割り振られたmacアドレスを/etc/sysconfig/network-scripts/ifcfg-ens192 に

HWADDR="macアドレス"

と設定、ヤマハルーターから

dhcp scope bind 2 192.168.101.11 <macアドレス>

して作業終了です。

ESXiで仮想マシンをインストールしてみた

ESXiのネットワーク設定をいろいろ試した結果、同一セグメントであれば仮想マシン作成時に「ネットワークアダプタ」としてポートグループから仮想アダプタを選択でき、OSインストール時にIPアドレスの指定さえすれば物理NICが一つしかなくても問題なかったようです。(追加の物理NICはセカンダリのネットワークからWeb管理するときに使いたいと思います。)

今回はCentOS7を仮想マシンとしてインストールしてみました。

[仮想マシンの作成/登録]からウィザード開始。「新規仮想マシンの作成」を選択して [次へ] をクリック。

2.名前とゲストOSの選択で、名前を「Web Server」と入力。ゲストOSファミリを「Linux」、ゲストOSのバージョンで「CentOS7」を選択して[次へ] をクリック。

3.ストレージを選択で「datastore1」を選択、[次へ] をクリック。

4.設定のカスタマイズで仮想ハードウェアのスペックを[CPU] を「1」コア(物理CPUのコアを上限としてお好みで設定)。[メモリ]を「8」GB、[ハードディスク]を「100」GBに設定しました。[ネットワークアダプタ] は「VM Network」、CD/DVDドライブには、

あらかじめ内蔵HDDにアップロードしておいたISOファイルを指定したいので[データストアISOファイル]を選択、行頭三角のアイコンをクリック、展開してインストールメディアを[参照] ボタンからCentOS7のインストールイメージを選択します。ISOファイルのアップロードは[ストレージ]-[データストアブラウザ] から[アップロード] をクリックすると作業できます。(システムドライブにアップロードすると不意の障害があるかもしれないので別途、内蔵HDDを用意しています。)

5.設定の確認をして[完了]ボタンをクリックすると構成が完了します。

構成した仮想マシン「Web Server」を選択して[パワーオン]すると最初、ネットワークインストール(PXE)が起動してうまくいかないときがありますが慌てず、[パワーオフ]して[アクション]-[設定の編集]から[CD/DVDドライブ]を展開して、[パワーオン時に接続]チェックを入れ直して[接続]にもチェックし直し[パワーオン]すると無事、CentOS7のインストーラーが起動しました。[コンソールを新しいウィンドウで開く]をクリックして開始します。

使用する言語「日本語」を探して[続行(C)] をクリック・・・

インストールの概要から各種設定を行っていきます。

「ソフトウェアの選択」でベース環境から「インフラストラクチャーサーバー」、環境のアドオンから「開発ツール」を選択して[完了(D)] します。

「ネットワークとホスト名」から[設定(O)] をクリック、IPアドレスを手動で設定。最後にスイッチを「オン」にして接続します。

ここではIPアドレスを192.168.101.11としています。

ここでは「インストール先」を自動としていますが適時、/boot /root /swap の領域をカスタマイズすることができます。KDUMPは異常終了したときのメモリの状態をHDDに記録するサービスで適宜、有効にします。すべての項目が設定し終わると[インストールの開始]がグレーアウトからアクティブになります。開始をクリックするとインストールが始まりroot とユーザーアカウントのパスワード設定をします。プロンプト画面が表示されればインストール完了です。

お疲れ様でした。

物理NIC買い忘れた

ESXiホストと仮想マシンのIPアドレスは別に必要だったため、物理NICをAmazon.co.jp でお買い物。

ギガビット デスクトップPCI-e 10/100/1000 Mbps自動ネゴシエーションネットワークアダプタ(インテル 82574L / EXPI9301CT チップセット)NIC、シングル銅RJ45ポート(短縮版)

インテル PRO/1000 PT サーバ・アダプタ EXPI9400PT

届くのが来週なのでESXiホストのオレオレ認証局からSSL証明書をインポートしました。

「自己認証局(CA)と自己証明書(SSL)を Windows 版の XCA で管理してみる」

が詳しいので参照することをお勧めしますが、インポートはEdgeブラウザの[設定] -[証明書の管理] – [インポート]-[証明書のインポートウィザードの開始]から、作成した証明書を[インポート]しました。

ブラウザからホスト名でエラーなしでアクセスできることを確認して作業終了です。

来週こそゲストOSインストールしたいです。

VMware ESXiのホスト設定してみる

前回はRTX810のマルチセッションを張ってセカンダリのネットワークアドレスをルーティングする設定をしました。

今回はVMware ESXiをSSH接続してコマンドから、セカンダリのネットワークにホスト設定していきたいと思います。チュートリアル | Vmware ESXi IPアドレスの設定

SSHはTeraTermのショートカットをデスクトップに作成。コマンドラインをプロパティから設定します。

"C:\Program Files (x86)\teraterm\ttermpro.exe" <IP Address>:22 /auth=challenge /user=root /ask4passwd

チャレンジレスポンス認証でパスワード入力、ホストにSSHログインして作業開始。

メンテナンスモードに切り替え
# esxcli system maintenanceMode set --enable true
IPアドレス一覧確認 # esxcli network ip interface ipv4 get
静的IPアドレスを変更 # esxcli network ip interface ipv4 set -i vmk0 -I 192.168.101.10 -N 255.255.255.0 -t static -g 192.168.101.1
ゲートウェイを変更 # esxcli network ip route ipv4 add --gateway 192.168.101.1 --network 0.0.0.0

メンテナスモードを終了して再起動
# esxcli system maintenanceMode set --enable false # reboot

続いて、ブラウザから http://192.168.101.10 と入力して管理画面にログインしてホスト設定をします。

左ペインの[ネットワーク]-[TCP/IPスタック]-[デフォルトのTCP/IP]をクリックして左上のえんぴつ印の[設定の編集]からホスト名とドメインを入力して[保存]して作業終了です。

次はゲストOSのインストールをしてみたいですね。

VMware ESXi6.7をインストールしてみた

先週の続きは、富士通PRIMERGY TX1310 m3 に2.5インチSSDを換装するためのケーブルが届き無事、SSDでのUEFI(BIOS)起動ができたところまででした。

今週は、VMware ESXi6.7 をSSDにインストールしようとしてつまづいた点をメモ。

VMware ESXi リンク:VMware vSphere Hypervisor 6.7 ダウンロード センター にたどり着き、ESXi6.7本体をダウンロード。ライセンスキーをメモしてDVDにiso として焼く→ドライブからインストーラーが起動・・・しませんorz
Google先生に訊いてみるとDVDブートは機種特有の問題があるようでした。

【TECHブログ】RX1330M3とTX1310M3ご購入時の検討点 | PG-Direct

VMware ESXi 6.x(5.x)とDebian系Linux

インストールする際には、以下のツールをご用意ください。

USBのDVDROMドライブ(機械についているのに。。。です。別途用意します。)

DVDがダメならUSBならと rufus.exe を使ってUSB起動ドライブを作成、メモリを差してサーバー起動するとESXiインストーラーが始まったようです。

VMware vSphere Hypervisor(ESXi)をインストールしてみる を参考にセットアップするとインストール完了。画面からroot アカウント、パスワードを入力してログインできました。

次はルーターやホストのネットワーク設定をしてみたいですね。