2016年2月27日土曜日

Windows 10でBluetoothテザリングを使ってみた話

1年ほど前にMSI S100という安物のWindowsタブレットを購入した。CPUやメモリが非力でイマイチ使い道が無くて困っていたが、会社でBYOD (Bring Your Own Device ; 私的デバイス活用)として業務端末として利用できることがわかったので、申請して使ってみることにした。

BYODとしての利用は予想より快適なのだが以下2点の不満があった。

 ①テザリングを使って接続する際に通信が安定しない
 ②バッテリーの消費が早い

この2点の問題を解消することを目的として、WiFiテザリングをやめて、Bluetoothテザリングにしてみることにした。設定方法が思ったよりわかりにくかったので、備忘として記載する。

Bluetoothテザリング設定方法

ペアリングの設定

1. テザリング対象のスマートフォンの設定画面から「接続」→「Bluetooth」を選択し、BluetoothをOnにする
 ※Androidのバージョンや機種によって若干表現が異なる場合がある

2. Windows 10のスタートメニューから「設定」を選択する

3. 「デバイス」→「Bluetooth」を選択し、BluetoothをOnにする

4. 対象のスマートフォンが見えてきたら、「ペアリング」を実施


5. Windows上にパスコード確認のメッセージが表示される。同時にスマートフォンにも表示されるので、コードが同じことを確認し、両方を「はい」・「OK」を選択する



6. ペアリングが完了し、「ペアリング済み」になることを確認する


Bluetoothテザリングの設定

1. スマートフォンの設定画面から、「接続」→「テザリング」を選択し、「Bluetoothテザリング」をOnにする
※Androidのバージョンや機種によって若干表現が異なる場合がある


2. WindowsにてタスクトレイのBluetoothアイコンを右クリックし、「パーソナルエリアネットワークへ参加」を選択する


3. 「デバイスとプリンター」が開かれ、先ほどペアリングしたスマートフォンが表示されていることを確認する


4. 表示されているスマートフォンを右クリックし、「接続方法」→「アクセスポイント」を選択する


5. これでテザリングが有効になる。ただし、私の場合、以下2点の問題が発生した

 ①接続方法を選ぶ際に「アクセスポイント」ではなく「直接接続」になる。
  →Windowsを再起動して接続し直すことで解消

 ②初回接続時、テザリングで接続してもDNSの名前解決に失敗して接続できない
  →Bluetoothの接続をし直すことで解消

上記問題は設定当初だけ発生しており、現在はまったく発生しなくなった。

接続の簡略化

1. 接続手順を簡略化するために以下を実施

 ①スマートフォン側は常にBluetoothをOn、BluetoothテザリングをOn

 ②Windows側はデバイスのショートカットをデスクトップに作成


WiFiテザリングからBluetoothテザリングにしてみて

実際にBluetoothテザリングで接続すると、WiFi接続と比較すると、速度は若干遅いと感じる時がある。特に画像の重たいサイトを閲覧する際は画像が表示されるまでのタイムラグが発生する。しかし、WiFiテザリング時の不安定さは解消され、通常業務として利用する分には何ら問題はなくなった。

また、スマートフォンに関しては常にBluetoothをOnにする運用としても、ほとんどバッテリーの消費は変わらず、WindowsタブレットもWiFiをOffにしてBluetoothのみで接続することで、バッテリーの持ちが若干改善されたようだ。

2016年2月20日土曜日

SSHD (ソリッド・ステート・ハイブリッド・ドライブ)を買ってみた

ノートPCを新調する際にカスタマイズ項目があるのだが、ハードディスクにて、HDD・SDD・SSHDが選択できた。はて、SSHDとは何だろう?

調べてみると、ソリッド・ステート・ハイブリッド・ドライブの略称らしく、本体500GBの通常のHDDに加えて、8GBのSSD領域が加わったハードディスクのことらしい。このSSD領域はキャッシュとして動作するため、頻繁にアクセスが発生するデータをSSDに配置することで、全体的なパフォーマンス向上が期待できるらしい。SSD領域へのデータ配置はハードディスクにて自動で行われるとのこと。

商用のストレージでは数年前くらいから流行っている技術で、ストレージ階層化(Tiered Storage)などと呼ばれる。速い順に、SSD、通常HDD、低速大容量HDDをストレージの階層(Tier)として1つのストレージ装置内で管理させ、アクセス頻度順に動的にデータを再配置することで、高速かつ大容量かつ低コストなストレージを実現する技術となる。

話を戻して、通常SSHDなど買う機会もなく、製品として面白そうなので、あえてSSHDを選択し購入することにした。

ノートPCが届いたので型番を確認すると以下の通りだった。どうやらSeagate製らしい。

   ST500LM000-SSHD-8GB

早速、CrystalDiskMark3_0_4で速度計測をした結果は以下の通り。数年前に購入したハードディスクよりは速いが、SSDに比べると全然遅い。


そもそも領域のほとんどは通常のHDDと何ら変わりなく、あくまで「よく使うデータ」がSSD領域に配置されるものなので、ベンチマークとして一時的に作ったデータではほとんど効果は出ないということだろう。

先述した通り、SSDへのデータ配置は自動で行われるようなので、このまま使い続けることで、PCの起動が高速化されることを祈りつつ、しばらく使ってみることにしよう。本当は旧PCがSSDを搭載しているので入れ替えようとも思ったが、旧PCはすでにvSphere Hypervisorでサーバー化してしまったし。

2016年2月14日日曜日

QNAPにntpdをインストールしてNTPサーバーにしてみた

先日ノートPCを新調したため、旧PCにvSphere Hypervisor 6.0 (= vSphere ESXi)をインストールして仮想環境として利用することにした。その際に、インターネットアクセスをしないESXiや仮想マシンの時刻同期が実施できない問題が発生した。

すべてのサーバーにDNSを設定してインターネット経由で時刻同期するのはセキュリティ面でよろしくない。そこで、内部ネットワーク内にNTPサーバー(ntpdによるNTP Server)を構築することにした。

NTPサーバーは常時稼働している機器がよいのだが、ブロードバンドルーターはNTPサーバーの機能がなかったため、NAS (QNAP TS-112P)をNTPサーバーとして構築することにした。なお、QTS (QNAPの組み込みOS)は4.2.0で実施している。

QNAP TS-112P NTPサーバー構築手順

TS-112P(だけでなく、おそらくQNAPのNAS全般)はNTPクライアントの機能はあるが、NTPサーバーの機能はデフォルトでは実装されていない。そのためNTPサーバーの構築は、GUIだけでなくSSHによるCLIを使った、ちょっと入り組んだ作業が必要となる。

以下に構築手順を記載する。

1. Entwareのインストール

以前はOptwareという名前だったようだが、Entwareという名前に変わっているようだ。これは、NAS上でLinuxベースのパッケージ(ipkgと呼ばれるらしい)をインストールするためのパッケージ管理ツールとなる。ダウンロードは以下URLから。

   URL:http://apps.qnap.community/11-community/10-qnapware
   ダウンロードファイル名:Entware-ng_0.96.qpkg

インストールはNASのGUIにて、「App Center」→「マイアプリ」→「手動でインストール」の画面から行う。数分でインストールは完了する。


2. ntpdのインストール

以下コマンドでntp関連のパッケージを確認してみる。「ntpd - 4.2.8p6-1」が存在するので、これをインストールすればよい。

# /opt/bin/opkg list | grep ntp
-----------------------------
ntp-keygen - 4.2.8p6-1 - The ISC ntp suite is a collection of tools used to synchronize the system clock with remote NTP time servers and run/monitor local NTP servers. . This package contains the ntp-keygen.
ntp-utils - 4.2.8p6-1 - The ISC ntp suite is a collection of tools used to synchronize the system clock with remote NTP time servers and run/monitor local NTP servers. . This package contains ntpdc, ntpq and ntptime.
ntpd - 4.2.8p6-1 - The ISC ntp suite is a collection of tools used to synchronize the system clock with remote NTP time servers and run/monitor local NTP servers. . This package contains the ntpd server.
ntpdate - 4.2.8p6-1 - The ISC ntp suite is a collection of tools used to synchronize the system clock with remote NTP time servers and run/monitor local NTP servers. . This package contains ntpdate.
-----------------------------

以下コマンドでntpdをインストールする。依存関係によって、いくつか関連パッケージもインストールされる。

# /opt/bin/opkg install ntpd
-----------------------------
Installing ntpd (4.2.8p6-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/ntpd_4.2.8p6-1_armv5soft.ipk.
Installing libopenssl (1.0.2f-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/libopenssl_1.0.2f-1_armv5soft.ipk.
Installing zlib (1.2.8-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/zlib_1.2.8-1_armv5soft.ipk.
Installing libcap (2.24-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/libcap_2.24-1_armv5soft.ipk.
Configuring libcap.
Configuring zlib.
Configuring libopenssl.
Configuring ntpd.
-----------------------------

インストール結果を確認する。ntpdが表示されていればOK。

# /opt/bin/opkg list-installed
-----------------------------
entware-opt - 222108-2
findutils - 4.5.14-1
ldconfig - 2.22-2
libc - 2.22-2
libcap - 2.24-1
libgcc - 4.8.5-2
libopenssl - 1.0.2f-1
libpthread - 2.22-2
librt - 2.22-2
libssp - 4.8.5-2
libstdcpp - 4.8.5-2
locales - 2.22-2
ntpd - 4.2.8p6-1
terminfo - 6.0-1
zlib - 1.2.8-1
-----------------------------

インストールされたファイルについても、以下コマンドにて確認できる。

# /opt/bin/opkg files ntpd
-----------------------------
Package ntpd (4.2.8p6-1) is installed on root and has the following files:
/opt/etc/ntp.conf
/opt/sbin/ntpd
/opt/etc/init.d/S77ntpd
/opt/etc/hotplug.d/iface/20-ntpd
-----------------------------

3. /opt/etc/ntp.confの修正

ntp.confを修正する。一般的なntpdと何も変わらないため、以下のような普通のntp.confをviで編集すればよい。今回はNTP同期先として、以下2つを設定した。

   ntp.nict.jp
   ntp.jst.mfeed.ad.jp

ntp.confは以下のように編集した。

-----------------------------
driftfile  /opt/var/spool/ntp/ntp.drift

restrict default ignore
restrict -6 default ignore

restrict 127.0.0.1
restrict -6 ::1

restrict ntp.nict.jp kod nomodify notrap nopeer noquery
restrict ntp.jst.mfeed.ad.jp kod nomodify notrap nopeer noquery
restrict 192.168.33.0 mask 255.255.255.0 kod nomodify notrap nopeer noquery

server ntp.nict.jp iburst true
server ntp.jst.mfeed.ad.jp iburst
-----------------------------

4. 起動スクリプトの確認

ntp.confの設定が終われば後は起動させればよい。起動用のスクリプトは以下ディレクトリに保存されている。

/opt/etc/init.d/S77ntpd

このファイルの修正は不要だが、一応中身を確認してみる。

# cat /opt/etc/init.d/S77ntpd
-----------------------------
#!/bin/sh

ENABLED=yes
PROCS=ntpd
ARGS="-c /opt/etc/ntp.conf -f /opt/var/spool/ntp/ntp.drift -s /opt/var/spool/ntp -k /opt/etc/ntp -l /opt/var/spool/ntp/ntp.log"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
-----------------------------

共通のrc.funcというスクリプトに変数を渡してntpdを起動する仕組みなっている。rc.func内のstart()関数を確認すると、以下コマンドでサービス実行を行う作りになっていることがわかる。

$PREARGS $PROC $ARGS > /dev/null 2>&1 &

したがって、ntpdの場合は以下コマンドにて起動することになる。

ntpd -c /opt/etc/ntp.conf -f /opt/var/spool/ntp/ntp.drift -s /opt/var/spool/ntp -k /opt/etc/ntp -l /opt/var/spool/ntp/ntp.log

※オプションの説明
-c : 設定ファイルの指定
-f : driftファイルの指定
-s : 統計情報の保存先ディレクトリを指定
-k : NTP認証キーファイルの指定(今回は未使用)
-l : ログの出力先ファイルの指定

5. ntpd起動

起動スクリプトを用いてntpdを起動させる。

# /opt/etc/init.d/S77ntpd start
-----------------------------
 Starting ntpd...              done.
-----------------------------

起動後に同期状況を確認する。右側に*が付いている行があれば、同期成功。

# ntpq -p
-----------------------------
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp3.jst.mfeed. 133.243.236.17   2 u    -   64    1   33.206   -0.580   2.465
*ntp-a3.nict.go. .NICT.           1 u    1   64    1   39.792   -3.131   1.182
-----------------------------

なお当方の環境では、なぜかクライアントからNASに対して時刻同期すると失敗したので、一度ntpdの再起動を実施した。

# /opt/etc/init.d/S77ntpd restart
-----------------------------
 Shutting down ntpd...              done.
 Starting ntpd...              done.
-----------------------------

6. ntpクライアントからの同期確認

WindowsからNASに対して時刻同期を実施してみると、以下の通り正常にNASと同期した。


Linuxも同様に成功。

# ntpq -p
-----------------------------
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.33.3    133.243.238.164  2 u    1   64    1    0.144    1.795   0.051
-----------------------------

7. (参考情報)NAS再起動時の自動起動設定

結論から言うと、特に設定は不要。NASの再起動時に自動でntpdは起動する。

どこに起動設定が入っているか確認してみると、Entwareの起動スクリプト内に組み込まれていることがわかったので、参考までに記載する。

# cat /etc/rcS.d/QS106Entware-ng
-----------------------------
~ 略 ~

case "$1" in
  start)

~ 略 ~

  /bin/echo "Enable Entware-ng/opkg"
        # sym-link $QPKG_DIR to /opt
        /bin/rm -rf /opt
        /bin/ln -sf $QPKG_DIR /opt
        # adding opkg apps into system path ...
        /bin/cat /root/.profile | /bin/grep "source" 1>>/dev/null 2>>/dev/null
        [ $? -ne 0 ] && /bin/echo "source /opt/etc/profile" >> /root/.profile
        # startup Entware-ng services
        /opt/etc/init.d/rc.unslung start
    ;;

~ 略 ~
-----------------------------

内部でrc.unslungというスクリプトを呼び出していることがわかるので、さらに内容を確認してみると、/opt/etc/init.d内の起動スクリプトに対して起動処理を実施していることがわかる。

# cat /opt/etc/init.d/rc.unslung
-----------------------------
~ 略 ~

for i in $(/opt/bin/find /opt/etc/init.d/ -perm '-u+x' -name 'S*' | sort $ORDER ) ;
do
    case "$i" in
        S* | *.sh )
            # Source shell script for speed.
            trap "" INT QUIT TSTP EXIT
            #set $1
            #echo "trying $i" >> /tmp/rc.log
            . $i $ACTION $CALLER
            ;;

~ 略 ~
-----------------------------

参考URL

Optware IPKG

Install Optware IPKG



2016年2月12日金曜日

SSHとESXiシェルを有効にした際の警告表示を消す方法

ESXiはバージョン5以降は、デフォルトでSSHやESXiシェルによるアクセスが無効化されてしまっているようだ。しかし、相変わらずコマンド操作でなければできないことも多いので、有効化することが多いと思う。

しかし、有効化すると、vSphere Clientでログインした際に、ESXiのサマリタブにて以下のような警告が表示されてしまう。

  「ホストの ESXi シェルは有効になっています」
  「ホストの SSH は有効になっています」


VMwareとしてはセキュリティの観点から、SSH・ESXiシェルは有効にするな、ということだと思うが、承知したうえで有効にしている場合は、とても目障りな警告となる。というわけで、消す方法を調べてみた。

警告表示を消す方法

きちんとVMwareのKBとして用意されていた。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2080326

手順としては以下の通り。

1. vSphere Clientにて、対象のESXiを選択→「構成」タブ→ソフトウェアの「詳細設定」をクリックする

2. 「詳細設定」の画面が開くため、左ツリーから「UserVars」を選択し、最下部にある「UserVars.SuppressShellWarning」の値を"0"→"1"に変更する

 ※わかりにくが、"0"が警告有効、"1"が警告無効
 ※Suppressは「抑制する」という意味


3. 反映すると「サマリ」タブを開いても警告が表示されなくなる


複数ESXiが存在する場合は、面倒だが上記を全台に対して個別に設定する必要がある。