[12/29] Ubuntu 17.10 (Artful Aardvark) Git LFS パッケージリポジトリがみつからないってゆってる

年末にこんなことをやっているのがそもそも良くないのかもしれない。

wnoguchi@serial:~$ sudo apt -y update && sudo apt -y upgrade --auto-remove && sudo systemctl reboot
取得:1 http://security.ubuntu.com/ubuntu artful-security InRelease [78.6 kB]
ヒット:2 http://ppa.launchpad.net/git-core/ppa/ubuntu artful InRelease
無視:3 https://packagecloud.io/github/git-lfs/ubuntu artful InRelease
取得:4 http://security.ubuntu.com/ubuntu artful-security/main amd64 DEP-11 Metadata [204 B]
取得:5 http://security.ubuntu.com/ubuntu artful-security/universe amd64 DEP-11 Metadata [10.2 kB]
エラー:6 https://packagecloud.io/github/git-lfs/ubuntu artful Release
  404  Not Found
ヒット:7 http://jp.archive.ubuntu.com/ubuntu artful InRelease
取得:8 http://jp.archive.ubuntu.com/ubuntu artful-updates InRelease [78.6 kB]
取得:9 http://jp.archive.ubuntu.com/ubuntu artful-backports InRelease [72.2 kB]
取得:10 http://jp.archive.ubuntu.com/ubuntu artful-updates/main amd64 DEP-11 Metadata [56.6 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu artful-updates/main DEP-11 64x64 Icons [35.2 kB]
取得:12 http://jp.archive.ubuntu.com/ubuntu artful-updates/universe amd64 DEP-11 Metadata [48.3 kB]
取得:13 http://jp.archive.ubuntu.com/ubuntu artful-updates/universe DEP-11 64x64 Icons [48.4 kB]
パッケージリストを読み込んでいます... 完了
E: リポジトリ https://packagecloud.io/github/git-lfs/ubuntu artful Release には Release ファイルがありません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
wnoguchi@serial:~$ git lfs
git-lfs/2.2.1 (GitHub; linux amd64; go 1.8.1)
Sorry, no usage text found for "git-lfs"

17.10 (Artful Aardvark) なんだけど 404 になってる。
圧倒的な Rails の 404 。

先日 Git LFS 入れたときはそんなことなかったんだけどな。

  1. Missing apt repository for Ubuntu 17.10 Artful · Issue #2702 · git-lfs/git-lfs

同じようなのが 10 月に issue あがっているがどうなんだ。
似たような issue ないか最近探してみたけどない。

俺がインストールした Git LFS は幻だったのか?と思ってヒストリ辿ってみたらインストールした形跡あった。

wnoguchi@serial:~$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
Detected operating system as Ubuntu/artful.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/github_git-lfs.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.

The repository is setup! You can now install packages.
wnoguchi@serial:~$ ./updater.sh
ヒット:1 http://jp.archive.ubuntu.com/ubuntu artful InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu artful-updates InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu artful-backports InRelease
ヒット:4 http://security.ubuntu.com/ubuntu artful-security InRelease
ヒット:5 http://ppa.launchpad.net/git-core/ppa/ubuntu artful InRelease
無視:6 https://packagecloud.io/github/git-lfs/ubuntu artful InRelease
エラー:7 https://packagecloud.io/github/git-lfs/ubuntu artful Release
  404  Not Found
パッケージリストを読み込んでいます... 完了
E: リポジトリ https://packagecloud.io/github/git-lfs/ubuntu artful Release には Release ファイルがありません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
  1. Installation · git-lfs/git-lfs Wiki
  2. apt-get updateでエラーが出た(Ubuntu) | Hornet|静岡拠点のWeb、ホームページ制作

とりあえず更新できないのは困るので git lfs はコメントアウトするとかして除外する。

sudo vim /etc/apt/sources.list

見つからねえ

こういうのは *.d ディレクトリがあるって相場が決まってる。

これだ

sudo vim /etc/apt/sources.list.d/github_git-lfs.list

deb https://packagecloud.io/github/git-lfs/ubuntu/ artful main
deb-src https://packagecloud.io/github/git-lfs/ubuntu/ artful main
↓
#deb https://packagecloud.io/github/git-lfs/ubuntu/ artful main
#deb-src https://packagecloud.io/github/git-lfs/ubuntu/ artful main

とりあえず除外してうまくいった。

wnoguchi@serial:~$ sudo apt -y update && sudo apt -y upgrade --auto-remove && sudo systemctl reboot
ヒット:1 http://jp.archive.ubuntu.com/ubuntu artful InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu artful-updates InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu artful-backports InRelease
ヒット:4 http://security.ubuntu.com/ubuntu artful-security InRelease
ヒット:5 http://ppa.launchpad.net/git-core/ppa/ubuntu artful InRelease
無視:6 https://packagecloud.io/github/git-lfs/ubuntu artful InRelease
エラー:7 https://packagecloud.io/github/git-lfs/ubuntu artful Release
  404  Not Found
パッケージリストを読み込んでいます... 完了
アップグレードできるパッケージが 5 個あります。表示するには 'apt list --upgradable' を実行してください。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージが新たにインストールされます:
  libpcre2-8-0
以下のパッケージはアップグレードされます:
  firefox firefox-locale-en firefox-locale-ja git git-man
アップグレード: 5 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
51.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 4,865 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu artful/universe amd64 libpcre2-8-0 amd64 10.22-3 [165 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu artful-updates/main amd64 firefox amd64 57.0.3+build1-0ubuntu0.17.10.1 [44.1 MB]
取得:3 http://ppa.launchpad.net/git-core/ppa/ubuntu artful/main amd64 git amd64 1:2.15.1-1~ppa0~ubuntu17.10.1 [4,570 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu artful-updates/main amd64 firefox-locale-en amd64 57.0.3+build1-0ubuntu0.17.10.1 [692 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu artful-updates/main amd64 firefox-locale-ja amd64 57.0.3+build1-0ubuntu0.17.10.1 [482 kB]
取得:6 http://ppa.launchpad.net/git-core/ppa/ubuntu artful/main amd64 git-man all 1:2.15.1-1~ppa0~ubuntu17.10.1 [1,514 kB]
51.6 MB を 22秒 で取得しました (2,280 kB/s)
(データベースを読み込んでいます ... 現在 173754 個のファイルとディレクトリがインストールされています。)
.../0-git_1%3a2.15.1-1~ppa0~ubuntu17.10.1_amd64.deb を展開する準備をしています ...
git (1:2.15.1-1~ppa0~ubuntu17.10.1) で (1:2.14.1-1ubuntu4 に) 上書き展開しています ...
.../1-git-man_1%3a2.15.1-1~ppa0~ubuntu17.10.1_all.deb を展開する準備をしています ...
git-man (1:2.15.1-1~ppa0~ubuntu17.10.1) で (1:2.14.1-1ubuntu4 に) 上書き展開しています ...
以前に未選択のパッケージ libpcre2-8-0:amd64 を選択しています。
.../2-libpcre2-8-0_10.22-3_amd64.deb を展開する準備をしています ...
libpcre2-8-0:amd64 (10.22-3) を展開しています...
.../3-firefox_57.0.3+build1-0ubuntu0.17.10.1_amd64.deb を展開する準備をしています ...
firefox (57.0.3+build1-0ubuntu0.17.10.1) で (57.0.1+build2-0ubuntu0.17.10.1 に) 上書き展開しています ...
.../4-firefox-locale-en_57.0.3+build1-0ubuntu0.17.10.1_amd64.deb を展開する準備をしています ...
firefox-locale-en (57.0.3+build1-0ubuntu0.17.10.1) で (57.0.1+build2-0ubuntu0.17.10.1 に) 上書き展開しています ...
.../5-firefox-locale-ja_57.0.3+build1-0ubuntu0.17.10.1_amd64.deb を展開する準備をしています ...
firefox-locale-ja (57.0.3+build1-0ubuntu0.17.10.1) で (57.0.1+build2-0ubuntu0.17.10.1 に) 上書き展開しています ...
git-man (1:2.15.1-1~ppa0~ubuntu17.10.1) を設定しています ...
firefox-locale-ja (57.0.3+build1-0ubuntu0.17.10.1) を設定しています ...
firefox-locale-en (57.0.3+build1-0ubuntu0.17.10.1) を設定しています ...
mime-support (3.60ubuntu1) のトリガを処理しています ...
desktop-file-utils (0.23-1ubuntu3) のトリガを処理しています ...
libc-bin (2.26-0ubuntu2) のトリガを処理しています ...
firefox (57.0.3+build1-0ubuntu0.17.10.1) を設定しています ...
Please restart all running instances of firefox, or you will experience problems.
man-db (2.7.6.1-2) のトリガを処理しています ...
gnome-menus (3.13.3-6ubuntu5) のトリガを処理しています ...
libpcre2-8-0:amd64 (10.22-3) を設定しています ...
hicolor-icon-theme (0.17-1) のトリガを処理しています ...
git (1:2.15.1-1~ppa0~ubuntu17.10.1) を設定しています ...
libc-bin (2.26-0ubuntu2) のトリガを処理しています ...

根本的に何かが解決したわけじゃないが、時間おいて見に行けばなんとかなるのではないだろうか。
LTS じゃないしこんなことは日常茶飯事だろう。

ここでブーブー文句垂れていても何も解決しないし世間様に何も貢献していない気がするのですこし考え直して GitHub の Issue 起こしておいた。

Ubuntu 17.10 artful repository not found. · Issue #2804 · git-lfs/git-lfs

LPIC2: Linux カーネル

[root@px-lpic1-centos6 ~]# find /lib/modules/`uname -r`/kernel -name "*.ko" | head
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/lockd/lockd.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/squashfs/squashfs.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/udf/udf.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/autofs4/autofs4.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/jffs2/jffs2.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/exportfs/exportfs.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/nfs_common/nfs_acl.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/gfs2/gfs2.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext4/ext4.ko
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/jbd/jbd.ko
[root@px-lpic1-centos6 ~]# modinfo ext4
filename:       /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext4/ext4.ko
license:        GPL
description:    Fourth Extended Filesystem
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
srcversion:     74AEE2BDA63AC8482A78F4D
depends:        mbcache,jbd2
vermagic:       2.6.32-696.3.1.el6.x86_64 SMP mod_unload modversions
[root@px-lpic1-centos6 ~]# lsmod | head
Module                  Size  Used by
autofs4                27000  3
8021q                  20475  0
garp                    7152  1 8021q
stp                     2218  1 garp
llc                     5418  2 garp,stp
ipt_REJECT              2383  2
nf_conntrack_ipv4       9186  2
nf_defrag_ipv4          1483  1 nf_conntrack_ipv4
iptable_filter          2793  1
[root@px-lpic1-centos6 ~]# find /lib/modules/`uname -r`/kernel -name "autofs4.ko"
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/autofs4/autofs4.ko
[root@px-lpic1-centos6 ~]# find /lib/modules/`uname -r`/kernel -name "autofs4.ko" | xargs ls -lh
-rwxr--r--. 1 root root 58K  5月 31 05:07 2017 /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/autofs4/autofs4.ko
[root@px-lpic1-centos6 ~]# cat /proc/modules | head
autofs4 27000 3 - Live 0xffffffffa0578000
8021q 20475 0 - Live 0xffffffffa056e000
garp 7152 1 8021q, Live 0xffffffffa0568000
stp 2218 1 garp, Live 0xffffffffa0564000
llc 5418 2 garp,stp, Live 0xffffffffa055e000
ipt_REJECT 2383 2 - Live 0xffffffffa0533000
nf_conntrack_ipv4 9186 2 - Live 0xffffffffa052c000
nf_defrag_ipv4 1483 1 nf_conntrack_ipv4, Live 0xffffffffa0528000
iptable_filter 2793 1 - Live 0xffffffffa0524000
ip_tables 17895 1 iptable_filter, Live 0xffffffffa051b000
[root@px-lpic1-centos6 ~]# modinfo -a ext4
Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
[root@px-lpic1-centos6 ~]# modinfo -d ext4
Fourth Extended Filesystem
[root@px-lpic1-centos6 ~]# modinfo -l ext4
GPL
[root@px-lpic1-centos6 ~]# modinfo -n ext4
/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext4/ext4.ko
[root@px-lpic1-centos6 ~]# modinfo ext4
filename:       /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext4/ext4.ko
license:        GPL
description:    Fourth Extended Filesystem
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
srcversion:     74AEE2BDA63AC8482A78F4D
depends:        mbcache,jbd2
vermagic:       2.6.32-696.3.1.el6.x86_64 SMP mod_unload modversions
[root@px-lpic1-centos6 ~]# lsmod | grep xfs
[root@px-lpic1-centos6 ~]# modinfo xfs
filename:       /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/xfs/xfs.ko
license:        GPL
description:    SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
author:         Silicon Graphics, Inc.
srcversion:     06CA178475DC4F7F5169D42
depends:        exportfs
vermagic:       2.6.32-696.3.1.el6.x86_64 SMP mod_unload modversions
[root@px-lpic1-centos6 ~]# lsmod | grep exportfs
[root@px-lpic1-centos6 ~]# modinfo exportfs
filename:       /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/exportfs/exportfs.ko
license:        GPL
srcversion:     1CA651A66F2E2EBCEAD08AC
depends:
vermagic:       2.6.32-696.3.1.el6.x86_64 SMP mod_unload modversions
[root@px-lpic1-centos6 ~]# insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/exportfs/exportfs.ko
[root@px-lpic1-centos6 ~]# lsmod | grep exportfs
exportfs                4236  0
[root@px-lpic1-centos6 ~]# rmmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/exportfs/exportfs.ko
# xfs カーネルモジュールは exportfs カーネルモジュールに依存しているので先に exportfs カーネルモジュールをロードする必要がある
[root@px-lpic1-centos6 ~]# insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/xfs/xfs.ko
insmod: error inserting '/lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/xfs/xfs.ko': -1 Unknown symbol in module
[root@px-lpic1-centos6 ~]# insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/exportfs/exportfs.ko
[root@px-lpic1-centos6 ~]# insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/xfs/xfs.ko
[root@px-lpic1-centos6 ~]# lsmod | egrep "(exportfs|xfs)"
xfs                  1135639  0
exportfs                4236  1 xfs
[root@px-lpic1-centos6 ~]# rmmod exportfs
ERROR: Module exportfs is in use by xfs
[root@px-lpic1-centos6 ~]# rmmod -s exportfs
[root@px-lpic1-centos6 ~]# tail -n1 /var/log/messages
Jul  7 08:52:00 px-lpic1-centos6 rmmod: ERROR: Module exportfs is in use by xfs

modprobe

[root@px-lpic1-centos6 ~]# rmmod xfs
[root@px-lpic1-centos6 ~]# rmmod exportfs
[root@px-lpic1-centos6 ~]# modprobe xfs
[root@px-lpic1-centos6 ~]# modprobe -r xfs
[root@px-lpic1-centos6 ~]# lsmod | egrep "(exportfs|xfs)"
[root@px-lpic1-centos6 ~]# modprobe xfs
[root@px-lpic1-centos6 ~]# lsmod | egrep "(exportfs|xfs)"
xfs                  1135639  0
exportfs                4236  1 xfs
[root@px-lpic1-centos6 ~]# modprobe -r xfs
[root@px-lpic1-centos6 ~]# lsmod | egrep "(exportfs|xfs)"
[root@px-lpic1-centos6 ~]# modprobe -lt fs | head
kernel/fs/nfs_common/nfs_acl.ko
kernel/fs/nls/nls_cp737.ko
kernel/fs/nls/nls_cp775.ko
kernel/fs/nls/nls_cp850.ko
kernel/fs/nls/nls_cp852.ko
kernel/fs/nls/nls_cp855.ko
kernel/fs/nls/nls_cp857.ko
kernel/fs/nls/nls_cp860.ko
kernel/fs/nls/nls_cp861.ko
kernel/fs/nls/nls_cp862.ko
[root@px-lpic1-centos6 ~]# modprobe --show-depends ext3
insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/mbcache.ko
insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/jbd/jbd.ko
insmod /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext3/ext3.ko
[root@px-lpic1-centos6 ~]# modinfo ext3
filename:       /lib/modules/2.6.32-696.3.1.el6.x86_64/kernel/fs/ext3/ext3.ko
license:        GPL
description:    Second Extended Filesystem with journaling extensions
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
srcversion:     CF8EACB0D78355F028912B4
depends:        mbcache,jbd
vermagic:       2.6.32-696.3.1.el6.x86_64 SMP mod_unload modversions

よーし、おじさん iperf3 でネットワークの帯域測定しちゃうぞー(上り編)

iperfの使い方 | CCNA対策から学ぶネットワーク運用ガイド

$ iperf3 -v
iperf 3.1.3
Darwin Wataru-no-MacBook-Air.local 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
Optional features available: sendfile / zerocopy

上り側(サーバー)

その前に F/W のポートをあけておく。

別に永続的に開けたいわけではないので --permanent はつけない

firewall-cmd --zone=public --add-port=5201/tcp
# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

iperf3 ではデフォルトリッスンポート 5201/tcp なのだろうか。

下り側(クライアント)

iperf3 -c 192.0.3.4
Connecting to host 192.0.3.4, port 5201
[  4] local 192.168.0.2 port 63051 connected to 192.0.3.4 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  10.9 MBytes  91.6 Mbits/sec
[  4]   1.00-2.00   sec  11.1 MBytes  93.3 Mbits/sec
[  4]   2.00-3.00   sec  9.70 MBytes  81.4 Mbits/sec
[  4]   3.00-4.00   sec  11.4 MBytes  96.0 Mbits/sec
[  4]   4.00-5.00   sec  11.2 MBytes  93.7 Mbits/sec
[  4]   5.00-6.00   sec  11.3 MBytes  94.7 Mbits/sec
[  4]   6.00-7.00   sec  11.3 MBytes  94.5 Mbits/sec
[  4]   7.00-8.00   sec  11.0 MBytes  92.7 Mbits/sec
[  4]   8.00-9.00   sec  11.4 MBytes  96.0 Mbits/sec
[  4]   9.00-10.00  sec  11.3 MBytes  95.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   111 MBytes  92.9 Mbits/sec                  sender
[  4]   0.00-10.00  sec   110 MBytes  92.5 Mbits/sec                  receiver

iperf Done.

上り側では次のような結果が出ている

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.0.2.123, port 63050
[  5] local 192.0.3.4 port 5201 connected to 192.0.2.123 port 63051
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  10.4 MBytes  87.2 Mbits/sec
[  5]   1.00-2.00   sec  11.2 MBytes  93.8 Mbits/sec
[  5]   2.00-3.00   sec  9.68 MBytes  81.2 Mbits/sec
[  5]   3.00-4.00   sec  11.3 MBytes  95.1 Mbits/sec
[  5]   4.00-5.00   sec  11.1 MBytes  93.4 Mbits/sec
[  5]   5.00-6.00   sec  11.3 MBytes  95.0 Mbits/sec
[  5]   6.00-7.00   sec  11.3 MBytes  94.5 Mbits/sec
[  5]   7.00-8.00   sec  11.2 MBytes  93.7 Mbits/sec
[  5]   8.00-9.00   sec  11.3 MBytes  94.9 Mbits/sec
[  5]   9.00-10.00  sec  11.3 MBytes  95.0 Mbits/sec
[  5]  10.00-10.01  sec   112 KBytes   102 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.01  sec   110 MBytes  92.4 Mbits/sec                  receiver

用が済んだら Ctrl+C でプロセス殺す。

ポートも閉じる。

firewall-cmd --zone=public --remove-port=5201/tcp

Server was too busy and OOM Killer fired

昨日からサーバーに繋がりにくくなっていた。
サーバーに繋がらなくなった。
大方 php-fpm のプロセスがたくさん増えて swap 発生しまくってるんだろうと思った。

1vCPU に 512MB しかない VM にそんなに多くを期待してはいけない。

IP アドレスでアクセス制限かけてたからどうせ外出先からじゃアクセスできないし、戻ったら直そうと思っていた。
メールを確認しようとしたらいよいよ認証も通らなくなったので OOM Killer 発動したかと思ってさくらの VPS のコンソール上からシリアルコンソール接続して
今つないでいる IP のアクセス許可して top を見てみた。

見事に殺されている。
yum-cron のプロセスが死んでるのはいいが、 mysqld (中身は MariaDB )のプロセスまで殺されるのは勘弁してほしい。

[root@mx1 ~]# grep "Out of memory" /var/log/messages
Oct  9 07:10:09 mx1 kernel: Out of memory: Kill process 7192 (yum-cron) score 77 or sacrifice child
Oct  9 08:05:56 mx1 kernel: Out of memory: Kill process 7354 (yum-cron) score 82 or sacrifice child
Oct  9 09:17:09 mx1 kernel: Out of memory: Kill process 7493 (yum-cron) score 73 or sacrifice child
Oct  9 10:07:45 mx1 kernel: Out of memory: Kill process 6905 (mysqld) score 52 or sacrifice child

圧倒的 php-fpm のプロセス数。

OOMKillerTop

圧倒的メモリ不足。

[root@mx1 ~]# vmstat -aS m
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 2  0   1059     70    223    140    0    0  3632    28   19   14  0  1 99  0  0

ひとまず静かにデーモンリスタート

[root@mx1 ~]# systemctl restart php-fpm

余裕が出てきた。

free

[root@mx1 ~]# vmstat -aS m
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 2  0     70    342     87     26    0    0  3632    28   19   14  0  1 99  0  0

おしまい。

Cisco VIRL (Virtual Internet Routing Labo) を VMware Workstation 12.5 にインストールする

これから CCIE 取得を目指しています。
まだ CCENT 認定ですが。。。

Don’t complicate things.

とあるように、自分が何やってんのかわかっている場合を除いて余計なことはすんなよと書いてある。

2016-09-25_19h01_37

Step 1:  Get Started

ちなみに VirtualBox には対応していない。
Vt-x/AMDv が有効になっていることを確認すること。
つまり Vt-x/AMDv の仮想化が有効になっていることが必須です。

2016-09-25_19h25_23

Step 3:  Create and Configure Virtual Networks

5 つネットワークを作成する。

VMnet8 は NAT で VIRL 仮想マシンにホスト PC を通じたインターネット接続を提供する。
その他 4 つのネットワークは VIRL に外部 L2, および L3 のコネクティビティを提供する。
これらは

Flat
Flat1
SNAT
クラスタリング INT

すでに VMnet1 が存在していたらナンバリングを1つずつずらす。
いずれも ホストオンリーネットワーク とする。

VMnet1
172.16.1.0
255.255.255.0
ローカル DHCP サービスを使用して IP アドレスを VM に配布するのチェックが外れていることを確認する。

VMnet2 172.16.2.0/24
VMnet3 172.16.3.0/24
VMnet4 172.16.10.0/24

2016-09-25_19h02_43

2016-09-25_19h03_20

2016-09-25_19h03_44

2016-09-25_19h13_39

2016-09-25_19h15_30

最終的に以下のような感じになればいい。

2016-09-25_19h17_33

Step 4:  Deploy the VIRL OVA

いよいよ Cisco VIRL の OVA (Open Virtualization Format Archive) をインポートする。
事前に VIRL の OVA ファイルとライセンスファイル *.pem ファイルをダウンロードしておくこと。

https://virl.mediuscorp.com/my-account/

ちなみに OVA はアニメの Original Video Animation のことではないので注意。
OVA といいつつハイパーバイザーによってインポートできないことが多々にしてあり、ぜんぜんオープンな気がしないんだよなあ。

virl.1.2.64.pc.ova

2016-09-25_19h34_21

2016-09-25_19h36_58

VIRL 自身の起動やらなんやらの読み込みは速いことに越したことはないので、新しい仮想マシンのストレージパスには
容量が許すなら SSD 領域自身を指定することを強くおすすめする。

2016-09-25_19h40_38

インポートが終わるまで適当に時間を潰す。

2016-09-25_19h42_04

インポート完了、やったね。

2016-09-25_19h44_29

VIRL を起動したい気持ちを抑えて設定を確認・調整する。

2016-09-25_19h45_07

2016-09-25_19h51_00

最初のネットワークアダプタは NAT になっているのを確認したらそのままそっとしておく。
ネットワークアダプタ2~5はインポート直後はブリッジになっているので、さっき作った VMnet1~4 にそれぞれ対応付ける。

2016-09-25_19h59_56

次に Intel VT-x/EPT の仮想化が有効になっていることを確認する。

2016-09-25_20h26_40

そして最後はCPUとメモリ。
潤沢にあればあるほどいい。

最低限のスペックは 2 vCPU、 4GB だが、4 vCPU, 8GB かそれ以上のリソースを割り当てることが要求されている。
VMware Workstation の推奨メモリ容量は無視しろと書いてある。
特に他に立ち上げる VM も今のところ考えていないので私は 8vCPU, 16GB の割当てをおこなった。

2016-09-25_20h30_38

Step 5:  Prepare VIRL for Activation

VM を起動して ID: virl PASS: VIRL でログイン。

2016-09-25_20h34_28

ログイン後に表示される画面。バイオハザードマークが禍々しい。
おもむろに xterm を立ち上げる。

2016-09-25_20h35_27

以下のコマンドを入力して出力が以下のように出ればひとまずここまでの手順は OK 。
KVM (Kernel Based Virtual Machine) のアクセラレーション利用可能の表示が出なければ何かがおかしいので手順に沿ってやったか見直せと書いてある。

virl@virl:~$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

2016-09-25_20h40_54

次にインターネットへの接続性を確認する。
VIRL は定期的に Cisco の SaltStack サーバーと通信をしてアクティベーションの妥当性を確認する必要がある。

ping -c 4 www.cisco.com
curl http://curltools.com/get-ip
wget --spider --no-verbose http://www.google.com

2016-09-25_20h45_14

VIRL のインストラクションにはないが、ここでひとつチューニングをしておく。
VIRL の割当メモリを使い果たすまで Swap を使うなという設定を入れる。
別にすぐ VIRL を割当メモリ目いっぱいまで酷使するわけでなければこの手順はすっ飛ばしてかまわない。
公式の手順にも載ってないし。

virl@virl:~$ sudo -i
root@virl:~# cat /proc/sys/vm/swappiness 
60

キーボードが英字配列になっていることに注意をする。
イコールは日本語キーボードの場合チルダ ~ のキーを Shift 無しでタイプした時に出てくる。
また、保存するときのコロン : はセミコロン ; のキーを Shift キー押しながらタイプすると入力できる。
また、 vi は vim でないことに注意する。
とても使いづらい。

root@virl:~# vi /etc/sysctl.conf
vm.swappiness = 0
root@virl:~# sysctl -p
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward = 1
vm.swappiness = 0
root@virl:~# cat /proc/sys/vm/swappiness 
0
root@virl:~# exit

中身をちょっと見るとわかるが、 Ubuntu Linux 14.04 LTS (Trusty) がベースとなっており、 OpenStack がインストールされているようだ。
なるほどなあ。

virl@virl:~$ cat /etc/debian_version 
jessie/sid
virl@virl:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

Step 6:  Activate VIRL

VIRL の IP アドレスを調べてホスト側のブラウザからその IP にアクセスする。

2016-09-25_21h04_45

Web 管理画面が見えるはず。
圧倒的 Bootstrap 感。

2016-09-25_21h07_23

User Workspace Management を選択し、以下のログイン情報を入力する。

ID: uwmadmin
PASS: password

2016-09-25_21h10_05

2016-09-25_21h12_10

各フィールドを埋める。

Salt ID and domain には pem ファイルの拡張子抜きのファイル名を、
Customer email Address は読んで字のごとく、
List of Cisco salt masters は地理的に近いものを適当に選んで突っ込む。
正直日本の場合 us のほうでとくに問題はないと思われる。

us-1.virl.info, us-2.virl.info, us-3.virl.info, us-4.virl.info
eu-1.virl.info, eu-2.virl.info, eu-3.virl.info, eu-4.virl.info

Master sign public key はドントタッチミー。
Minion private RSA key in PEM format には pem ファイルの中身をまんまコピペする。

そして Reset ボタンクリック。

2016-09-25_21h21_42

どこか 1 つでも Salt サーバーとライセンスの検証ができていれば OK 。

2016-09-25_21h25_35

Step 7:  Customize the VIRL Configuration (Optional)

特筆して変更するところはないが、 16GB より多くのメモリを搭載しているなら RAMdisk オプションが使えるようだ。
インメモリディスクを使用することで、シミュレーションのスタートアップタイムを減らせるらしい。
速いに越したことはないのでここでさらにメモリを 16GB -> 24GB にして RAMdisk をオンにした。

24 * 1024 = 24576 MB

2016-09-25_21h38_20

まずメンテナンスモードを有効にしろとある。
メンテナンスモードを有効にする。
そして Apply 。

2016-09-25_21h40_59

オールグリーンになったらシステムリブートしろやと出てくるので、おとなしく再起動する。
WebUI 上の Reboot ボタンを押すだけで VIRL 仮想マシンをリブートできるみたい。
素晴らしいな・・・。

2016-09-25_21h44_07

リブート終わったら Disable maintenance mode にし、 OK ボタンをクリック

2016-09-25_21h46_21

Step 8:  Validate the VIRL Installation

VIRL が正しくインストール・設定できたことを以下のコマンドで検証せよとある。

OpenStack の Neutron ネットワーキングモジュールの動作確認ですね。
xterm をおもむろに立ち上げる。
alive のところが全部スマイリーマーク :-) になっていれば OK 。

virl@virl:~$ neutron agent-list
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| id                                   | agent_type         | host | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| 73edf60e-2951-4dfb-8ce7-a2fa58f9199a | DHCP agent         | virl | :-)   | True           | neutron-dhcp-agent        |
| be125ca6-3381-4e8a-95d1-6de54bd99788 | Linux bridge agent | virl | :-)   | True           | neutron-linuxbridge-agent |
| c3195bd1-f054-4a0b-85ae-3935ecbe260f | Metadata agent     | virl | :-)   | True           | neutron-metadata-agent    |
| defeaa84-8b4c-4c5c-b101-b1555520a710 | L3 agent           | virl | :-)   | True           | neutron-l3-agent          |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+

2016-09-25_21h52_43

そして VIRL STD と UWM サービスがすべて listening ステートになっていることを確認する。
インメモリ KVS である Redis も内部で動いていることが見て取れる。

virl@virl:~$ sudo virl_health_status | grep listening
...
(snip)
virl-vis-webserver listening on port 19402
ank-cisco-webserver listening on port 19401
STD server on url http://localhost:19399 is listening, server version 0.10.27.8
UWM server on url http://localhost:19400 is listening, server version 0.10.27.8
Webmux server on url http://localhost:19403 is listening
Redis server on 127.0.0.1:6379 is listening

2016-09-25_21h56_55

Display the VIRL license configuration

以下の点を確認する。

‘hostid’ が pem ファイルのファイル名部分と同じになっていること
‘product-capacity’ がライセンス上で許可されているノード数(私の場合は 30 )になっていること
‘product-expires’ ‘7’ となっていること。(7 日で切れるということ。切れたらまたソルトサーバーにバリデートしにいく)

virl@virl:~$ sudo virl_health_status | grep -A 4 -e hostid -e product
...
(snip)
hostid : ********.virl***.info
product-license : [u'us-1.virl.info', u'us-2.virl.info', u'us-3.virl.info', u'us-4.virl.info']
product-capacity : 30
product-expires : 7
features : [u'Cariden.MATE.import', u'Cariden.MATE.export']
product-usage : 0
uwm-url : http://192.168.200.128:19400/admin/salt/

2016-09-25_22h06_04

Step 8:  Install and Configure VM Maestro

ネットワークのトポロジを作成、シミュレーションするツール、 VM Maestro をインストールする。
Maestro とは芸術家、専門家、音楽の指揮者等の意味があるようだ。

というか、 VM Maestro のスプラッシュに指揮者のシルエットが出るようになっている。 最近はスプラッシュが出なくなったようだ。

2016-09-25_22h38_53

ブラウザで VIRL Server の WebUI にアクセスして、 VM Maestro クライアントをインストールするプラットフォームに応じたバイナリをダウンロードする。
ここでは Windows x64 アーキテクチャと仮定する(たぶんそんなに変わらない)。

2016-09-25_22h09_41

2016-09-25_22h11_30

ダウンロードしたやつを普通にインストール。

これもベースは Eclipse となっている。
オープンソース活用しまくりだな。

VM Maestro を立ち上げてライセンスアグリーメントに同意して、匿名のレポート送るか聞かれるので、チェックを入れてやめろとしておく。
文字化けしてるし。

こいつはクライアントなので、先程 VMware Workstation 上にインストールした VIRL サーバーなしには生きていけない。
接続先を VIRL サーバーに変えてやる必要がある。

2016-09-25_22h14_41

ID, パスワードは以下でよい、 IP アドレスはさっき調べた VIRL サーバーの IP アドレスを入力。

ID: guest
PASS: guest

そしてサービスへの接続チェックがオールグリーンになれば OK 。

2016-09-25_22h20_33

なんか Eclipse の Secure Storage にマスターパスワードが保存されたらしいので、リカバリ用の秘密の質問を入力するか聞かれるのでとりあえず Yes としておいた。

2016-09-25_22h21_49

2016-09-25_22h23_30

最後にやること

以下の手順で Node Subtype の一覧をデフォルトにリセットして、 VIRL ホストで利用可能な node sub-types をすべて再取得する必要がある。

File -> Preferences を開く。
まずは Restore Defaults でリセットする。

2016-09-25_22h30_49

そして VIRL サーバーからサブタイプの一覧を取得する。

2016-09-25_22h32_45

シミュレーションをちょっとやってみよう

RAMdisk を enable にした状態。
8 vCPU
24 GB

すべてのノードが起動するまでに要した時間はおよそ 1 分程度。

(INFO) [Sep/25/2016 13:43:37] simulation "topology-97p7fh": nodes can start
(INFO) [Sep/25/2016 13:43:43] Starting node "~mgmt-lxc"
(INFO) [Sep/25/2016 13:43:44] Starting node "iosv-1"
(INFO) [Sep/25/2016 13:43:49] Starting node "iosv-2"
(INFO) [Sep/25/2016 13:43:54] Starting node "iosv-3"
(INFO) [Sep/25/2016 13:44:00] Starting node "iosvl2-1"
(INFO) [Sep/25/2016 13:44:07] Starting node "server-1"
(INFO) [Sep/25/2016 13:44:07] Node "iosv-1" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosv-2" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosv-3" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosvl2-1" state changed from ABSENT to BUILDING
(INFO) [Sep/25/2016 13:44:07] Node "~mgmt-lxc" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:12] Starting node "server-2"
(INFO) [Sep/25/2016 13:44:17] Starting node "server-3"
(INFO) [Sep/25/2016 13:44:36] Node "iosvl2-1" state changed from BUILDING to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-1" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-2" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-3" state changed from ABSENT to ACTIVE

ルーター右クリックでコンソールポートに接続できる。

2016-09-25_22h57_16

10.1.0.0/24 のマルチアクセスネットワークを想定して IP アドレスをルーターに設定して ping を打ってみたところ。

2016-09-25_22h54_57

お疲れ様でした。

Tips

あとの普段のシミュレーション自体は VIRL の仮想マシンが立ち上がっていればよいので、とくに Linux にログインする必要もなければ、 WebUI にログインする必要もない。

参考サイト

  1. VIRL via VMware Workstation
  2. VIRL | CCIEおじさん日記