Microsoft Azure CentOS7.2の実態
これまでMicrosoft Azureの利用方法や仮想マシンの作成、ディスク増設、ロードバランサの作成などを中心に記事化してきました。
本記事ではもう少しOSの中身に触れていこうと思います。
Microsoft Azureが提供するCentOSにはどういったバージョンが用意されており、中身がどうなっているかの実態についてメスを入れたいと思います。作成してログインして初めて知った、というクラウドサービスも多いと思いますので、利用する前に少しでも参考になればと思います。
では最初にMicrosoft Azureが提供しているCentOSについて。
CentOSだけで見てもラインナップが多いな、という感触ですが、いわゆる仮想アプライアンスっぽいものを除くとCentOS-based *.*なるものが一般標準的なCentOSに見えます。CentOSはRHELディストリビューション互換のOSですので、RHELをご利用されているLinuxユーザーであれば親しみやすいバージョン表記と言えます。
Linuxユーザーが利用しているCentOSの多くは、centos.orgにあるISOイメージから展開したものだと思いますので、それに適合するものを選択しましょう。
CentOS-based 6.5
CentOS-based 6.6
CentOS-based 6.7
CentOS-based 7.0
CentOS-based 7.1
CentOS-based 7.2
CentOS5.xはないですが、6.xから最新の7.2までカバーされていることがわかります。
実はもう1つ気になる要素があります。公開元がOpenLogicとなっています。centos.orgではない点が長く利用されている人から見ると気持ち悪く見えるかもしれません。
OpenLogic(米)は各種オープンソース技術の商用サービスを提供しています。centos.orgのISOとの違いは中身を見るとわかりますが、waagentと呼ばれる Azureが管理するために必要なエージェントとwaagentがリポジトリに登録されている点だけですので、今まで慣れ親しんだCentOSと基本的なディストリビューションに変わりはありません。
では、早速最新版であるCentOS7.2の中身を覗いてみましょう。
今回作成したのはA2サイズのCentOS7.2です。
まずはCPUから。
[root@startuptest ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
stepping : 2
microcode : 0xffffffff
cpu MHz : 2397.183
cache size : 30720 KB
・・以下省略
XeonのE5-2673 v3 2.4GHzが使われているようですね。いいの使ってますね。
次にメモリ。
[root@startuptest ~]# cat /proc/meminfo
MemTotal: 3523796 kB
MemFree: 2916784 kB
MemAvailable: 3102256 kB・
・以下省略
3.36GBほど搭載されています。
次はディスク。
[root@startuptest ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 31440900 1327716 30113184 5% /
devtmpfs 1751956 0 1751956 0% /dev
tmpfs 1761896 0 1761896 0% /dev/shm
tmpfs 1761896 8480 1753416 1% /run
tmpfs 1761896 0 1761896 0% /sys/fs/cgroup
/dev/sdb1 139203080 61468 132047444 1% /mnt/resource
tmpfs 352380 0 352380 0% /run/user/1000
tmpfs 352380 0 352380 0% /run/user/0
[root@startuptest ~]#
これは以前の記事でも触れましたね。ローカルディスクとして利用できる容量は約30GBほどです。/mnt/resourceはテンポラリ用途で使う、でしたね。
もっといろいろ見ていきましょう。
hostsの初期設定。
[root@startuptest ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@startuptest ~]#
localhost localhost.localdomainはループバックアドレスに対するお約束です。
localhost4、localhost6、これはIPv6とIPv4が混在する環境で明示的にIPv4のループバックアドレスを指し示さなければならない場合にreservedされているホスト名ですね。
まぁ、特に意識する必要はなくIPaddress hostnameと今後追記していけばよさそうです。
次はネットワーク設定
[root@startuptest ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.4 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20d:3aff:fe50:65cc prefixlen 64 scopeid 0x20<link>
ether 00:0d:3a:50:65:cc txqueuelen 1000 (Ethernet)
RX packets 41562 bytes 57325350 (54.6 MiB)
RX errors 0 dropped 51 overruns 0 frame 0
TX packets 8697 bytes 2911582 (2.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 193 bytes 33850 (33.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 193 bytes 33850 (33.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ここで???っと思われた方もいると思います。eth0のNICに割り振られているアドレスは192.18.0.0/24で切ったsubnet内のアドレス(192.168.0.4)です。イメージしていたのはeth0がAzureポータルで設定した静的なグローバルアドレス、eth1が192.168.0.4かと思わたのではないでしょうか。そうなんです、Azureではグローバルアドレスは別に管理されている、ということがわかります。これ結構、しっかりしているなぁと思う個所で、OSのネットワーク操作に慣れている方だと簡単にOS内でIPaddressを変更することだってできてしまいます。
パブリッククラウドで管理されているアドレスの多くはDHCPサーバーから取得する方式(Azureもそう)をとるため、既に誰かに払い出されているグローバルアドレスを任意にOS側で書き換える行為ができないように設計されている、ということがわかります。
次はeth0の設定をもう少し。
[root@startuptest network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DHCP_HOSTNAME=startuptest
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=no
[root@startuptest network-scripts]#
BOOTPROTOにdhcpとありますね。ps -efで見ると/sbin/dhclientのプロセスが起動していることもわかります。
次DNS。
[root@startuptest etc]# cat resolv.conf
; generated by /usr/sbin/dhclient-script
search dkmaz4wqi3oebdscr1r11xwogc.lx.internal.cloudapp.net
nameserver 168.63.129.16
[root@startuptest etc]#
どこだこれ、というnameserverが記載されていますが、whois情報で調べるとMicrosoft Corpと出ますので、マイクロソフトが管理しているネームサーバーが初期設定で登録されていることがわかります。nslookupで外部ドメインを検索するとIPアドレスが表示され正しく正引きできていることがわかります。
念のためnsswitch.confも。
[root@startuptest etc]# grep "^hosts" /etc/nsswitch.conf
hosts: files dns
[root@startuptest etc]#
filesの次にdnsとなってますね。ですので/etc/hostsを最初に名前解決として探しにいき、なければ/etc/resolv.confに記載したネームサーバーを上から順に聞きに行く、という経路になってます。
次は時刻。
[root@startuptest etc]# date
Thu Jun 23 06:57:16 UTC 2016
[root@startuptest etc]#
ただいま6月23日15:57 JST。。。。泣きそうです。
東日本リージョンで作成したのにー、とか野暮なことは言わず、サクッと以下のコマンドでタイムゾーンを変更して現在時刻にしましょう。
timedatectl set-timezone Asia/Tokyo
次はuptimeとsar。
[root@startuptest etc]# uptime
16:01:37 up 1:14, 1 user, load average: 0.02, 0.02, 0.05
[root@startuptest etc]#
[root@startuptest etc]# sar
Linux 3.10.0-327.18.2.el7.x86_64 (localhost.localdomain) 06/23/2016 _x86_64_ (2 CPU)02:48:04 PM LINUX RESTART
02:50:01 PM CPU %user %nice %system %iowait %steal %idle
03:00:01 PM all 2.58 0.00 0.40 2.64 0.00 94.37
03:10:01 PM all 0.34 0.00 0.08 1.54 0.00 98.04
03:20:01 PM all 0.31 0.00 0.06 1.59 0.00 98.04
03:30:01 PM all 0.31 0.40 1.12 3.34 0.00 94.83
03:40:01 PM all 0.32 0.00 0.07 1.02 0.00 98.59
03:50:01 PM all 0.35 0.00 0.10 0.03 0.00 99.52
04:00:01 PM all 0.31 0.00 0.08 0.03 0.00 99.58
Average: all 0.64 0.06 0.27 1.45 0.00 97.58
[root@startuptest etc]#
uptimeはともかくsarが標準で効く(sysstatが入っている)のは少し驚きです。
ちなみにtopコマンドも利用できますね。
top - 16:04:35 up 1:17, 1 user, load average: 0.12, 0.04, 0.05
Tasks: 235 total, 2 running, 233 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.6 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3523796 total, 2806272 free, 214012 used, 503512 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3057176 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29421 root 20 0 157804 2316 1536 R 1.3 0.1 0:00.06 top
1 root 20 0 126472 7284 2632 S 0.0 0.2 0:05.09 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.13 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.10 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
次はiptables。
[root@startuptest ~]# systemctl status iptables
● iptables.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
[root@startuptest ~]#
はう!っと雄たけびを上げそうになりましたが、CentOS7からiptablesではなくfirewalldを使うようになります。といってもfirewalldはiptablesをラップしたもののようですので、実態はiptablesですが、今ままで慣れ親しんだ小難しいルール設定をぶち込むことができなくなります。iptablesとfirewalldは併用できないので、どうしてもiptablesを使いたい場合はyum install iptables.serviceから個別でインストールし、firewalldをsystemctlでdisableする必要がありそうです。
さて、だいぶ記事が長くなってきたので本記事はこの辺で一旦終わり、続きは次の記事でアプリケーションよりの情報を見てみましょう。