ガベコレ(もどき)

光にしてから久しぶりにジョージア州・アトランタにある無線機を聞いている。 回線の帯域に余裕があるせいか、心なし綺麗に聞こえる気がするぞ。こういう技術が 出てくると、受信器はロケーションの良い場所に設置して、それをみんなで利用するなんて 事が可能になりそう。リモートシャックもいいな。

で、どのぐらいのパケットが流れているか10秒間隔で測ってみた。

C:\>netstat -e 10
                           受信            送信

バイト                           318758391       106456922
ユニキャスト パケット               414893          240728
ユニキャスト以外のパケット            4126          170939
破棄パケット                             0               0
エラー パケット                          0               0
不明なプロトコル パケット                0
インターフェイス統計

                           受信            送信

バイト                           319432563       106524332
ユニキャスト パケット               416609          241544
ユニキャスト以外のパケット            4126          170945
破棄パケット                             0               0
エラー パケット                          0               0
不明なプロトコル パケット                0
インターフェイス統計

;; 以下、バイト数のみ
バイト                           320098617       106634996
バイト                           320778045       106747814
バイト                           321444441       106815314
バイト                           322116471       106887080
バイト                           322781001       106954352
バイト                           323440767       107026604

大雑把に言って、66KByte/s ぐらいか。こんなもんで、あれだけの帯域(200KHz)に飛び交う全電波形式の データを受信出来ちゃうんだね。

どんなパケットに乗ってやって来るかと思ったら、HTTPだったよ。

GET /~~othersjj?chseq=2986362 HTTP/1.1
Host: w4ax.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
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-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://w4ax.com/
Cookie: ID=4fabcdefghijkxyz; view=2


HTTP/1.1 200 OK
Server: WebSDR/20120424.2117-32
Content-Length: 501
Content-Type: text/html; charset=UTF-8
Cache-control: no-cache

chseq=2986364;statsobj.innerHTML="Past 10 seconds:
CPUload=29.4%, 20.22 users; audio 982.9 kb/s, waterfall 970.0 kb/s, http 89.3 kb/s<br>
160m: 10sec ADmin/max=-5162/5020; ever ADmin/max=-13906/12317<br>
80m: 10sec ADmin/max=-2858/2187; ever ADmin/max=-32768/32767<br>
75m: 10sec ADmin/max=-1061/1186; ever ADmin/max=-32768/32767<br>
40m: 10sec ADmin/max=-375/712; ever ADmin/max=-32768/32767<br>
20m: 10sec ADmin/max=-114/129; ever ADmin/max=-32768/32767<br>
0(0) 0(0) 45858(257120549) 36129.3 0(0) -nan";
uu(7,'::ffff:74.18.23.157',0,0.546354);

上記は定期的なメッセージだけど、実データは、300から500バイトぐらいに小分けにして、 サーバーから送りつけられている。最初はてっきりUDPあたりで丸投げしてると思っていた けど、TCPできっちり送ってくるとは、見上げた根性だな。やっぱり分析はしてみるものだ。

上記URLの配置がおいら的にはちょっと気にいらんな。(使わせてもらって文句言うなってのは 無しね)受信器なら、頭にウォーターフォールの画面があって、その下左は、チューニングボタン、 右側にはSメーターでしょう。更に下側に、フィルターの設定とか、ワイド/ナロウ表示の 切り替え。その下あたりにバンド切り替えぐらいがいいな。

そんなに文句があるなら、HTMLのソースを読んで、スクラップ/ビルドせいよ。動作確認は、 自前のWebサーバーが必要か。ちょいと面倒そう。GUIのユーザビリティを根拠に、提案して みるのが手っ取り早いかも。文句(もとえ、提案)するのは自由だからな。その前に、 UIの本でも読んで、理論武装が必要かな。

そう言えば、暫く前にCQ誌で連載してたSDRのキットが売り出され ていた。 特設ページも有って、頑張ってるな。

YAESUとかICOMとか、やる気ないから、アマチュアさんが代わりに頑張ってますって のの象徴だな。 (ああ、アルインコで発売してた。DX-SR8T)

時計合わせ

ArchBangを使っているんだけど、時計が合っていない事に気づいた。

HARDWARECLOCK="UTC"
#HARDWARECLOCK="localtime"
TIMEZONE="Asia/Tokyo"

rc.confの設定をどちらに転がしても、JSTから9時間進んだり、遅れたりしちゃう。 まるで、日本に住むのはヤダって拒否してるみたい。こういう時は地道にsysctlの下でも 漁ればなんとかなるかも知れないけど、面倒なので、時計合わせ奉行に任せちゃえ。 どんなのあるかな?

[sakae@bang ~]$ pacman -Ss ntpd
community/networkmanager-dispatcher-ntpd 1.0-2
    Dispatcher Script for ntpd
community/networkmanager-dispatcher-openntpd 1.0-3
    Dispatcher Script for openntpd
community/openntpd 3.9p1-14
    Free, easy to use implementation of the Network Time Protocol.

openntpdってのを入れてみた。これって、 OpneBSDな人たちが開発してるやつだよね。 他にもopensshシリーズとかやってるんで、安心な事にかけちゃ、折り紙付きだろうね。

/etc/rc.confにopenntpdって書いておくと、起動時から正しい時間 を保ってくれる。でも贅沢言わせてもらうと、ntpqが入っていないんで、同期具合が 確認出来ない。サーバーとして使ってる訳ではないんで、ntpdate一発で、起動時に 合わせちゃえば、今回の件は解決しちゃうな。普通のntpを入れて、お茶を濁すかな。

VMWARE-toolsの素敵な機能

仮想PCで学ぶ「体当たり」Windowsシステム管理 のvmware編を見てたら、VMWARE-Toolsを使っての、仮想DISKの圧縮記事が出てた。

そんな機能が有った事をかすかに覚えてはいたんだけど、圧縮しちゃったら使う時に展開 しなきゃならないから、遅くなっちゃうんじゃないかと、余り興味を持っていなかったんだ。 でも、記事を読んで、圧縮と言うよりもガベコレの一種である事に気づいたんだ。 (ガベコレって何や? それは、草取りって、 看破された人が居ました。)

ガベコレ大好き人間としては、こりゃやってみなきゃって訳で、ArchBangで試してみる 事にする。何たって、ArchBangは、ローリングリリースを特徴としてるんで、カーネルを 始めアプリに到るまで、みさかい無くバンバンとアップデートされるんだ。 その為、Diskの中は、ぐちゃぐちゃになってる可能性が高い。

OpenBSDだとセキュリティ性を高める為、消したファイルはゼロクリアするとかの 考慮がされてるけど、Linuxだとそんな事は無いだろう。よって、ファイルを消しても データはそのまま残ってて、圧縮の対象にならんからな。

VMWAREでのDISK圧縮は、rm された不用なデータはゼロクリアして、ゼロになってる 領域を圧縮するという方針になってるみたいだ。多分、不用データのクリアは、ゲストOS のfsck機能を使って実現。ゼロ領域の圧縮は、VMWARE側が受け持ってると思われる。

正に、ガヴベコレ。マーキングはゼロクリアで回収は圧縮に対応してる。

折角なんで、VMWAREのバージョンを3から4.0.2へ上げたよ。3をuninstallsてWindowsを reboot。4をinstallしてもう一度rebootさせられた。ちょいと面倒だったよ。

VMWARE-toolsを入れる

VMWARE-toolsは、Windows側のvmware内に、ひっそりとlinux.isoとかfreebsd.isoって形で 置いてある。(vmwareで仮想システムを起動した時、ネットから自動的にDLされる)

こやつを仮想CDROMにマウントして取り出せばいいんだけど、あれArchBangではどうするん だったっけな? 困った時は、man mountだな。

       The non-superuser mounts.
              Normally,  only  the  superuser can mount filesystems.  However,
              when fstab contains the user option on a line, anybody can mount
              the corresponding system.

              Thus, given a line

                     /dev/cdrom  /cd  iso9660  ro,user,noauto,unhide

              any  user  can  mount  the iso9660 filesystem found on his CDROM
              using the command
                     mount /dev/cdrom
              or
                     mount /cd

マウント情報を、/etc/fstabに書いておけとな。それから、マウントせえや。(その前に、 マウントポイントの作成をお忘れなく)

で、tar玉を取り出してINSTALLなんて言う書類に目を通す。rootになった上で、GUI環境上で インストールスクリプトを実行せいとな。

その通りにしたんだけど、途中の質問で、rcN.d (N: 0 - 6)の何処に入れますかなんて聞いてきた。 そんなの、ArchBangには無いんですけど。。。 まあ、ダミーで作ってあげてもいいんだけど、 スクリプトがどうなってるか見とくか。

見たら、パアルのスクリプトなんで、すぐに閉じちゃったよ。もう、おいらはパアルのスクリプト なんて読めない事になってますんで。ここで、方針をがらりと変える事にします。

世の中の素直?な、Linuxにインストールして、その上前だけをかすめてくる事にします。 素直なLinuxの代表として、CentOS 6.2に登場してもらいました。どうせ、こちらにもインストール するんだし。

Cent側では、CDROMが自動マウントされた状態で起動してきました。便利になってるねぇ。こん なんでいいのか。まあ、Windowsに対抗するには、これぐらいは当たり前。VMWARE-toolsのインストールも 、ひたすらリターンキーを叩いたら、あっけなく終了してしまいました。

どんなのがインストールされてるか確認すると、/usr/binの下に、vmware-toolboxなんてのが あるけど、こちらはGUI用。おいらは、CUIでの操作で十分なので、vmware-toolbox-cmdに なるかな。こやつ、/usr/lib/vmware-tools内へのリンクになってるので、vmware-toolsを ごっそりと掠め取ってきた。そして、ArchBang側で、/usr/binの下からリンクしてあげた。

早速vmware-tool-cmdを起動するも、何も言ってこない。まさか、混ぜるな危険。事故責任は自己で、 ってやつなんでしょうか? 環境がお気に召さない? しょうがないので、何が起こって いるか、確認してみる。

[sakae@bang ~]$ strace vmware-toolbox-cmd
   :
open("/etc/vmware-tools/config", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
   :
exit_group(-1)                          = ?
[sakae@bang ~]$

ファイルが無いってんで、ひっそりと終了するってぇ、いじわるをしてますよ。しょうがないので CentOSを見習って、

[sakae@bang vmware-tools]$ cat config
libdir = "/usr/lib/vmware-tools"

書いてあげた。このconfigが、正しくインストールされたかを示す防波堤の役目をしてるんだな。 だから、あえて何も言わない作りになってるのね。

[sakae@bang ~]$ vmware-toolbox-cmd help
Usage: vmware-toolbox-cmd <command> [options] [subcommand]
Type 'vmware-toolbox-cmd help <command>' for help on a specific command.
Type 'vmware-toolbox-cmd -v' to see the VMware Tools version.
Use '-q' option to suppress stdout output.
Most commands take a subcommand.

Available commands:
   device
   disk
   script
   stat
   timesync
   upgrade (not available on all operating systems)

今度は、きちんと動いてるっぽい。そんじゃ、目指すはdiskコマンドだな。

[sakae@bang ~]$ vmware-toolbox-cmd help disk
disk: perform disk shrink operations
Usage: vmware-toolbox-cmd disk <subcommand> [args]

Subcommands:
   list: list available mountpoints
   shrink <mount-point>: shrinks a file system at the given mountpoint
[sakae@bang ~]$ vmware-toolbox-cmd disk list
vmware-toolbox-cmd: You must be root to perform disk operations.
[sakae@bang ~]$ sudo vmware-toolbox-cmd disk list
/
/boot
/home

ガベコレは、rootでお願いって、そりゃそうだわな。ちなみに、shrinkって小さくなるって 意味なのね。

shrink するぞ。

これが、縮む前のDISKを、調べたもの。2GのDISKを6本用意して、12Gで運用。7本目のDISKは 予備です。RAIDでもやれってか?

$ ls -l *.vmdk
-rw-r--r-- 1 sakae Administrators 1479409664 May 24 12:57 Bang-s001.vmdk
-rw-r--r-- 1 sakae Administrators 1362952192 May 24 12:57 Bang-s002.vmdk
-rw-r--r-- 1 sakae Administrators 1181417472 May 24 12:57 Bang-s003.vmdk
-rw-r--r-- 1 sakae Administrators 1330118656 May 24 12:57 Bang-s004.vmdk
-rw-r--r-- 1 sakae Administrators  596770816 May 24 12:57 Bang-s005.vmdk
-rw-r--r-- 1 sakae Administrators  235995136 May 24 12:57 Bang-s006.vmdk
-rw-r--r-- 1 sakae Administrators      65536 May 24 12:57 Bang-s007.vmdk
-rw-r--r-- 1 sakae Administrators        694 May 24 12:34 Bang.vmdk

これじゃ分からんのでWindowsのエクスプローラーに調べさせたら、5.76Gと言ってきた。

[sakae@bang ~]$ sudo vmware-toolbox-cmd disk shrink /
Partition / is not shrinkable
[sakae@bang ~]$ sudo vmware-toolbox-cmd disk shrink /boot
Progress: 100 [===========>]
Disk shrinking complete.
[sakae@bang ~]$ sudo vmware-toolbox-cmd disk shrink /home
Progress: 13 [==>        ]

とても耐えられないぐらいの時間がかかってガベコレ終了。どれぐらい縮んだかな?

$ ls -l *vmdk
-rw-r--r-- 1 sakae Administrators 1461518336 May 24 13:57 Bang-s001.vmdk
-rw-r--r-- 1 sakae Administrators 1359478784 May 24 13:57 Bang-s002.vmdk
-rw-r--r-- 1 sakae Administrators 1180368896 May 24 13:57 Bang-s003.vmdk
-rw-r--r-- 1 sakae Administrators 1329332224 May 24 13:57 Bang-s004.vmdk
-rw-r--r-- 1 sakae Administrators  476643328 May 24 13:57 Bang-s005.vmdk
-rw-r--r-- 1 sakae Administrators   39124992 May 24 13:57 Bang-s006.vmdk
-rw-r--r-- 1 sakae Administrators      65536 May 24 13:57 Bang-s007.vmdk
-rw-r--r-- 1 sakae Administrators        694 May 24 13:05 Bang.vmdk

エクスプローラーからの報告では、5.43Gだった。大騒ぎしたわりには、余り効果が 無かったな。一番R/W率が高い、ルートパーテションが縮小出来ないってのが痛いな。 今度パーテションを切る時は、そういう点も気をつけよう。ちなみに今は、

[sakae@bang ~]$ df
ファイルシス   1K-ブロック    使用  使用可 使用% マウント位置
rootfs             8393656 3805688 4587968   46% /
/dev                254504       0  254504    0% /dev
run                 256016     452  255564    1% /run
/dev/sda3          8393656 3805688 4587968   46% /
shm                 256016       0  256016    0% /dev/shm
tmpfs               256016       4  256012    1% /tmp
/dev/sda1            68741   16516   48611   26% /boot
/dev/sda4          3582348  151816 3430532    5% /home

こんな具合になってる。

ArchLinuxでは、圧縮の効果が余り無かったんで、FreeBSDでどうなるかやってみる。10.0Gあった やつが、6.47Gになった。3.5Gの無駄領域を回収出来たんだな。これは効果絶大!

[sakae@secd ~]$ sudo vmware-toolbox-cmd disk list
/
[sakae@secd ~]$ sudo vmware-toolbox-cmd disk shrink /
Progress: 37 [====>      ]

何故GC大好きになったか

おいらがアマチュア無線を始めたのは小学校の終わりぐらいだったかな。 同級生の兄がアマチュア無線やってて、遊びに行くといつも無線やってた。それで おいらもやってみたいって思った訳だ。

でも、学生の分際では小遣いが少なくて、送信機はおろか簡単な受信器さえ組み立てる部品 を買えなかった。 そこで、やむにやまれず、ゴミ集め(正式名称、ガーベッジ・コレクション、略してガベコレ)ですよ。

町内を巡って、捨ててあるラジオやらテレビの中にある部品を集めてくるって訳。 テレビが捨ててあると小躍りして喜んだね。水平偏向回路の最終段の球やら 映像増幅器の12BY7Aなんて球(こやつ、終段を押すのに丁度よかった)が見つかると、その日一日幸せな気分だったなあ。

って言う事で、おいらは筋金入りのGC(ごみ集め)大好き人間なのさ。GCは地球にも優しい んだぞー。 もったいないを世界に広めてノーベル章を貰った方もいたな。 最近だと、都市鉱山なんてのもあるな。

アメリカ発の使い捨て文化は捨てて、GCで行きましょうや。