「未分類」カテゴリーアーカイブ

パトカーのせいで仕事ができない、ということにする

いま、日曜のお昼どき。音楽教室 兼 久光工房事務所の「こだち」で仕事してるんだ。いや、休みの日も仕事してるオレ、昭和リーマンっぽくてカックイイとかそういう自慢にもならない自慢をしたいわけじゃないんだ。

家の玄関横に赤色灯を点灯したパトカーが来てアイドリング停車中。パトカーには2名の警察官が乗ってたように見えたけど、いまは無人のまま 10 分くらいウチの玄関横に止まってる。なんだろう、近所で何かあって聞き込み中なのかしら。仕事部屋のすぐ目の前に赤色灯をつけたパトカーが長時間アイドリングしてるのってすげープレッシャーなんだけど。ドキドキして仕事が手につかないよぉ。

ということで、仕事にならないからブログ書く。

というのは言い訳で、締め切りギリギリの仕事がたまってくるとどうしても現実逃避したくなるんだよな。さ、パトカー見ながら仕事、仕事。

ミネラルウォーターには水が入ってる

きょうは父の日なのに何もない・・・それどころかカミさんが「運動でもしろ」と言うので自転車に乗って散歩に行くことにした。昨日の夜、ブラタモリでちょうど横須賀が放送されてたし、ちょっくらうみかぜ公園まで。

追浜を出発して16号線をえっちらおっちらと南下して、最初のトンネルを抜けて田浦地区に入った。

IMG_0319娘が通ってる合気道道場のすぐ横。娘の自転車を発見。よしよし、ちゃんと合気道やってんだな。

田浦警察署から京急田浦駅前を通り過ぎてトヨタの販売店のところで16号を離れて海側の横道に入る。

IMG_0322

いつもどおり、海上自衛隊第2術科学校の前でパシャリ。

IMG_0323

今日はそのとなりにある自衛隊横須賀病院前でもパシャリ。

IMG_0326

もうちょっと海沿いまで出ると海上保安庁とかの施設前。ここのあたりは昔使われていた貨物線の線路がところどころに残ってる。舗装工事のたびに埋められていくのでだいぶ減ってきたけど。

この先には海上自衛隊横須賀造修補給所とか横須賀警備隊とか潜水艦教育訓練分遣隊とか、米海軍箱崎貯油施設とかが次々登場してきてワクワク感Maxなんだが、どこも「構内撮影禁止」の看板があるんで怖くてうかつにカメラパチパチできない。

IMG_0328

ドキドキワクワクの自衛隊・米軍エリアすぐとなりにはベイスターズの2軍の練習場&選手寮がある。この施設は数年後に追浜に移るらしい。おおっ、うぇるかむべいすたーず。

IMG_0332

さて、昨日のブラタモリでも紹介されていたJR横須賀駅。駅前から改札を通ってホームまでツライチ、段差なしという珍しい駅。横須賀市の横須賀駅と聞けば駅前は賑やかな繁華街を想像する人も多いと思うけど、にぎやかなのは京急線の横須賀中央駅。JRの横須賀駅周辺はけっこう静か。

IMG_0333

JR横須賀駅から徒歩2分で横須賀港が一望できるベルニー公園。左には海上自衛隊総監部で、右側には米海軍横須賀基地というワクワクドキドキエリア。でも今日はあまり面白い艦船は停泊してなかった。残念。

ここから京急の汐入駅前を抜けると米海軍横須賀基地の正面ゲート。ここもうかつにカメラパチパチやってるとドキドキ感maxになるのでニタニタながめながら通過。

IMG_0337

米海軍基地前を過ぎるとすぐに戦艦三笠のある三笠公園が見えてくる。

IMG_0341

NHKドラマ「坂の上の雲」でも有名になったが、いまだに多くの観光客が来ている横須賀の観光名所。この三笠公園のすぐ横には東京湾唯一の無人島「猿島」へ行くための定期船の乗船所がある。今日も猿島へ行く人たちで桟橋周辺にも大勢の人がいましたよ。

IMG_0344

三笠公園から5分くらいのところに「よこすかポートマーケット」がある。横須賀のおいしいものを中心としたショッピングが楽しめる。

そしていよいよ、うみかぜ公園到着。

IMG_0354

スケボー、バスケ、モトクロスなど楽しめる場所が少ないスポーツをまとめてできる広場。

IMG_0356

海沿いでは大勢の人が釣りを楽しんでる。正面に見えているのが猿島。

IMG_0360

パノラマ写真。猿島が見える広場では大勢の人がバーベキューを楽しんでた。あ、俺も腹減った。

IMG_0365

とりあえず、帰路の前に水分補給だということで、自販機へ・・・

軟水550ml 海洋ミネラル深層水」

軟水・・・・ミネラル深層水・・・・軟水、ミネラル、軟水、ミネラル・・・・そそくさとスマホを取り出してウィキペディアでミネラルウォーターを検索。

ミネラルウォーターとの名称から、ミネラル(無機物)を多く含んだ飲料水のことと思っている人も多いが、ミネラルウォーターにはミネラル成分の品質規定があるわけではない。

え、え、えーっ、そうなの?! 軟水でもミネラルウォーターって言っていいんだ。知らなかった。すげー、家に帰ったら家族に自慢だ。ミネラルウォーターはミネラルが少なくてもミネラルウォーターなんだぜ。

 

Raspberry Pi で NAS を作って Windows Server バックアップ

自分用のメモ書きです。

顧客先に納品した Web システムがどれも Windows Server 上で動いてる。保守サポート用に客先のサーバーと同じ環境を自社内にも再現して構築してある。おかげさまでお客様が増えたので、今は 4 台の Windows Server 機が稼働してるんだけど、物理的に 4 台もサーバ置くと邪魔だし電気代もバカにならない。どのシステムもしょせん IIS + MySQL + php のかるーい Web システムだし客先のサーバー環境の再現ができてればいい程度でときどきしか使わないし使うのも私一人だし。

NUC

ということで NUC (Next Unit of Computing) というインテル製 極小パソコンに ESXi という仮想環境構築ソフトをインストールして4台の仮想パソコンを作り出して、各仮想パソコンに Windows Server をインストールしてる。

IMG_0288

↑NUC。11cm×11cmというフットプリントが CD ケースより小さなパソコン。これ1台の中に4台の仮想 Windows Server 機が動いてる。すごい時代だ。

Windows Server バックアップ

客先の環境再現なので重要なデータが入ってるわけでもないから壊れたら壊れたでまた作り直せばいい程度ではあるんだけど、それでも一から作り直すのも面倒なので Windows Server の標準機能である「Windows Server バックアップ」を使ってサーバー丸ごとの自動バックアップを定期的に取っておきたい。

Windows Server バックアップは、USB 外付けハードディスクを接続しておけば定期的にバックアップを取ることができるんだけど、残念ながら物理的に1台しかない USB ハードディスクを複数の仮想パソコンに同時にマウントさせる方法がさっぱりわからん。そもそも可能なのかどうかすらわからん。勉強不足だ。

ところで、Windows Server バックアップは、Windows ファイル共有機能を ON にしてある別のパソコンにネットワーク経由でバックアップをする機能もある。ああ、これなら簡単にできそうだ。

NAS

しかし、バックアップの保存先にするためだけにもう1台パソコンを買うのはもったいない。そんなときのために NAS(Network Attached Storage)というネットワークに接続して使うハードディスクが売ってる。

12dh940000087y7t

これ、見た目はただのハードディスクだけど、ネットワーク上にあるいろんなパソコンと接続したり ID とパスワードによっては接続を拒否したり、見ることはできるけど編集はできないとか、そういったアクセス権の制御とかハードディスクに異常がないか監視するとかをする必要があるので、いろいろと設定しなきゃいけない実際にはミニパソコンみたいなもんでもある。実際、中身に Windows  とか Linux とかがインストールされてたりする。そういった制御系が内装されているためちょっとお値段が張る。まあパソコン買うよりは全然安いけど。それでも、もともとなくなってもいいデータしかない Windows Server のバックアップ用という今回の目的のためにはまだまだお値段が高いような気が・・・・うん、高いな。

Raspberry Pi

んで、思いついたのが Raspberry Pi(ラズベリーパイ)。英国のラズベリーパイ財団が世界中の子どもたちが手軽に電子工作を楽しんだり、プログラミングに関する基本知識を学んだりできるようにと開発した簡易コンピュータ。性能は非常に限られているものの名刺サイズの超小型さと数千円という手軽な価格で人気。

IMG_0289

↑Raspberry Pi 1 Model B+。USB 端子が4つ、LAN 端子が1つ、ディスプレイ接続用に HDMI 端子、サウンド出力用にヘッドホン端子。電源は microUSB 端子があるのでスマホの充電などで使われている USB 充電器をここにさせば動く。

Raspberry Pi で NAS を作って Windows Server バックアップをやろう

ということで、Raspberry Pi に USB 外付けハードディスクをくっつけて NAS にしてしまって、Windows Server バックアップのバックアップデータ保存先としての仕事を一手に引き受けさせよう。という話。あとでまたやらなきゃいけなくなった時のために手順を全部書き留めておく。自分専用。

Raspberry Pi の準備

Raspberry Pi 1 Model B+ を買った。Raspberry Pi2 Model B や Raspberry Pi3 の方が高性能だけど消費電力も大きくなって扱いにくくなる。バックアップ目的なのでのんびりデータを保存してくれても全然構わないので安い Pi 1 Model B+ で構わんだろう。Raspberry Pi は基板むき出しなので何かケースがあった方がいい。Amazon で透明ケース付属で 5,480円。安いってことはいいことだ。

ある程度設定が済めば、あとは SSH で遠隔操作できるので最終的には不要になるんだけど、初期設定が終わるまではディスプレイとキーボードとマウスはあったほうが作業しやすい。USB ポートに適当なキーボードとマウスを挿しておく。ディスプレイは HDMI 端子なので自宅のテレビとつなげば済む。

あとは有線 LAN につないでおけば準備完了。

OS (Raspbian) をインストール

Raspberry Pi は簡易ながらもれっきとしたパソコンなので OS が必要。何種類かの OS が動くようだけど、公式の Raspbian で。公式万歳。

OS のダウンロードからインストールまでは Mac でやった。まずは公式サイト (https://www.raspberrypi.org/downloads/) のDownload ページから Raspbian の zip 圧縮したものをダウンロードする。この記事を書いた時は JESSIE のバージョン March 2016。ダウンロードしたらダブルクリックして zip 圧縮を解凍しておく。

jessie

Raspberry Pi 1 Model B+ はハードディスクとか SSD みたいなストレージはない。microSD カードを挿すところがある。SD カードがパソコンでいうところの内蔵ストレージになるので、まずは  microSD カードに OS をインストールするところから始める。ということで適当な microSD カードを用意して、Mac でこの microSD カードに OS をインストールする。

microSD カードを Mac に接続

ターミナルを起動

↓ドライブ類の一覧表を出力する
df

df コマンドを入力するとマウントされているドライブ類の一覧表が出力されるのでその中から microSD カードの行を探す。microSD カードを挿す前に df コマンド打っておいてすぐに microSD カードをプスッと挿してまた df コマンドを打てばどの行が microSD カードなのかわかりやすい。

/dev/disk4s1    62652416      5056   62647360     1%        0         0  100%   /Volumes/RASPBIAN

↑こんな感じの行。最初にある Filesystem の名称(上の例だと /dev/disk4s1)を使って OS を書き込む。これを間違えると違うディスクを消去しちゃうことになるのでどの Filesystem が microSD カードを指しているのかしっかり確認すること。

↓microSD カードのマウント解除 (disk4s1の部分は適切な Filesystem を使う)
sudo diskutil unmountDisk /dev/disk4s1

↓Raspbian のイメージファイルが保存してあるフォルダへ移動する
cd /Users/<ユーザ名>/Downloads

cd と打ってから、イメージファイルが保存されているフォルダをターミナルの画面にドラッグ&ドロップすれば、そのフォルダまでのパスが自動的に入力される。その方が打ち間違いがなくて楽。今回の例だとイメージファイルはダウンロードフォルダに入ってたので、ターミナルでcdと打った後にダウンロードフォルダをターミナルのウインドウにドラッグ&ドロップ。

↓microSD カードに Raspbian OS を書き込む。ここのコマンドを打ち間違えるととんでもないことになる可能性があるから慎重に確認する。特に of オプションの部分。

sudo dd bs=1m if=2016-03-18-raspbian-jessie.img of=/dev/rdisk4

重要なのは /dev/rdisk4 の部分。microSD カードの Filesystem が/dev/disk4s1 だとして末尾の s1 を取って、先頭に r を付けた rdisk4 と入力する。理由はよくわからん。

コーヒーブレイク

コーヒーを1杯飲み終わる頃には microSD カードには Raspbian が書き込まれて Raspberry Pi 用の起動ドライブになってる。Raspberry Pi 用の起動ドライブになっているので Mac の画面には表示されないので、ディスクユーティリティを起動して、マウントされている microSD カードを取り出す。

Raspberry Pi の初期設定

Mac から取り出した microSD カードを Raspberry Pi の microSD カードスロットに差し込む。んでもって電源投入。Raspberry Pi には電源スイッチがないので、microUSB 端子にスマホ充電器を差し込んだ瞬間に電源が入る。

最新の OS (JESSIE) だと、しばらく起動画面を眺めていると最後にグラフィカルな画面 (X Windows) が起動する。コマンド入力で初期設定するのは面倒だし間違えやすいので、このままグラフィカルな画面で初期設定を済ませる。

左上の [ラズベリー Menu] から Preferences > Raspberry Pi Configuration を選択。

設定画面で System > FileSystem: で [Expand FileSystem] のボタンをクリックして microSD カード全体を Raspberry Pi で使用するように拡張(初期のままだと OS に必要な部分だけで残りの部分は不使用になってる。もったいないので microSD カードの全体を Raspberry Pi 用のディスクとして使えるように拡張する)。

System > Password: で [Change Password…] ボタンをクリックして表示されるダイアログで pi ユーザのパスワードを変えておく(Raspberry Pi は初期状態では pi というユーザが作られていてパスワードは raspberry に設定されていて、自動的にこのユーザ名とパスワードでログインするように設定されてる。そのままだと心配なのでパスワードを変えておいたほうがいい)。

System > Boot: で [To CLI] にチェックマークをする(初期設定が終わってしまえばグラフィカルな画面は動きが重くなるだけなのでコマンドラインインターフェイス (CLI) で起動するように設定しておく)。ちなみに CLI の時に startx とコマンドを打てばグラフィカルな画面 (X Windows) が起動できる。

Localization > TimeZone: で [Set Timezone…] ボタンをクリックして設定画面で Area: Asia/Location: Tokyo に設定。

Localization > Keyboad: で [Set Keyboard…] ボタンをクリックして設定画面で Japanese/109 に設定。

[OK] ボタンをクリックしてから Raspberry Pi Configuration 画面を閉じる。

右上にあるネットワークアイコンを右クリックして WiFi Networks Settings を開く。

Configue: で [interface] にして [eth0] に設定(有線LANを使用する設定)。

IP Adress: に設定したい IP アドレスを入力(今回は 192.168.1.120)

Router: にはルーターの IP アドレスを入力、DNS Servers: には DNS サーバの IP アドレスを入力。

[Apply] ボタンをクリックしてから [Close] ボタンで設定画面を閉じる。

[ラズベリーMenu] からShutdown… > Rebootで再起動。

ここからはコマンドラインインターフェイス (CLI) で初期設定を続行。SSH が有効になってるから Raspberry Pi からディスプレイ、キーボード、マウスを取り外して、別のパソコンで SSH を起動して遠隔操作でも設定作業できる。

↓Mac でターミナルを起動して SSH で Raspberry Pi に接続する。
ssh pi@192.168.1.120

パスワードを聞かれるので、さっき変更した pi ユーザのパスワードを入力(もし変更してなければ raspberry)。

↓Raspberry Pi はなんでもできる root ユーザにパスワードが付いてないので、root にパスワードをつける
sudo passwd root

新しいパスワードを入力して、確認のためにもう一回入力したら設定完了。念のために再起動する。
sudo reboot

再起動すると自動的に SSH 接続が解除されるので、再起動が終わったころを見計らってまた Mac から SSH 接続する。

↓パッケージリストを更新
sudo apt-get update

結構時間かかるのでコーヒータイム。途中で [Y/n] で本当にやるの?とか聞いてくる場合がある。何も考えず Y を入力。

↓各パッケージを最新状態に更新
sudo apt-get upgrade

結構時間かかるのでコーヒータイム。途中で [Y/n] で本当にやるの?とか聞いてくる場合がある。何も考えず Y を入力。

↓ディストリビューションを更新
sudo apt-get dist-upgrade

↓ファームウエアの更新
sudo rpi-update

全部終わったら

↓一時的にインストールされた不要パッケージの削除
sudo apt-get autoremove
sudo apt-get autoclean

USBポートの給電性能を変更

Raspberry Pi Model B+ の USB ポートは初期設定では最大 0.6A しか出力されない。最近のポータブルハードディスクの消費電力は結構大きいのでそのままだとハードディスクを USB ポートに挿しても電力不足で動かない可能性が高い。そこで USB ポートに最大 1.2A まで出力できるように設定を変更する。

sudo vi /boot/config.txt を実行して config.txt を開いて設定ファイルの最後に max_usb_current=1 を書き込んで保存して終了。

sudo reboot を実行して再起動

ちなみに、USB ポートに消費電力の高いポータブルハードディスクを取り付けるってことは、もととなってる Raspberry Pi に対して高い電力を供給しとかないといけない。ということで Raspberry Pi の電源にはタブレットなどを急速充電できる 2.4A 出力タイプの AC アダプタを使った。

thumb-141865_2

↑バッファローの 2.4A 出力 USB 充電器「BSMPA2401BC1WH」

外付けハードディスクの準備

Mac と Windows の両方から読み書きできるファイルサーバにするなら exFAT でフォーマットするのがいいけど、今回の目的である Windows Server バックアップ 用のバックアップデータ保存先としては、NTFS フォーマットのハードディスクじゃないといけない。ということで NTFS フォーマット済みのポータブルハードディスクを用意する。NTFS じゃなかった時は Windows パソコンに接続して NTFS でフォーマットする。

Windows パソコンで NTFS にフォーマットし終わったら取り外して Raspberry Pi に接続。RASPBIAN OS はそのままでは NTFS フォーマットのハードディスクを取り扱えないので、

↓NTFS を取り扱うパッケージをインストールする。
sudo apt-get install ntfs-3g

インストールが終わったら sudo reboot を実行して再起動。

↓ディスク一覧を表示させて NTFS フォーマットの外付けハードディスクが認識されていることを確認する
sudo fdisk -l

fdisk-l

↑デバイス名「/dev/sda1」が今回接続した USB ハードディスク。認識されただけでは利用可能にはならない。

↓まずはマウントポイントを作成する(usbhdd1は好きな名前で)
sudo mkdir /mnt/usbhdd1

↓作成したマウントポイントにハードディスクをマウントする
sudo mount -t ntfs-3g /dev/sda1 /mnt/usbhdd1

↓外付けハードディスク (/dev/sda1) が /mnt/usbhdd1 にマウントされたことを確認
df -h

df

ここからは、Raspberry Pi を起動した時に自動的にマウントされるように設定する

↓外付けハードディスクに割り当てられた ID(UUID)を確認
sudo blkid /dev/sda1

UUID=”xxxxxxxxxxxxxxxxxxxxxx” という表示を見つけて、xxxxxxxxxxxxxxxxxxxxxxの部分を書き写しておくか、コピーしておく。

↓fstab に Raspberry Pi を起動した時に自動的に外付けハードディスクがマウントされるように設定を書き込む

sudo vi /etc/fstab を実行して /etc/fstab を開いて設定ファイルの最後に

UUID=”xxxxxxxxxxxxxxxxxxxxxx” /mnt/usbhdd1 ntfs-3g defaults,nofail 0 0

を書き込んで保存して終了。

念のため sudo reboot で再起動して df -h を実行して自動的にハードディスクがマウントされるのを確認する。

↓完成品。Raspberry Pi 1 Model B+ と 500GB のポータブルハードディスクの組み合わせ。初期設定が終われば Raspberry Pi にディスプレイもキーボードもマウスもいらない。USB 端子にハードディスクが、LAN 端子に LAN ケーブルが、microUSB 端子にスマホ充電器が挿さってる簡易な構成。USB ケーブルをもっと短いものにして Raspberry Pi とポータブルハードディスクをヒモでしばっちゃえばもっとコンパクトになる。

IMG_0290

Samba のインストールと設定

Raspberry Pi に接続した外付けハードディスクを、ネットワーク上の他のパソコンから利用できるファイル共有機能をインストールする。Windows Server バックアップから利用できるようにするために、Samba というファイル共有機能をインストールする。

↓Samba をインストールする
sudo apt-get install samba

コーヒーブレイク。途中で [Y/n] で本当にやるの?とか聞いてくる場合がある。何も考えず Y を入力。

終わったら Samba の設定。以下の内容の設定を追加する。

  • 共有名:rasnas1
  • 共有するフォルダ:/mnt/usbhdd1
  • 読み書き可能
  • ゲスト接続禁止
  • ファイル操作を pi ユーザ によって実行
  • ネットワークコンピュータに表示しない

sudo vi /etc/samba/smb.conf を実行して設定ファイルを開いたら末尾に下記の設定を追記して、保存して終了。

[rasnas1]
path = /mnt/usbhdd1
read only = no
guest ok = no
force user = pi
browseable = no

↓pi ユーザにパスワードを設定
sudo smbpasswd -a pi

新しいパスワードを入力して、確認のためにもう一回入力したら設定完了。念のために sudo reboot で再起動する。

ネット上の Windows パソコンのエクスプローラから ¥¥192.168.1.120¥rasnas1 にアクセスできることを確認。アクセスする際に、ユーザ名とパスワードを聞いてくるので、Samba で設定した pi とそのパスワードを入力すればいい。

Windows Server バックアップの設定

さて、Raspberry Pi が無事にファイルサーバーになったので、ここからは Windows Server 機で Raspberry Pi に接続してあるハードディスクにバックアップを取るための設定をしていく。

適当な Windows 機のエクスプローラから ¥¥192.168.1.120¥rasnas1 にアクセスする。

rasnas1 の中に、バックアップデータ保存用にフォルダを作る。今回は4台の Windows Server 機のバックアップデータを保存するので、フォルダを4つ作って Svr01, Svr02, Svr03, Svr04とか適当にわかりやすい名前をつけておく。バックアップ先ができたら Windows Server 機のメモ帳ソフトで

wbadmin start backup -backupTarget:¥¥192.168.1.120¥rasnas1¥Svr01 -include:C:,D: -vssFull -user:pi -password:xxxxxxxxxxx -quiet

と書く(Svr01の部分はバックアップ用に作ったフォルダの名前なのでサーバごとに決めたフォルダ名にしておく。xxxxxxxxxxx は Raspberry Pi の Samba の pi ユーザのパスワード)。

これを serverbackup.bat とか適当なファイル名で保存する。

このバッチファイルを右クリックして [管理者として実行…] を実行して、コマンドプロンプトが起動して Windows Server バックアップが開始されれば OK。

wbadmin

Raspberry Pi は非常に性能が低いコンピュータだからバックアップ作業もスッゲー遅い。笑っちゃうくらい遅い。バックアップが始まってもしばらくは「(0%) をコピーしました」という表示が続くけどしばらくすると(1%)に増えるので心配しなくていい。まあバックアップできりゃいいんで気にしない気にしない。

バッチファイルが [管理者として実行…] でちゃんと動作することが確認できたら、あとは Windows Server の管理ツールにある [タスク スケジューラ] にバッチファイルを登録して適当なタイミングで自動実行されるように設定すれば完了。

全部の Windows Server 機で同様にバッチファイルを作成してタスク スケジューラに登録していく。最初のバッチファイルをコピーして、バックアップ先の Svr01 のとこだけ指定のフォルダ名に書き換えればいい。あ、Windows Server のパーティション構成が違ってれば -include:C:;D: のところも変更する必要あるけど。