核戦争

ちょっと前、日本中にJアラートが鳴り響きました。

私のスマホはならなかったのですが、それはともかく、いざ事が起きればテレビでも警報が表示されます。そんなことを家内と話していたときのこと。

「Jアラートが鳴ったらどうすればいいの?うずくまる姿勢に意味はあるの?」

「意味はあるよ。まず、雨戸を閉める。うちの窓は飛散防止フィルムを張っているけれど、念のために部屋の中央で毛布や布団をかぶってうずくまること。これで爆風でガラスが飛んできても、突き刺さらない」

「それで生き残ることができるの?」

「今の北朝鮮じゃ、水爆をミサイルに載せることはできないだろうから、原爆になる。この辺で狙われるとしたら横浜駅が爆心地になるだろう。水爆と違って原爆はこのくらい離れておけば熱線は怖くない。ただ爆風が…」

そんなことを話しながら、

(ああ、俺は本当に核戦争が起きると考えているな)

などと胸の中で感じました。私が生まれたのは米ソ冷戦時代です。冷戦は終わって、核戦争なんて起きない世の中が望まれたはずなんですけどね。

エアコン室外機用の追加冷却器のアイデア

エアコン室外機用の追加冷却器のアイデアを温めている*1のですが、とうてい自分で作る時間が無いため、ここにアイデアだけ記しておきます。

イデアの元となったのは東南アジアで使われているという冷房機の話です。木の葉で作った簾状のものに水を流してやることで、気化熱を奪うのだとか。

室外機を冷却するアイデアは多い

随分前から調べていますが、室外機を冷却することでエアコンの消費電力を下げるアイデアは多いです。エアコンの消費電力は室外機がどの程度熱を排出しやすいかにかかっており、室外機のラジエターを通り抜ける流体が冷たくて比熱が高いほど効率が良くなります。

一番すごいなと思ったのは、室外機のラジエターを取り出して庭の手洗い用の升に置き、くみ上げた地下水をかけ続けるという工夫です。地下水の温度は低いですし、比熱が空気より大きいので効率がいいです。家庭用途だと、自治体の制限に引っかかるほど大量に地下水をくみ上げるのは事実上不可能です。また、うまくやれば冬期の暖房にも使えます。熱的にはこの方法が一番優れていると思いますが、普通のお父さんが安全にこれを工作するのは無理ですね。

また、室外機の後ろで噴霧器を使って空気の温度を下げることに挑戦した人もいます。この方法は確実に空気の温度を下げるため、エアコンの効率が上がります。しかしながら、これはカルシウムがラジエターに付着するのではないかという心配があります。

ということで、私のアイデアは室外機に入る前に水を完全に気化させて、カルシウムは布にでも付着させれば良いのではないか、というものです。

構造

構造は単純です。

まず室外機と同じ大きさの適当な木枠を作ります。木枠は屋外に置くので耐候性のペイントでも塗ると良いでしょう。そうして、上辺と下辺に2cm間隔程度のステンレスの釘を打ちます。上辺と下辺の釘の位置は互い違いにしてください。

そうして、上辺とか辺の釘の間にリボン状の布をジグザグに張っていきます。この布は消耗品になりますので、包帯のようなばんばん使っても良いものが良いでしょう。

この木枠を室外機の後ろに置き、布の間を風が抜けるようにします。さて、上辺の釘の上には塩ビパイプを横たえます。塩ビパイプには0.5mmから1mmの穴を釘と同じ間隔で開けて、中から水がしたたるようにします。こうしてしたたった水が布の上を流れ、風を受けて蒸発することで気化熱を奪うという算段です。

室外機の上には安く売られている蛇口付き水タンクを置き、塩ビパイプとの間をビニルチューブでつなぎます。水タンクの蛇口で水の流量を調整します。

測定は必要

室外機の後ろに冷却器を置くため、風の抜けは悪くなります。そのこと自体で少し効率は下がるはずで、気化熱による効率向上との収支がどうなるかは、測定をしてみなければわかりません。

当然ですが、何が起きても責任はとりませんよ。

*1:冷却器なのに

Thinkpad x220にUbuntu 16.04をbcache付きでインストール

 昨年入手した中古Thinkpad x220にUbuntu 16.04をインストールしました。インストール自体は中古で入手したときに行っていましたが、今回は一旦ご破算にしたのちにbcache付きで導入しています。

wakimiunten.hatenablog.com

 割りと煩雑な手続きだったので、メモがわりにここに書いています。

現在、/boot 以外の全てのディレクトリがキャッシュされています。なお、スワップ領域はbcacheを通さずにSSDの別パーティションに置いています。

効果はてきめんで、ブート速度やアプリの起動速度はHDDとは段違いに速くなりました。

 

bchaceとは

今回導入したbcacheは、SSDをHDDのキャッシュとして使用する仕組みです。

これは大容量で安いものの遅いHDDを、小容量で高いものの速いSSDでキャッシュするアイデアであり、同様のものがWindows用にIntel SRTとして公開されています。

www.intel.co.jp

入手したThinkpad x220には300GBのHDDが搭載されているほか、MSATAスロットが空きスペースとして実装されていました。そこで、ここに64GBのMSATA SSDを装着し、キャッシュとして使用することにしました。

KingSpec 64GB mSATA3 MINI PCI-E MLC Solid State Drive 64gb mSATA SSD

KingSpec 64GB mSATA3 MINI PCI-E MLC Solid State Drive 64gb mSATA SSD

 

 bcacheはUbuntu 16.04の標準レポジトリに採用されているため導入は簡単です。しかし、設定はわりと面倒で難儀しました。Intel SRTのような「全部お任せ」ではないため、自分でパーティションを切り、何をキャッシュさせるのか、何をキャッシュさせないのか、きちんと頭にたたき込んで設定する必要があります。

私はデスクトップPC上のVMwareで練習してからインストールを行いました。

ボリュームとパーティションの計画

bcacheを効かせるには事前に周到な計画が必要です。VMwareで試行錯誤した結果、以下のような構成に決めました。この構成は、Ubuntuのインストール・メディアで起動した直後、インストーラを走らせる前にgpartedで構成しておきます。

/dev/sdaはHDDです。

これは本体のHDDスロットに格納されている300GBの2.5inchドライブで、SATA接続ではあるものの、速度は凡庸です。以前はこれでブートしていたため、起動時間の間は大変手持ちぶさたでした。  

パーティション 容量 フォーマット 用途
/dev/sda1 300GB クリア /

/dev/sdcはSSDです。

何故これが/dev/sdbではなく/dev/sdcかというと、今回はUSB SDカードアダプタからブートしたからです。手元のUSBメモリはいずれもUSB 2.0ポートからブート出来ず*1、手持ちのThinkpadに USB 3.0ポートが無かったのでこうなりました。いずれにせよ、現在では/etc/fstabはuuidでディスクを管理しているため、インストール後に/dev/sdcが/dev/sdbになっても問題はありません。

さて、/dev/sdcの肝心の中身はというと3つのパーティションに分かれています。 

パーティション 容量 フォーマット 用途
/dev/sdc1 1GB ext4 /boot
/dev/sdc2 48GB クリア /のキャッシュ
/dev/sdc3 15GB linux swap スワップ

 /dev/sdc1 は /boot を格納するパーティションです。これはbcacheの管理外に置いています。何故こうしているかというと、grubが /boot の中のLinuxカーネルを探す段階では、grubはbcacheが効いたドライブを扱えないためです。1GBは特に考えずに参考ページを元に決めました。実際には100MBくらいしか使っていませんが、アップデート時にカーネルの整理を怠ると古いバージョンが保管されて増えていきますので、あまりパーティションを絞らない方がいいでしょう。

 用途を見るとわかるように、/dev/sda1 は /boot以外の / を記録するデバイスになります*2。一方、/dev/sda1 のデータをキャッシュするのが /dev/sdc2 です*3

 注意すべき点は /dev/sda1 と /dev/sdc2 のフォーマットです。これはいずれも「クリア」にしておいてください。ext4にするとシステムが認識してしまうため、あとでbcacheツールで扱うときにエラーが起きる可能性があります。私の場合、エラーが起きると最初からインストールを全部やり直しになりました。

/dev/sdc1 と /dev/sdc3 のフォーマットは、最初にgpartedで指定してもかまいませんが、 /dev/sdc1 はインストール中に再度設定を強いられますので二度手間です。

インストール・メディア

私はいつもUbuntuのインストールディスクのISOイメージを、unetbootinを使ってUSBメモリに焼き込んで利用しています。好きな方法を使用してください。

作業手順

作業はInstalling Ubuntu 15.10 with bcache support.bcache.txt - kandamotohiroを参考にしながら行いました。

全体の流れとしては

  1. Ubuntuインストール・メディアで起動する
  2. gpartedでSSD/HDDのパーティションを切る
  3. bcache-toolをリポジトリから取得し、SSD/HDDでbcacheのペアを作る
  4. bcacheボリュームにUbuntuをインストールする(再ブートしない)
  5. chrootしてインストール先での作業に移る
  6. bcache-toolをリポジトリから取得する。
  7. chrootを終了してインストール先での作業を終え、再ブートする
  8. ネットワーク設定を戻す

 となります。bcacheの取得が二度にわたることをいぶかしんでいらっしゃる方も居るかも知れませんが、これはインストール・メディア上でbcacheを使うのに1回、インストール先にbcacheを入れておくのに1回行うためです。

Ubuntuインストールメディアで起動する

この手順に特に難しい点は無いはずです。Unetbootinの情報はネット上で広く入手可能です。

インストール先のPCは後でbcacheを入手するためにネットワークに接続されている必要があります。

なお、インストール・メディアからの立ち上げは「インストールせずに使ってみる」を選びます。起動語にいきなりインストールを始めるメニューの場合、bcacheを設定できません。

gpartedでSSD/HDDのパーティションを切る

起動したら、先に示したとおりSSD/HDDのパーティションを切ります。繰り返しになりますが、キャッシュおよびバックに使うパーティションはフォーマットを「クリア」にしておきます。

bcache-toolをリポジトリから取得し、SSD/HDDでbcacheのペアを作る

パーティションを切ったらbcache-toolsを取得して、bcacheのペアを作りましょう。当然ですが、ネットワークに繋がっていなければなりません。また、/dev/sda1と/dev/sdc2をext4などにしておくと、ここでエラーがおきますので注意してください。

sudo apt-get update
sudo apt-get install bcache-tools
sudo make-bcache -B /dev/sda1 -C /dev/sdc2
ls /dev/bcache0 
sudo mkfs.ext4 /dev/bcache0 

 成功すると、/dev/bcache0という新たなブロック・デバイスが作られます。このデバイスは「/dev/sdc2でキャッシュされた/dev/sda1」です。

bcacheボリュームにUbuntuをインストールする(再ブートしない)

/dev/bcache0ができたら、Ubuntuインストーラを立ち上げてインストールします。インストール先に少し注意してください。先ほど作った /dev/bcache0 が、/ のインストール先になります。

パーティション フォーマット マウント位置
/dev/sdc1 ext4 /boot
/dev/bcache0 ext4 /
/dev/sdc3 linux swap スワップ

フォーマットはここで指定します。

grubブートローダーは/dev/sdaがいいでしょう。PCがブート可能であるなら/dev/sdcでも別にかまいません。

なお、この方法ではボリューム暗号化を使えませんので、プライバシー保護を行う場合にはホームディレクトリを暗号化してください。

なお、インストール終了後、くれぐれも再起動をかけないように気をつけてください。

間違って再起動してしまった場合一旦シャットダウンして再起動をインストール・メディアから行ってください。そして以下のように再度bcacheパッケージをapt-getで取得します。echoで1を書き込んでいるのは、bcacheを蹴り飛ばして/dev/bcache0を作るためです。

sudo apt-get update
sudo apt-get install bcache-tools
echo 1 | sudo tee /sys/block/sda1/bcache/running 
chrootしてインストール先での作業に移る

さて、一番の山場です。

ここまでの作業で、インストーラー・システム上でターゲット・ディスクをbcache化し、そこにUbuntuをインストールしました。しかし問題が残っています。インストールしたUbuntuにはbcacheパッケージがインストールされていないのです。

そこで、これを解決するために次のようなトリックを使います。まずインストーラー・システム上で、ターゲット・システムを仮に動かします。そしてターゲット・システムがbcacheパッケージをリポジトリから取得すればいいのです。まるで仮想環境のようですが、unixには昔からこの手の仕事をこなしてきたchrootというプログラムがあります。

手順は以下の通りです。

sudo mount /dev/bcache0 /mnt
sudo mount /dev/sdc1 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

 インストール先(ターゲット)の/を格納している/dev/bcchace0をインストーラ・システムの/mntにマウントし、その下に/bootをマウントしています。/dev /proc /sys はここでは親システムのもので代用しています。/varは作っていませんので後でエラーが出ますが、無視できるようです。

また、後でインターネットにアクセスしますので、ターゲットの/etc/resolv.confを現行システムのそれに置き換えます*4

sudo cp /etc/resolv.conf /mnt/etc/resolv.conf 

 これで準備ができましたので、作業環境をターゲットに移します。

sudo chroot /mnt
 bcache-toolをリポジトリから取得する。

 インストールしたUbuntu(ターゲット)に移ってきました。つづいて、ここでbcacheをリポジトリから取得します。

sudo apt-get update
sudo apt-get install bcache-tools 
chrootを終了してインストール先での作業を終え、再ブートする

chrootを終了するにはexitを実行します。引き続き、先ほどマウントしたボリュームを全てアンマウントします。

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
sudo reboot

 これで再ブートです。再ブートするとbcacheを使ったインストール先のシステムが動作を開始します。これで終わりと言いたいところですがひとつだけ残っています。

ネットワーク設定を戻す

先ほどインストーラ・システムに合わせて変更したネットワーク設定を戻しておきます。

sudo ln -sf ../run/resolvconf/resolv.conf /etc/resolv.conf 

 なんだかおかしな事をしているように見えますが、 "../run/resolvconf/resolv.conf" は、 /etc/resolve.conf のデフォルト値です。

これで設定は戻りました。ネットワーク設定の変更は再起動無しに適用する方法がありますが、せっかくbcacheを使い始めたので再起動しましょう。再起動する度に、キャッシュの精度があがります。

bcacheの状態を見る

bcache.txt - kandamotohiroの「背後のデバイス」「背後のデバイスの統計」は、キャッシュ状態や動作モードを調べるのに便利なsysfsインターフェースを紹介しています。

キャッシュヒット率に興味のある人はモニターしてみると良いでしょう。

Thinkpadのバッテリー設定

さて、何度もこのブログに書いているように、Thinkpadにはバッテリーの寿命を縮めずに済むよう、最大充電量を制御する機能があります。これはPCの機能ですので、OSに関わらず、あるいはOSを起動していないときにも動作します。

Linux用にこの機能を使うユーティリティが公開されています。GitHub - teleshoes/tpacpi-bat: ThinkPad ACPI Battery Utilというユーティリティです。その使い方が、ThinkPadのバッテリーの充電・放電閾値をLinuxから設定してバッテリーの寿命を伸ばす方法 -- ぺけみさおに詳しく説明されていますので、そちらを参考にインストールと設定をしました。

まとめ

bcacheのおかげでHDDの広々とした容量とSSDの速さを享受できます。大変快適に使えるようになりました。

*1:USB 3.0ポートからはブートする

*2:バックと呼ぶ

*3:キャッシュと呼ぶ

*4:あとで元に戻す

イスラエルにも行ってきましたよ

フランス出張のあとは、チューリッヒ経由でイスラエルに出張です。昨年4月に訪れてから1年少し経ちました。

こちらはホテルの窓の外の風景。この雑な風景こそ、

イスラエルに来た」

という感慨を呼び起こします(^^;

f:id:suikan:20170520144341j:plain

さて、一見するとただのおんぼろビルですが、よくよく見るとなかなか味わい深いです。

まず非常階段。屋上からの逃げ口は壁がふさいでいるので、屋上に居ると何処に非常階段があるか見えません。

「いや、プールの手すりっぽいのがある」

と、言いたいと思いますが、幅が人間の肩幅を優に超えています。本当に手すりなのか多少怪しいです。そして、非常階段の踊り場の幅と全く合っていません。さらにはその幅の半分をエアコンの室外機がふさいでいます。よりによって何故ここに室外機を置くのでしょう*1

仮に屋上から非常階段で逃げてきたとしましょう。写真では見づらいのですが、最上階の人が階段に板を打ち付けていますので、行き止まりになります。逃げることができません!

また、最上階の下の階ですが、よく見ると踊り場の手すりが完全に脱落しています。

「火事だ!」

と飛び出すと、そのまま地上に真っ逆さまです。しかし心配ご無用。よく見てください。その階の非常口には鉄パイプが打ち付けてあり、ドアが開きません。何かあっても逃げることはできません。

まぁ、廃ビルなんてこんなものだとお思いですか?

豈図らんや。

さらにその下の階の踊り場を見るとプランターに花が植わっています。花を愛する心の持ち主が利用しているのです。この、非常階段に怖ろしく無頓着なビルを!

そしてちょっと視線を横にやると。そこには堂々たる携帯電話基地局アンテナがあります。置いてあるんですよ。高価な基地局設備がこの雑なビルに。そして光ファイバーが敷設してあります。

他日、屋上で煙草をふかしている人を見かけましたから、やっぱり廃屋じゃ無いんですね。

f:id:suikan:20170520144359j:plain

悪いイメージの写真ばかりなのもあんまりなので、こちらは緑の写真。

イスラエルの人々は本当に緑が好きです。それこそ、見渡す限り緑を切り倒してコンクリートで覆った後に

「緑が好きです」

などと嘯く日本人とは大違い。

ビルの谷間のスペースはこれこの通り、見事に設計された庭園になっています。鹿児島と同じくらいの緯度ですので日の光は強いです。その分、和らげれば良いじゃない、ということでしょう。

f:id:suikan:20170525133706j:plain

一週間の短期滞在でした。忙しかったことと、前の週にフランス料理を食べ過ぎていたので、あまりイスラエル料理に手を伸ばさない出張でした。残念。

*1:答:下の階にエアコンの配管を引きやすいから

フランスに行ってきました

仕事でフランスに行ってきました。ソフィア=アンチポリスというニースに近い町です。

ソフィア=アンチポリスは古い町だそうですが、ハイテク企業招致に熱心です。日本でハイテク企業招致に熱心というと、林を伐り拓いてのっぺりした工業団地を作るイメージ*1がありますが、訪れた当地は正反対でした。全体的に何処もかしこも森の中に沈み込んでいるようです。森に覆われた何処までも続く丘陵地帯に、ところどころ学校や病院などがあり、それらがよく整備された道路で接続されています。

新しく家を買う場合には建坪の10倍か15倍程度の土地の購入が義務づけられているらしく、そこに木を植えるため、結果的に新しい住宅も密集せず森に沈んでいくことになります。何もかもコンクリートで覆い尽くしてしまう我が同胞を思い浮かべて気持ちが沈んでしまいました。

写真は連れて行ってもらったレストランのある村から谷を挟んだ反対側の望んだところです。ソフィア=アンチポリスは何処に行ってもこんな感じです。

f:id:suikan:20170604110633j:plain

さて、当地は古い土地なので、古い村が残っています。当然石造りです。これはそのレストランのある村。丘の上に城塞風に作られた小さな村なので道が環状になっています。このような丘の上の村が多いとのこと。

f:id:suikan:20170604110856j:plainこちらはレストランの風景。この歳になって、ようく人が「フランス、フランス」と唱えるのかわかってきました。この写真の後次々に人がやってきて混みましたが、大声を出すような人は居ません。皆さん人生の楽しみ方を知っています。

f:id:suikan:20170604111119j:plain

f:id:suikan:20170604111134j:plain

こちらは最終日に行った別の村。上の写真の村は寂れていて芸術家などが住み着いているイメージですが、こちらの村は今でも活発な営みが行われていました。なにしろふるい村ですから道が狭いです。完全に道をふさいで駐車している車が有るかと思えば、家の前に机を出して勉強している子供も居ます。一方で、流石フランス、小さな村にワイン屋さんが何軒もあります。

f:id:suikan:20170604111416j:plain

f:id:suikan:20170604111423j:plain

f:id:suikan:20170604111430j:plain

イチゴの甘い香りがたまらなく良かったです。

この村は中央の広場にあるレストランが有名らしく、夕食時に多くの人がやってきて賑わいました。

*1:我ながら古い

ゴミと呼ぶのはあまりにも

ゴールデンウィークが終わると、玄関を鮮やかに飾っていたモッコウバラも下り坂です。それこそ沸き立つように咲いていた花が風に乗って散り、家内が「また掃除しなきゃ」と落胆した声で呟く季節です。

f:id:suikan:20170507131541j:plain

f:id:suikan:20170507131436j:plain

f:id:suikan:20170507122634j:plain

散ってしまえば美しい花も疎まれます。ただ、ゴミと呼ぶのはあまりにも哀れ、と感じるのです。

机についてまとめ

ゴールデンウィークの3日を費やして新しい机を作りました。その後1日半かけてようやく部屋も片付きました、ここで少しまとめておきます。

この机を作ることで解決したかった問題、それらが解決できたか否か、そして作るにあたって購入したものなどを紹介しておきます。

続きを読む
/* -----codeの行番号----- */