先日, MySQL Enterprise Auditの機能追加に関して確認したので、大きな変更は無いですが、Enterprise Firewallも再度機能確認してみました。データベースFirewallなので、XSSは防ぐ事は出来ませんが、SQL Injectionは防ぐ事が出来るのでEnterprise AuditとEnterprise Firewallの組み合わせで、重要な情報を扱うデータベースに追加する事で、セキュリティを更に強固にすることが可能です。

【利用例】

1) Webで公開しているアカウントにFirewallを設定して,外部からの入力フィルターをアプリケーションのフレームワークのEscape処理のみに依存しない。


2) 社内で利用しているアカウントにWHERE句を利用しない参照処理をさせないように制限する。(補足:MySQLでは列レベルの権限設定は可能)


3) IDSの代わりにFirewallを検知モードにしておいて、不正アクセスを検知したらEnterprise Monitorと連携してセキュリティ担当者にメールやSNMPで知らせる。

オフィシャルマニュアル
6.5.6 MySQL Enterprise Firewall

3年前のブログポスト
http://variable.jp/2015/04/13/mysql-enterprise-firewall/

Enterprise Firewallのデモ
1) Firewall OFFの状態 → 2) Firewall ONに設定

サイバーセキュリティ経営ガイドライン@経済産業省“に「指示5サイバーセキュリティリスクに対応するための仕組みの構築」に、新たに「攻撃の検知」を含めたリスク対応体制についての記載”が改定されていました。

MySQL Enterprise Firewallでブロックされる事が懸念としてある場合は、検知モードで設定する事も可能ですので検知する仕組みとして利用してみては如何でしょうか?


昨年からMySQLチームがオフィシャルレポジトリーをDockerに公開し、
最近少しずつ利用している方も増えてきて、
開発環境などでは簡単にDBが準備出来て工数削減も出来、
大活躍出来る仕組みなので簡単にレビューしておきます。

[Dockerレポジトリ]
https://hub.docker.com/_/mysql/ (Docker Team)
https://hub.docker.com/r/mysql/mysql-server/ (MySQL team at Oracle)

Tagに関しては、此方を確認下さい。(指定しない場合は、最新のイメージがダウンロードされます)
https://hub.docker.com/r/mysql/mysql-server/tags/

レポジトリーにはDockerのオフィシャルレポジトリーとMySQLチームが公開しているオフィシャルレポジトリーがあります。
イメージをPULLすると以下のような感じになります。

既に、docker pull mysql:5.7.10コマンドでDockerオフィシャルレポジトリからイメージをダウンロード済みの状態です。
追加で、MySQL@OracleのオフィシャルレポジトリーからDockerのイメージをダウンロードしてみます。
サイズだけ見ると、MySQL@Oracleのオフィシャルレポジトリーからダウンロードしたイメージの方がサイズは小さいです。


[root@DockerHost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql               5.7.10              ea0aca21950d        3 weeks ago         360.3 MB
[root@DockerHost docker]# docker pull mysql/mysql-server:5.7.10
5.7.10: Pulling from mysql/mysql-server
f359075ce4d8: Pull complete 
df9c05f5df07: Pull complete 
bea04efc3319: Pull complete 
14204cc431b4: Pull complete 
249d5b7b31c1: Pull complete 
70a368114c59: Pull complete 
c5b90de0636a: Pull complete 
59e355dc43f6: Pull complete 
f03e996fb5a3: Pull complete 
69497ffa3023: Pull complete 
e472f1765697: Pull complete 
Digest: sha256:c9266386460cfb302d21615bbe8f6a16166b2376eb371095df7cc9a1c9cf6da1
Status: Downloaded newer image for mysql/mysql-server:5.7.10
[root@DockerHost docker]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql                5.7.10              ea0aca21950d        3 weeks ago         360.3 MB
mysql/mysql-server   5.7.10              e472f1765697        4 weeks ago         294.6 MB
[root@DockerHost docker]# 

Dockerオフィシャルイメージを利用してMySQLを構築してみます。
インスタンス作成時に、データディレクトリーを指定、オプションファイルを指定、インスタンス作成と同時に
データベース作成する為に以下のスクリプトを配置してあります。ソースを確認すると*.sqlか*.shを配置しておくと、
DB作成時に読み込んでSQL文を実行してくれます。(初期共通アカウントやDB作成に使えます)

run


[root@DockerHost docker]# ls -l /docker/init_script/sakila-db/init-docker-sakila.sql 
-rw-r--r-- 1 root root 3421501 Jan  8 01:01 /docker/init_script/sakila-db/init-docker-sakila.sql
[root@DockerHost docker]# 


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@DockerHost docker]# docker run --name my_docker01 -v /docker/docker01:/var/lib/mysql -v /docker/option1:/etc/mysql/conf.d -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql:5.7.10
5152a22b2aa0c724bd260552205ebf566a21b9d854a54921f02a96e40817a930
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5152a22b2aa0        mysql:5.7.10        "/entrypoint.sh mysql"   11 seconds ago      Up 9 seconds        3306/tcp            my_docker01
[root@DockerHost docker]# 

Docker Inspectコマンドでパスのマッピングを確認


[root@DockerHost docker]# docker inspect my_docker01 | egrep 'Source|Destination'
            "Source": "/docker/docker01",
            "Destination": "/var/lib/mysql",
            "Source": "/docker/option1",
            "Destination": "/etc/mysql/conf.d",
            "Source": "/docker/init_script/sakila-db",
            "Destination": "/docker-entrypoint-initdb.d",
[root@DockerHost docker]# 

作成したインスタンスに接続して、初期設定状態を確認してみます。
確認: インスタンス接続、オプションファイルの読み込み、初期DBの作成状態。

[root@DockerHost docker]# docker exec -it my_docker01 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

root@localhost [(none)]> show tables from sakila;
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| actor_info                 |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
23 rows in set (0.07 sec)

root@localhost [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec)

root@localhost [(none)]> 

次に、MySQL@Oracleチームがオフィシャルに提供しているオフィシャルイメージを利用してインスタンスを作成してみます。
※こちらのイメージを利用する場合は、オプションファイルの指定方法が少し異なります。(/etc/my.cnf)


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5152a22b2aa0        mysql:5.7.10        "/entrypoint.sh mysql"   53 minutes ago      Up 53 minutes       3306/tcp            my_docker01
[root@DockerHost docker]# docker run --name my_docker02 -v /docker/docker02:/var/lib/mysql -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql/mysql-server:5.7.10
f59d1fd222d7b15ff0f0dfa3879254730734e17451fde56aeb402279f355941e
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   2 seconds ago       Up 1 seconds        3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   53 minutes ago      Up 53 minutes       3306/tcp            my_docker01
[root@DockerHost docker]# 

作成したインスタンスとDBの確認。(こちらは、OptionファイルはしていないのでDefaultです)


[root@DockerHost docker]# docker exec -it my_docker02 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.02 sec)

mysql> show tables from sakila;
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| actor_info                 |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
23 rows in set (0.00 sec)

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql> 

イメージは停止しても、削除(rm)しなければ継続利用出来るので以下のようにサービスを停止して再開しても、
作成したデータなどは無くならず利用する事が可能です。


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   10 minutes ago      Up 10 minutes       3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Up About an hour    3306/tcp            my_docker01
[root@DockerHost docker]# docker stop f59d1fd222d7
f59d1fd222d7
[root@DockerHost docker]# docker stop 5152a22b2aa0
5152a22b2aa0
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   11 minutes ago      Exited (0) 13 seconds ago                       my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 3 seconds ago                        my_docker01
[root@DockerHost docker]# docker start f59d1fd222d7
f59d1fd222d7
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   11 minutes ago      Up 2 seconds                3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 20 seconds ago                       my_docker01
[root@DockerHost docker]# docker exec -it my_docker02 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

補足: MySql@oracleチームのオフィシャルイメージの場合にオプションファイルを指定する場合は、以下のように実行します。


[root@DockerHost docker]# docker run --name my_docker02 -v /docker/docker02:/var/lib/mysql -v /docker/option2/my.cnf:/etc/my.cnf -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql/mysql-server:5.7.10
4fde03dc4cb5966bbfee79de92c2351f2b04812df77bf763b0e14755c3d51261
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
4fde03dc4cb5        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   22 seconds ago      Up 21 seconds               3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 24 minutes ago                       my_docker01
[root@DockerHost docker]# 

[root@DockerHost docker]# docker inspect my_docker02 | egrep 'Source|Destination'
            "Source": "/docker/docker02",
            "Destination": "/var/lib/mysql",
            "Source": "/docker/option2/my.cnf",
            "Destination": "/etc/my.cnf",
            "Source": "/docker/init_script/sakila-db",
            "Destination": "/docker-entrypoint-initdb.d",
[root@DockerHost docker]# 

参考:
https://hub.docker.com/r/mysql/mysql-server/
http://datacharmer.blogspot.jp/2015/10/mysql-docker-operations-part-1-getting.html


MySQL for Excel
MySQL for Excel

少しMySQLにあるデータを編集したり、DBのコマンドを直接実行するのが苦手なユーザーに対しては、
使えるかもしれません。全員がDBAではないので、データ管理者や利用者のオプションの選択肢として。

MySQL for Excel 1.2.1をダウンロードしてインストール
MySQL-Excel

ツールの部分にMySQL for Excelのオプションがアドオンされる。
MySQL-Excel2

MySQLのユーザー設定を入れる。(ユーザー毎にアカウント、パスワード、Default Schemaを分けておいた方が良い)
MySQL-Excel3

接続すると権限があるDBが表示される
MySQL-Excel4

テーブルを選択
MySQL-Excel5

選択すると中のデータを表示する事が出来る
MySQL-Excel6

データを編集出来る(権限必要)
MySQL-Excel7

変更を反映するかCommitを確認される
MySQL-Excel8

Commitすると以下のように処理が完了したとのレスポンスが返る
MySQL-Excel9

MySQL側でも問題無く反映されている事を確認
MySQL-Excel10


This is very useful tool form managing Windows Servers.

Core Technologies Consulting, LLC
Software/Services to save you Time and Money

http://www.coretechnologies.com/

Recent Releases
AlwaysUp 8.5 April 20 2013 Autologon…
Service Protector 3.7 March 16 2013 Scheduled restarts…
Service Security Editor January 1 2013 Initial release


Linuxシステムにてディスクボトルネックを確認する為のコマンド

VMSTAT

[root@HOME001 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1663492  10488 167444    0    0    62    19   31   58  1  0 97  2  0
[root@HOME001 ~]#

IOSTAT

[root@HOME001 ~]# iostat
Linux 2.6.32-279.el6.i686 (HOME001.localdomain)         2012年12月29日  _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.66    0.00    0.54    1.83    0.00   96.98

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.70       142.88        44.06     284638      87784
dm-0              7.92       129.00        44.04     256994      87728
dm-1              0.16         1.29         0.00       2576          0
dm-2              0.06         0.46         0.01        922         24

[root@HOME001 ~]# 

[root@HOME001 iotop-0.4.4]# iostat -d -x
Linux 2.6.32-279.el6.i686 (HOME001.localdomain)         2012年12月29日  _i686_  (1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.67     3.11    1.39    0.39    88.43    27.72    65.42     0.21  115.80  11.72   2.08
dm-0              0.00     0.00    1.57    3.42    80.07    27.33    21.51     1.78  356.10   3.90   1.95
dm-1              0.00     0.00    0.10    0.00     0.77     0.00     8.00     0.00    5.24   2.16   0.02
dm-2              0.00     0.00    0.05    0.05     0.37     0.38     7.93     0.00   16.82  12.62   0.12

[root@HOME001 iotop-0.4.4]#

[root@HOME001 iotop-0.4.4]# iostat -d -x dm-0 15 10
Linux 2.6.32-279.el6.i686 (HOME001.localdomain)         2012年12月29日  _i686_  (1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
dm-0              0.00     0.00    1.53    3.32    77.73    26.54    21.51     1.73  356.00   3.92   1.90

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
dm-0              0.00     0.00    0.00    0.20     0.00     1.60     8.00     0.02  112.33 112.33   2.25

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

iostat

iostat-part

Iotop
http://guichaz.free.fr/iotop/

Linux has always been able to show how much I/O was going on (the bi and bo columns of the vmstat 1 command).
Iotop is a Python program with a top like UI used to show of behalf of which process is the I/O going on.
It requires Python ≥ 2.5 (or Python ≥ 2.4 with the ctypes module) and a Linux kernel ≥ 2.6.20 with the
TASK_DELAY_ACCT CONFIG_TASKSTATS, TASK_IO_ACCOUNTING and CONFIG_VM_EVENT_COUNTERS options on.

必要なカーネルとPythonのバージョン確認

[root@HOME001 tools]# uname -r
2.6.32-279.el6.i686
[root@HOME001 tools]# python -V
Python 2.6.6
[root@HOME001 tools]#

uname_python

ダウンロードとインストール

[root@HOME001 tools]# wget http://guichaz.free.fr/iotop/files/iotop-0.4.4.tar.gz
--2012-12-29 07:12:15--  http://guichaz.free.fr/iotop/files/iotop-0.4.4.tar.gz
guichaz.free.fr をDNSに問いあわせています... 212.27.63.130
guichaz.free.fr|212.27.63.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 30334 (30K) [application/x-gzip]
`iotop-0.4.4.tar.gz' に保存中

100%[=============================================================================>] 30,334      21.8K/s 時間 1.4s

2012-12-29 07:12:17 (21.8 KB/s) - `iotop-0.4.4.tar.gz' へ保存完了 [30334/30334]

[root@HOME001 tools]# tar zxvf iotop-0.4.4.tar.gz
iotop-0.4.4/
iotop-0.4.4/COPYING
iotop-0.4.4/PKG-INFO
iotop-0.4.4/NEWS
iotop-0.4.4/iotop/
iotop-0.4.4/iotop/__init__.py
iotop-0.4.4/iotop/netlink.py
iotop-0.4.4/iotop/ioprio.py
iotop-0.4.4/iotop/version.py
iotop-0.4.4/iotop/data.py
iotop-0.4.4/iotop/ui.py
iotop-0.4.4/iotop/genetlink.py
iotop-0.4.4/iotop/vmstat.py
iotop-0.4.4/.gitignore
iotop-0.4.4/iotop.py
iotop-0.4.4/ChangeLog
iotop-0.4.4/setup.py
iotop-0.4.4/README
iotop-0.4.4/iotop.1
iotop-0.4.4/setup.cfg
iotop-0.4.4/THANKS
iotop-0.4.4/bin/
iotop-0.4.4/bin/iotop
[root@HOME001 tools]#

[root@HOME001 iotop-0.4.4]# ./setup.py install
running install
running build
running build_py

install

iotopの実行

[root@HOME001 iotop-0.4.4]# /usr/bin/iotop
Total DISK READ:       0.00 B/s | Total DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    7 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [events/0]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cgroup]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
[root@HOME001 iotop-0.4.4]#


[root@HOME001 iotop-0.4.4]# iotop -bto --iter=1
07:27:50 Total DISK READ:       0.00 B/s | Total DISK WRITE:       0.00 B/s
    TIME  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
[root@HOME001 iotop-0.4.4]#

iotop

iotop_optopm

以下パッケージでも入手可能との事
sudo aptitude install iotop
sudo yum install iotop
sudo emerge iotop
sudo pacman -Sy iotop

参考
http://guichaz.free.fr/iotop/

Using iotop to check I/O and swap

htopでパフォーマンス確認


SanDisk Extreme USB3.0 高速フラッシュメモリ SDCZ80 32GBのパフォーマンスが良いと聞いたので、
普段使いのUSBとして使えると思い購入してみました。

実際にパフォーマンスを確認してみたら、以前パフォーマンスを計測したときと同じマシーンで
ローカルドライブやSDカードと比較してもかなり良い数値が計測出来ました。

OLD PC
crystaldisk

NEW PC
latest-pc
昨年購入したノートPCのローカルドライブはやはり5年前に購入したノートPCと比較してもローカルドライブの処理スピードが大幅に違う様です。

前回の検証
CrystalDiskMarkによるi/o性能確認

製品
SanDisk Extreme USB3.0 高速フラッシュメモリ SDCZ80 32GB サンディスク 海外リテール[並行輸入品]


ngrep
パケットに含まれるテキストデータの内容を基にキャプチャしたい
場合などに利用出来るngrepについて。

ngrepのインストール

[root@colinux ~]# yum install ngrep
fedora 100% |=========================| 2.1 kB 00:00
updates 100% |=========================| 2.3 kB 00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package ngrep.i386 0:1.45-1.fc7 set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
ngrep i386 1.45-1.fc7 fedora 28 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 28 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): ngrep-1.45-1.fc7.i 100% |=========================| 28 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ngrep ######################### [1/1]

Installed: ngrep.i386 0:1.45-1.fc7
Complete!

ngrep

パスが通ってないようなので、必要であればパスを通しておく。

[root@colinux ~]# ngrep
bash: ngrep: command not found
[root@colinux ~]#

[root@colinux etc]# whereis ngrep
ngrep: /usr/sbin/ngrep /usr/share/man/man8/ngrep.8.gz
[root@colinux etc]#

[root@colinux etc]# vi /etc/profile.d/sbin.sh
if ! echo ${PATH} | /bin/grep -q /usr/sbin ; then
        PATH=/usr/sbin:${PATH}
fi

[root@colinux etc]# chmod 644 /etc/profile.d/sbin.sh

パスが通ったのでヘルプを見てコマンド確認。
ngrep help

先ずは、以下のコマンドでMYSQLのPORT:3306へのアクセスを確認してみる。
ngrep -W byline -q port 3306
ngrep session check

暗号化されていなければ、実行されたSQLの詳細やデータなどが良く分かる。
show tables details

tcpdumpなどでも分かるが、こちらはDefaultでGrepなので使いやすいかもしれません。

TAR BALLの場合
ダウンロード

[aws_user@192.168.11.36 tmp]$ wget 'http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fngrep%2Fngrep%2F1.45%2Fngrep-1.45.tar.bz2'
[aws_user@192.168.11.36 tmp]$ ls -l
total 13992
-rw-rw-r-- 1 aws_user aws_user 10363484 Nov  1 09:03 clustrix-common-v4.0-526.x86_64.rpm
-rw-rw-r-- 1 aws_user aws_user  3402668 Nov  1 09:03 clustrix-devnode-v4.0-8097.x86_64.rpm
-rw-rw-r-- 1 aws_user aws_user      234 Aug  8 18:55 fizzbuzz.c
-rwxrwxr-x 1 aws_user aws_user     5229 Aug  8 18:55 fizzbuzz.out
-rwxr-xr-x 1 aws_user aws_user      214 Aug  8 18:29 fizzbuzz.pl
-rw-rw-r-- 1 aws_user aws_user    18645 Aug 17 11:55 index.html
-rw-rw-r-- 1 aws_user aws_user    19142 Nov 12 15:23 index.html.1
-rw-rw-r-- 1 aws_user aws_user   463361 Nov 28  2006 ngrep-1.45.tar.bz2
-rw-rw-r-- 1 aws_user aws_user     3354 Nov  1 09:08 README.txt
drwxrwxr-x 2 aws_user aws_user     4096 Aug 10 08:25 wget
[aws_user@192.168.11.36 tmp]$ tar xvf ngrep-1.45.tar.bz2
ngrep-1.45/
ngrep-1.45/win32/
ngrep-1.45/win32/ngrep.sln
ngrep-1.45/win32/ngrep.vcproj
ngrep-1.45/win32/support/
ngrep-1.45/win32/support/getopt.c
ngrep-1.45/win32/support/getopt.h
ngrep-1.45/win32/support/inet_ntop.c
ngrep-1.45/win32/support/inet_ntop.h

... 省略

ngrep-1.45/pcre-5.0/libpcre.def
ngrep-1.45/pcre-5.0/libpcreposix.def
ngrep-1.45/pcre-5.0/RunTest.in
ngrep-1.45/pcre-5.0/configure
ngrep-1.45/pcre-5.0/install-sh
ngrep-1.45/pcre-5.0/mkinstalldirs
ngrep-1.45/pcre-5.0/config.guess
ngrep-1.45/pcre-5.0/config.sub
ngrep-1.45/pcre-5.0/ltmain.sh
[aws_user@192.168.11.36 tmp]$ ls -l
total 13996
-rw-rw-r-- 1 aws_user aws_user 10363484 Nov  1 09:03 clustrix-common-v4.0-526.x86_64.rpm
-rw-rw-r-- 1 aws_user aws_user  3402668 Nov  1 09:03 clustrix-devnode-v4.0-8097.x86_64.rpm
-rw-rw-r-- 1 aws_user aws_user      234 Aug  8 18:55 fizzbuzz.c
-rwxrwxr-x 1 aws_user aws_user     5229 Aug  8 18:55 fizzbuzz.out
-rwxr-xr-x 1 aws_user aws_user      214 Aug  8 18:29 fizzbuzz.pl
-rw-rw-r-- 1 aws_user aws_user    18645 Aug 17 11:55 index.html
-rw-rw-r-- 1 aws_user aws_user    19142 Nov 12 15:23 index.html.1
drwxr-xr-x 7 aws_user aws_user     4096 Nov 28  2006 ngrep-1.45
-rw-rw-r-- 1 aws_user aws_user   463361 Nov 28  2006 ngrep-1.45.tar.bz2
-rw-rw-r-- 1 aws_user aws_user     3354 Nov  1 09:08 README.txt
drwxrwxr-x 2 aws_user aws_user     4096 Aug 10 08:25 wget
[aws_user@192.168.11.36 tmp]$ cd ngrep-1.45
[aws_user@192.168.11.36 ngrep-1.45]$ ls -l
total 340
-rw-r--r-- 1 aws_user aws_user  44208 Oct 18  2006 config.guess
-rw-r--r-- 1 aws_user aws_user    854 Nov 28  2006 config.h.in
-rw-r--r-- 1 aws_user aws_user  32560 Oct 18  2006 config.sub
-rwxr-xr-x 1 aws_user aws_user 155425 Nov 15  2006 configure
-rw-r--r-- 1 aws_user aws_user   9916 Nov 15  2006 configure.in
drwxr-xr-x 2 aws_user aws_user   4096 Nov 28  2006 doc
-rwxr-xr-x 1 aws_user aws_user   5598 Sep 26  2004 install-sh
-rw-r--r-- 1 aws_user aws_user   1840 Nov 16  2006 LICENSE.txt
-rw-r--r-- 1 aws_user aws_user   2986 Nov 28  2006 Makefile.in
-rw-r--r-- 1 aws_user aws_user  15480 Nov 28  2006 ngrep.8
-rw-r--r-- 1 aws_user aws_user  36033 Nov 28  2006 ngrep.c
-rw-r--r-- 1 aws_user aws_user   2700 Nov 28  2006 ngrep.h
drwxr-xr-x 2 aws_user aws_user   4096 Nov 15  2006 pcre-5.0
drwxr-xr-x 4 aws_user aws_user   4096 Nov 28  2006 regex-0.12
drwxr-xr-x 2 aws_user aws_user   4096 Sep 26  2004 scripts
drwxr-xr-x 3 aws_user aws_user   4096 Nov 16  2006 win32

CONFIGURE~INSTALLまで

[aws_user@192.168.11.36 ngrep-1.45]$ ./configure

Configuring System ...

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for gcc option to accept ISO C89... none needed

...省略

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
[aws_user@192.168.11.36 ngrep-1.45]$ make
make  -C regex-0.12 regex.o
make[1]: Entering directory `/home/aws_user/tmp/ngrep-1.45/regex-0.12'
gcc -g  -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1  -I. -I. -c regex.c
make[1]: Leaving directory `/home/aws_user/tmp/ngrep-1.45/regex-0.12'
gcc -g -O2 -DLINUX -DHAVE_CONFIG_H  -D_BSD_SOURCE=1 -D__FAVOR_BSD=1  -I. -I/usr/include  -g -c ngrep.c
gcc -g -O2 -DLINUX -DHAVE_CONFIG_H  -D_BSD_SOURCE=1 -D__FAVOR_BSD=1  -L/usr/lib -s -o ngrep ngrep.o  regex-0.12/regex.o -lpcap
[aws_user@192.168.11.36 ngrep-1.45]$ sudo -s
[sudo] password for aws_user:
[root@192.168.11.36 ngrep-1.45]# make install
./install-sh -c -m 0755 ngrep  //usr/local/bin/ngrep
./install-sh -c -m 0644 ngrep.8 //usr/local/share/man/man8/ngrep.8
[root@192.168.11.36 ngrep-1.45]# 

実行してみる。

[root@192.168.11.36 ngrep-1.45]# ngrep -W byline -q port 80
interface: eth0 (192.168.11.0/255.255.255.0)
filter: (ip) and ( port 80 )

T 192.168.11.101:12814 -> 192.168.11.36:80 [AP]
GET /nagios/ HTTP/1.1.
Via: 1.1 TMG03.
Accept-Encoding:gzip.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3.
Host: 192.168.11.36.
Keep-Alive: 115.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8.
Accept-Language: ja,en-us;q=0.7,en;q=0.3.
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7.
Connection: Keep-Alive.
.


T 192.168.11.36:80 -> 192.168.11.101:12814 [AP]
HTTP/1.1 401 Authorization Required.
Date: Mon, 12 Nov 2012 06:59:18 GMT.
Server: Apache.
WWW-Authenticate: Basic realm="Nagios Access".
Content-Length: 401.
Connection: close.
Content-Type: text/html; charset=iso-8859-1.
.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>


T 192.168.11.101:13132 -> 192.168.11.36:80 [AP]
GET /favicon.ico HTTP/1.1.
Via: 1.1 TMG03.
Accept-Encoding:gzip.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3.
Host: 192.168.11.36.
Keep-Alive: 115.
Accept: image/png,image/*;q=0.8,*/*;q=0.5.
Accept-Language: ja,en-us;q=0.7,en;q=0.3.
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7.
Connection: Keep-Alive.
.


T 192.168.11.36:80 -> 192.168.11.101:13132 [AP]
HTTP/1.1 404 Not Found.
Date: Mon, 12 Nov 2012 06:59:22 GMT.
Server: Apache.
Content-Length: 209.
Connection: close.
Content-Type: text/html; charset=iso-8859-1.
.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /favicon.ico was not found on this server.</p>
</body></html>

[root@192.168.11.36 ngrep-1.45]#

参考サイト

ngrepでパケットをキャプチャしてgrep
通信内容をわかりやすくキャプチャできるngrep
Network Grepで手軽なパケットキャプチャ
bash の環境設定


WiresharkはGUIベースですが、コマンド版でtsharkが準備されています。
LinuxのCUIで利用する場合や、バッチ連携したりGUIだと重いと言った場合に便利かもしれません。

[root@CentOS64VM tools]# yum install wireshark
Loaded plugins: fastestmirror, presto
Determining fastest mirrors
 * base: ftp.jaist.ac.jp
 * extras: ftp.jaist.ac.jp
 * updates: ftp.jaist.ac.jp
base
extras
updates
updates/primary_db
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package wireshark.x86_64 0:1.2.15-2.el6_2.1 will be installed
--> Processing Dependency: libgnutls.so.26(GNUTLS_1_4)(64bit) for package: wireshark-1.2.15-2.el6_2.1.x86_64
--> Processing Dependency: libsmi.so.2()(64bit) for package: wireshark-1.2.15-2.el6_2.1.x86_64
--> Processing Dependency: libpcap.so.1()(64bit) for package: wireshark-1.2.15-2.el6_2.1.x86_64
--> Processing Dependency: libgnutls.so.26()(64bit) for package: wireshark-1.2.15-2.el6_2.1.x86_64
--> Running transaction check
---> Package gnutls.x86_64 0:2.8.5-4.el6_2.2 will be installed
--> Processing Dependency: libtasn1.so.3(LIBTASN1_0_3)(64bit) for package: gnutls-2.8.5-4.el6_2.2.x86_64
--> Processing Dependency: libtasn1.so.3()(64bit) for package: gnutls-2.8.5-4.el6_2.2.x86_64
---> Package libpcap.x86_64 14:1.0.0-6.20091201git117cb5.el6 will be installed
---> Package libsmi.x86_64 0:0.4.8-4.el6 will be installed
--> Running transaction check
---> Package libtasn1.x86_64 0:2.3-3.el6_2.1 will be installed
--> Finished Dependency Resolution

wireshark

tsharkとtcpdumpでのパケットキャプチャー

[root@CentOS64VM tools]# /usr/sbin/tshark -n -i eth0 tcp port 80
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
  0.000000 192.168.137.1 -> 192.168.137.128 TCP 50018 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
  0.114130 192.168.137.1 -> 192.168.137.128 TCP 50019 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
  0.250229 192.168.137.1 -> 192.168.137.128 TCP 50020 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
  2.999452 192.168.137.1 -> 192.168.137.128 TCP 50018 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
  3.111388 192.168.137.1 -> 192.168.137.128 TCP 50019 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
  3.251262 192.168.137.1 -> 192.168.137.128 TCP 50020 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
^C6 packets captured
[root@CentOS64VM tools]# /usr/sbin/tcpdump -n -i eth0 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:24:35.773723 IP 192.168.137.1.50022 > 192.168.137.128.http: Flags [S], seq 3779509450, win 8192, options [mss 1460,nop,wscale 2,nop
19:24:36.784314 IP 192.168.137.1.50023 > 192.168.137.128.http: Flags [S], seq 1774179078, win 8192, options [mss 1460,nop,wscale 2,nop
19:24:37.055527 IP 192.168.137.1.50024 > 192.168.137.128.http: Flags [S], seq 1893589663, win 8192, options [mss 1460,nop,wscale 2,nop
19:24:39.783694 IP 192.168.137.1.50023 > 192.168.137.128.http: Flags [S], seq 1774179078, win 8192, options [mss 1460,nop,wscale 2,nop
19:24:40.063879 IP 192.168.137.1.50024 > 192.168.137.128.http: Flags [S], seq 1893589663, win 8192, options [mss 1460,nop,wscale 2,nop
19:24:41.795255 IP 192.168.137.1.50022 > 192.168.137.128.http: Flags [S], seq 3779509450, win 8192, options [mss 1460,nop,nop,sackOK],
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel
[root@CentOS64VM tools]#

tshark

[root@CentOS64VM tools]# /usr/sbin/tshark -help
TShark 1.2.15
Dump and analyze network traffic.
See http://www.wireshark.org for more information.

Copyright 1998-2011 Gerald Combs and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Usage: tshark [options] …

Capture interface:
-i name or idx of interface (def: first non-loopback)
-f packet filter in libpcap filter syntax
-s packet snapshot length (def: 65535)
-p don’t capture in promiscuous mode
-y link layer type (def: first appropriate)
-D print list of interfaces and exit
-L print list of link-layer types of iface and exit

Capture stop conditions:
-c stop after n packets (def: infinite)
-a … duration:NUM – stop after NUM seconds
filesize:NUM – stop this file after NUM KB
files:NUM – stop after NUM files
Capture output:
-b … duration:NUM – switch to next file after NUM secs
filesize:NUM – switch to next file after NUM KB
files:NUM – ringbuffer: replace after NUM files
Input file:
-r set the filename to read from (no pipes or stdin!)

Processing:
-R packet filter in Wireshark display filter syntax
-n disable all name resolutions (def: all enabled)
-N enable specific name resolution(s): “mntC”
-d ==,
“Decode As”, see the man page for details
Example: tcp.port==8888,http
Output:
-w set the output filename (or ‘-‘ for stdout)
-C start with specified configuration profile
-F set the output file type, default is libpcap
an empty “-F” option will list the file types
-V add output of packet tree (Packet Details)
-S display packets even when writing to a file
-x add output of hex and ASCII dump (Packet Bytes)
-T pdml|ps|psml|text|fields
format of text output (def: text)
-e field to print if -Tfields selected (e.g. tcp.port);
this option can be repeated to print multiple fields
-E= set options for output when -Tfields selected:
header=y|n switch headers on and off
separator=/t|/s| select tab, space, printable character as separator
quote=d|s|n select double, single, no quotes for values
-t ad|a|r|d|dd|e output format of time stamps (def: r: rel. to first)
-l flush standard output after each packet
-q be more quiet on stdout (e.g. when using statistics)
-X : eXtension options, see the man page for details
-z various statistics, see the man page for details

Miscellaneous:
-h display this help and exit
-v display version info and exit
-o : … override preference setting
-K keytab file to use for kerberos decryption
[root@CentOS64VM tools]#

関連ページ
Wireshark (旧 Ethereal)によるネットワーク解析

参考ページ
tshark (WiresharkのCLI版) の使い方
WireSharkの裏技 〜 コマンドラインで実行できる「TShark」
tcpdump ネットワーク上を流れるパケットを監視する


システムのボトルネック発見の為に、参考になるサイトを確認していたらGDB,AWK,SORTなどの
普段の運用で利用するコマンドを利用してボトルネックを確認するシェルを作成している人がいたので
参考にさせていただきました。Profilerとして利用するのに良さそうです。

GDB
GDB, the GNU Project debugger, allows you to see what is going on `inside’ another
program while it executes — or what another program was doing at the moment it crashed.

#!/bin/bash
nsamples=1
sleeptime=0
pid=$(pidof mysqld)

for x in $(seq 1 $nsamples)
  do
    gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p $pid
    sleep $sleeptime
  done | \
awk '
  BEGIN { s = ""; } 
  /Thread/ { print s; s = ""; } 
  /^\#/ { if (s != "" ) { s = s "," $4} else { s = $4 } } 
  END { print s }' | \
sort | uniq -c | sort -r -n -k 1,1

GDBがインストールされて無かったのでインストール

[root@CentOS64VM tools]# yum install gdb
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package gdb.x86_64 0:7.2-56.el6 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================
Package Arch Version Repository  Size
=====================================================================================
Installing:
gdb    x86_64 7.2-56.el6   base   2.3 M

Transaction Summary
=====================================================================================
Install 1 Package(s)

Total download size: 2.3 M
Installed size: 5.2 M
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 2.3 M

[省略]

Trying other mirror.
gdb-7.2-56.el6.x86_64.rpm           | 2.3 MB 00:13
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : gdb-7.2-56.el6.x86_64       1/1
Verifying : gdb-7.2-56.el6.x86_64 1/1

Installed:
gdb.x86_64 0:7.2-56.el6

Complete!
[root@CentOS64VM tools]#

GDBとスクリプトの準備が出来たので実行
Profiler

TPCC-MYSQLを実行して負荷をかけた状態でシステム状態を確認してみる。

[root@CentOS64VM tools]# ./poor_mans_profiler.sh
20
2 pthread_cond_wait@@GLIBC_2.3.2,os_cond_wait,reset_sig_count=2912),log_write_up_to,trx_commit_complete_for_mysql,innobase_commit,ha_commit_one_phase,he_command,mysql_parse,dispatch_command,do_handle_one_connection,handle_one_connection,pfs_spawn_thread,start_thread,clone
1 sigwait,signal_hand,pfs_spawn_thread,start_thread,clone
1 select,os_thread_sleep,srv_master_thread,start_thread,clone
1 pthread_cond_timedwait@@GLIBC_2.3.2,os_cond_wait_timed,time_in_usec=

こちらも合わせて確認:gdb -p `pidof mysqld`
How to debug lock (hang)

参考サイト
poor man’s profiler
漢(オトコ)のコンピュータ道
poormans-profiler
GDB: The GNU Project Debugger
ファイヤープロジェクト


Windows7にてLinux環境を利用する為に、XPと同様にCoLinuxをインストールしようと思いましたが、
64bitにはインストール出来ないようでしたので、同じく無償で利用出来るVMWare Playerをインストールしました。

VMware Player
仮想マシンを最も容易に実行する手段
http://www.vmware.com/jp/products/desktop_virtualization/player/overview.html

VMware Player 製品ダウンロード センター

VMware-player-4.0.4-744019.exeの実行とインストール
install

インストールはシンプルで直ぐに終わります。
ディスク容量も必要なので、インストール先だけ予め決めておくと良いかと思います。

OSイメージのISOファイルは以下のCentOSのページからダウンロード
CentOS ISO Image
http://isoredirect.centos.org/centos/6/isos/x86_64/
Index of /pub/linux/centos/6.3/isos/x86_64

ISOイメージをダウンロードし終わったら、仮想システムのインストールを継続します。

ISOファイルの場所を指定
VM

OS
VM

メモリー、パーティションサイズの指定
MEM

基本設定完了と起動イメージ(ISO)の指定してOS設定直前まで完了
基本設定

ISO

イメージから起動してCentOSのインストール開始
インストール

インストール完了
Finish

CentOSをインストールして起動
CentOS

VMWARE TOOLSをCD MOUTしてファイルを取得してインストール。
VMwareTools-8.8.4-743747.tar.gz

[root@CentOS64VM vmware-tools-distrib]# ls -l
合計 244
-rw-r–r–. 1 root root 226388 6月 9 10:59 2012 FILES
lrwxrwxrwx. 1 root root 13 7月 15 21:51 2012 INSTALL -> ./doc/INSTALL
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 bin
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 doc
drwxr-xr-x. 4 root root 4096 6月 9 10:59 2012 etc
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 installer
drwxr-xr-x. 16 root root 4096 6月 9 10:59 2012 lib
lrwxrwxrwx. 1 root root 31 7月 15 21:51 2012 vmware-install.pl -> ./bin/vmware-uninstall-tools.pl
[root@CentOS64VM vmware-tools-distrib]#

NAT設定で利用していたので、Internetコネクションを共有するNICを指定して
Windows7側で設定してあげる。(Colinuxと同様)Windows側とLinux側のセグメントを合わせてあげてから、
/etc/sysconfig/network-scripts/ifcfg-eth0ファイルの設定を変更してあげたら無事に利用する事が出来ました。

DEVICE=”eth0″
BOOTPROTO=”dhcp”
HWADDR=”xx:xx:xx:xx:xx:xx”
NM_CONTROLLED=”yes”
ONBOOT=”on”

参考にさせて頂いたサイト
http://gendosu.jp/?p=57
http://blog.asial.co.jp/691