TPPについて本気出して考えてみた

結論から言うと、反対です。

が、TPPではなく素直に日米FTAにして、米韓のように不平等条項が盛り込まれないのであれば賛成です。

まず、TPP参加にはメリットデメリットを考えなければなりません。

まあなんつーか池田信夫vs中野剛志みたいなかんじかなぁ。

池田信夫

TPP参加による消費者の利益は生産者の損失より大きい
グローバル化の最大の受益者は見えない

TPPについてのウソとホント

TPP亡国論

中野剛志

5/5【経済討論】TPPと世界経済の行方[桜H23/1/15]
中野剛志先生のよくわかるTPP解説―日本はTPPで輸出を拡大できっこない!
中野剛志 視点・論点 「TPP参加の是非」

池田信夫まとめ
消費者視点でみれば関税撤廃は喜ばしい
実質所得が増加する
農家への影響なんてたいしたことない
関税を廃止して所得補償に変えれば、農家の所得を同じに保っても消費者は利益を得る

中野剛志まとめ
実質は日米FTA
農家終了のお知らせ食糧自給率低下
デフレ
円高ドル安
メリットとかねーからwwww

こんな感じでしょうか。
でさ、とりあえず、個人的には関税撤廃は賛成なんですよ。
もう昔っから大賛成。
あんなもんくその邪魔にしかならないと思ってる。
比較優位の原理からすれば当たり前なのはわかるとおもう。

第一次産業は保護すべきだ?
それなら保護すればいいジャン。
関税じゃなくて補助金でどうぞ。
補助金と関税の二重で保護される必用は無い。
それに、第一次産業保護論者によく世界規模的な食糧危機が発生した時に困るとかいう主張が見られるけど、それはマルサスの幻影でもみてるんでしょうか。
いつなるのよ。
日本が食糧危機に瀕するようなことが発生するのはWW3が発生したときくらいだろ。
そうなったらもうどっちにしても困るんだよ。
そういうこと心配するなら、食料を輸出してくれる国を増やしてリスクヘッジした方が遙かにまし。

ああ、すいません、話ずれましたが、そういうわけでとりあえず農家の問題は別になんてこと無いと思うんです。
参考URLにもあるようにもうすでに日本の農業って結構オープンなわけで、まあ特に影響出る可能性のあるは米あたりなもんで(あとこんにゃくとかも関税高かった記憶)、でもまあアメリカで食った米ゴミカスだったからおれは(西)日本米食い続けるし、なんなら最悪補助金で助ければいいと思うんです、それでも消費者には利益があるんですから。

で、円高ドル安とかは日銀が本気出せばいいだけでしょ、とっととまともなやつ財務大臣になってくれませんかね、ってかTPPの参加・不参加によって円高ドル安が変わるかつったら変わらないでしょ、オバマが輸出2倍にするっつってるんだからそこは無関係に円高ドル安に誘導するでしょ、でもね、いざ日本がその気になったら円高は止められるの、日本がどんだけ米国債握ってるか考えれば簡単な話で、いい加減にしねーと米国債全部うっぱらうぞっていえばアメリカも実は無茶できないわけで、あとはスイスみたいに無制限介入でもすりゃいいの、そしたら円高なんてすぐ解消できるの。

デフレの問題はどうなんですかね。
中野氏がいうのはいわゆる輸入デフレ論なんですが、なんか胡散臭いと思ってるわけで。
なんで浮いた金は全部タンスの中に入る前提なんですかね?
話半分くらいにしか聞いてません。

そして、実質は日米FTA。
そうですね。
あほの子でもわかりますね。
そう、だからTPPにわざわざ参加する必要ないと思ってます。
だから、本当の日米FTAにしましょう。

中野氏が輸出の拡大なんてできっこないといっているのはその通りだと思います。
でもね、関税の撤廃は輸出の拡大のためにするんじゃないんです。
輸入するから関税は撤廃するんです。
なんで一部の利権のために国民全員が負担を被らなきゃいけないのかって話なの。
わかりやすく米でいけば、米なんて意味不明な778%もの関税で守られてる。
仮に関税撤廃で、仮に国内需要を十分まかなうだけの量で味もそれなりの海外の米が入ってきたとする。
日本の米農家は全滅だって騒ぎ立てる。

それで良いだろうがksg。

米農家は米売れなくなって大変かもしれないけど、消費者はうれしいんだよ。
米農家って人口の何パーセントよ。
その人らのためだけになんで全国民が米を海外の何倍もかねだしてかわなきゃならないわけ。
もちろん国産のうまい米がいいって人はいるわけで、そうした層にニーズはあるだろうが、そうでない層も強要されるのは良い迷惑。
そこで米農家を補助金で救済して差し引いたって消費者の利益はあるんだよ。
そして米農家は別の作物を作るように転換するなり、別の産業へ転換するなり、高くても売れる高品質のものを作るなりすればいい話。
国際競争力を持たないものを無理に保護するのは、既得権益の保護以外のなにものにもならない。
産業の合理化の促進と消費者の利益の観点から関税は撤廃するべきなのだと思うのです。

っていうかね、TPPが関税周りだけなら別にTPPでもいいんですよ。
それ以外なんですよ、問題は。
医療や法務や知的財産や金融、法律、労働力等々、分野が広大すぎ。
それをたとえば米豪で同意した内容を日米にも押しつけられるとかはやってられない。
問題は関税以外の自由化なんですよ。
農業の問題とか矮小化もいいところであって、正直TPPを論じる上ではゴミカスみたいなもんなんです。
関税の撤廃も所詮一分野の話であって、これもまたたいした問題ではないんです。
そのほかによく検証のされていない多数の分野があること、そっちの方が重要なんです。
これらが検証された上で国益にかなうのであれば、TPPに参加することもやぶさかではないですが、現時点ではこれらの国民的議論は少なくとも十分ではありません。
というか何がどうなるっていうレベルでわかってません。
要するに、急すぎるんです。
そんな状態で賛成か反対かなんて聞かれても、賛成できるのはよっぽどアメリカのぽちかなんも考えてないかです。
そういったものもふまえて賛成の立場をとっている識者もいるんでしょうけど、まあ自分は現時点ではよーわからんことが多すぎるので賛成できないです。

とまあ、一見賛成論者っぽい展開なのに割と消極的な理由で反対なわけでした。

exim4でmailコマンドの送信を他のSMTPサーバに任せる

ふと気づいたんだけども、DomUの一つでmailコマンドが存在しないことに気づいた。
消したのか元々入ってなかったのか。
ということで使えるようにする必用がある。

debianではmailコマンドはmailutilパッケージに含まれるらしい。
ということで、

# aptitude install mailutils

これでメール送れるはずだとおもってテストしてみる。

# mail test@example.com
Cc:
Subject: test
test

おや。
届かない。
おかしい。

キューに残ってる。

で、exim4の設定を本格的にやる気はない、というかDomU(U1)から配送するのは基本的にシステムメールだけな予定。
なので、別のDomU(U2)でうごいているPostfixさんに配送を任せようということに。

# dpkg-reconfigure exim4

メールサーバ設定形式でスマートホストを使う
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x 必要とするものに最適と思われるメールサーバ設定形式を選択してください。              x
 x                                                                                     x
 x ダイヤルアップシステムなどの動的 IP アドレスのシステムでは、一般に送出するメールを  x
 x 配信のために別のマシン (「スマートホスト」と呼ばれる) に送るよう設定すべきでしょう  x
 x 。インターネット上の受信システムの多くは、迷惑メール対策として動的 IP アドレスから  x
 x やってくるメールをブロックしているからです。                                        x
 x                                                                                     x
 x 動的 IP アドレスのシステムは、自身のメールを受け取るようにするか、ローカル配送を    x
 x (root と postmaster へのメールを除き) すべて無効にするかできます。                  x
 x                                                                                     x
 x メール設定の一般的なタイプ:                                                         x
 x                                                                                     x
 x            インターネットサイト; メールは SMTP を使って直接送受信される             x
 x          ○ スマートホストでメール送信; SMTP または fetchmail で受信する             x
 x            スマートホストでメール送信; ローカルメールなし                           x
 x            ローカル配信のみ; ネットワークなし                                       x
 x            今は設定しない                                                           x
 x                                                                                     x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

自分のサーバ名を入れておくのがまあ普通。
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x 「メール名」は、ドメイン名がないときにメールアドレスを「修飾」するために使われるド  x
 x メイン名です。                                                                      x
 x                                                                                     x
 x この名前はほかのプログラムによっても使われます。これは、単一の完全修飾ドメイン名    x
 x (FQDN) にすべきです。                                                               x
 x                                                                                     x
 x たとえば、ローカルホストのメールアドレスが foo@example.org の場合、ここで入力する   x
 x 正しい値は example.org となるでしょう。                                             x
 x                                                                                     x
 x 書き換えを有効にすると、この名前は送出するメッセージの From: 行に出現しません。     x
 x                                                                                     x
 x システムメール名:                                                                   x
 x                                                                                     x
 x U1.waterblue.net___________________________________________________________ x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

ローカルからのメールしか送らないので、ローカルを指定
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x IP アドレスのリストをセミコロンで区切って指定してください。Exim SMTP リスナデーモ   x
 x ンは、ここで挙げられたすべての IP アドレスをリスンします。                          x
 x                                                                                     x
 x この値を空にすると、Exim はすべての利用可能なネットワークインターフェイスの接続を   x
 x リスンするようになります。                                                          x
 x                                                                                     x
 x このシステムが (ほかのホストからではなく) ローカルサービスから直接メールを受け取る  x
 x のであれば、ローカルの Exim デーモンへの外部からの接続を禁止するのもよいでしょう。  x
 x このようなサービスには、fetchmail 同様にローカルホストとやり取りする電子メールプロ  x
 x グラム (MUA) も含まれます。ここで 127.0.0.1 と入力すると、パブリックなネットワーク  x
 x インターフェイスのリスニングを無効にするので、外部から接続できなくなります。        x
 x                                                                                     x
 x 入力側 SMTP 接続をリスンする IP アドレス:                                           x
 x                                                                                     x
 x 127.0.0.1 ; ::1____________________________________________________________________ x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

受信先になる気もないのでデフォルトで十分
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x このマシン自身が最終的な宛先と見なされるべきドメインのリストをセミコロンで区切って  x
 x 指定してください。これらのドメインは一般に「ローカルドメイン」と呼ばれます。ローカ  x
 x ルホスト名 (fileserver.waterblue.net) および 'localhost' は常にこのリストに追加さ   x
 x れます。                                                                            x
 x                                                                                     x
 x デフォルトでは、すべてのドメインは同一のものとして扱われます。a.example と          x
 x b.example の両方がローカルドメインである場合、acc@a.example と acc@b.example は同   x
 x じ最終宛先に配送されます。異なるドメイン名を別々のものとして扱いたいときには、設定  x
 x ファイルをあとで編集する必要があります。                                            x
 x                                                                                     x
 x メールを受け取るその他の宛先:                                                       x
 x                                                                                     x
 x ___________________________________________________________________________________ x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

リレーする気もないのでデフォルトで十分
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x このシステムがスマートホストの役割としてメールを無条件にリレー可能な IP アドレス範  x
 x 囲のリストを、セミコロンで区切って指定してください。                                x
 x                                                                                     x
 x 標準的なアドレス/長さのフォーマットを利用すべきです (たとえば 194.222.242.0/24 や   x
 x 5f03:1200:836f::/48)。                                                              x
 x                                                                                     x
 x このシステムをほかのホスト向けのスマートホストにしようとするわけではないなら、この  x
 x リストを空のままにしておいてください。                                              x
 x                                                                                     x
 x メールをリレーするマシン:                                                           x
 x                                                                                     x
 x ___________________________________________________________________________________ x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

送信を委託するサーバを指定。
ちなみにここにgmailを指定したりもできるらしい。
smtp.gmail.com:587
を指定すればいいらしいけど試してない。
外部送信専用ならgmail指定するのも良いんじゃないでしょうか。
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x このシステムが送出スマートホストとして使うメールサーバの IP アドレスまたはホスト名  x
 x を指定してください。スマートホストが TCP/25 とは異なるポートからのみのメールを受け  x
 x 付けるのであれば、2 つのコロンとポート番号を追加してください (あとえば              x
 x smarthost.example::587 あるいは 192.168.254.254::2525)。IPv6 アドレスでのコロンは   x
 x さらに二重にする必要があります。                                                    x
 x                                                                                     x
 x スマートホストが認証を必要とする場合、SMTP 認証のセットアップについて書かれた       x
 x Debian 固有の README ファイルを参照してください。                                   x
 x                                                                                     x
 x 送出スマートホストの IP アドレスまたはホスト名:                                     x
 x                                                                                     x
 x U2.waterblue.net_________________________________________________________________ x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

自分の場合はどのシステムからのメールか必用なのでいいえ。
ローカル用途ではなく、外部に向けて使う場合ははいを選びましょう。
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x                                                                                     x
 x 異なるシステムで生成されたかのように見えるよう、送出するメールのヘッダは書き換えで  x
 x きます。ここで「はい」と答えると、From、Reply-To、Sender、Return-Path の            x
 x 'fileserver.waterblue.net'、'localhost'、'' が置き換えられます。                    x
 x                                                                                     x
 x 送出するメールでローカルメール名を隠しますか?                                       x
 x                                                                                     x
 x                        <はい>                          <いいえ>                     x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

ネットワーク接続が定額制ならいいえで問題ない。
未だに従量制ならはいにしたほうが節約になる。
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x                                                                                     x
 x 通常の動作モードでは、Exim は起動時、およびメッセージの受信時と配送時に DNS ルック  x
 x アップを行います。これは、記録用であり、設定ファイルにハードコードされた値の数に抑  x
 x えることができます。                                                                x
 x                                                                                     x
 x このシステムが完全な DNS サービスリゾルバを常時利用できない場合 (たとえばインター   x
 x ネットアクセスがダイヤルアップオンデマンドを使ったダイヤルアップ回線の場合)、これ   x
 x は望ましくない結果となり得ます。たとえばExim の起動時やキューの実行時 (待機中のメ   x
 x ッセージがないときでも) に、コストの高いダイヤルアップイベントを引き起こす恐れがあ  x
 x ります。                                                                            x
 x                                                                                     x
 x このシステムがダイヤルオンデマンドを使っている場合には、「はい」と答えるべきです。  x
 x インターネットアクセスに常時接続しているのであれば、「いいえ」とすべきです。        x
 x                                                                                     x
 x DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド)?                          x
 x                                                                                     x
 x                        <はい>                          <いいえ>                     x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

受信する気ないのでどっちでも。
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x Exim はローカルに配送された電子メールを異なる形式で格納できます。ほとんどの場合は   x
 x 、mbox と Maildir のどちらかが使われます。mbox はすべてのメールフォルダを           x
 x /var/mail に単一ファイルで格納します。Maildir 形式では、各個のメッセージは          x
 x ~/Maildir/ に分割されたファイルとして格納されます。                                 x
 x                                                                                     x
 x ほとんどのメールツールは、ローカル配送方式が mbox であるとデフォルトでは仮定してい  x
 x ることに注意してください。                                                          x
 x                                                                                     x
 x ローカルメールの配送方式:                                                           x
 x                                                                                     x
 x                         /var/mail/ 内の mbox 形式                                   x
 x                         ホームディレクトリ内の Maildir 形式                         x
 x                                                                                     x
 x                                                                                     x
 x                       <了解>                         <取消>                         x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

金輪際いじる気ないのでいいえ。
 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu メールサーバの設定: tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
 x                                                                                     x
 x Debian の exim4 パッケージは、1 つのモノリシックなファイルである「単一設定」        x
 x (/etc/exim4/exim4.conf.template) か /etc/exim4/conf.d/ に置かれる約 50 の小さなフ   x
 x ァイルから実際のファイルが構成される「分割設定」のどちらでも利用できます。          x
 x                                                                                     x
 x 単一設定は大きな変更をするのに向いており、一般的により安定しているのに対し、分割設  x
 x 定は小さな変更を行うのに楽な方法を提供します (ただし脆く、配慮せずに変更すると壊れ  x
 x るかもしれません)。                                                                 x
 x                                                                                     x
 x 分割設定と単一設定の詳細な議論については、/usr/share/doc/exim4-base にある Debian   x
 x 固有の README ファイルで参照できます。                                              x
 x                                                                                     x
 x 設定を小さなファイルに分割しますか?                                                 x
 x                                                                                     x
 x                        <はい>                          <いいえ>                     x
 x                                                                                     x
 mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

という感じで設定。
うごいた。

今回はこれであっさり目標は達成できたけど、スマートホスト側でリレー云々の設定が必用な場合もありそうな気がする。
その辺はスマートホスト側のSMTPサーバの設定をどうにかしてください。

FTP接続によるファイル転送のバッチ処理

ftpコマンドでバッチ処理したいときってありますよね。
しょっちゅう同じディレクトリの中身を同じディレクトリに放り込むとか。
じゃ、シェルスクリプト書きましょうということで。
あ、例のごとくWindowsじゃなくてLinuxです

で、今回はFTPS(FTP over SSL)での記述なので、ftpじゃなくてlftp使います。
まあftpでも同じような感じだと思います。

#!/bin/sh

if lftp <<_EOD
set cmd:fail-exit yes
open ftps://ftps.example.com
user hoge hogehoge
cd /remote
lcd /local
mirror -R
quit
_EOD
then
  echo "upload succeeded.n"
else
  echo "upload failed.n"
fi

という感じのシェルスクリプトを今回書きました。
内容としては、lftpコマンドで<<_EODから_EODまでを実行させて、実行結果が正常なら成功したよ、失敗したら失敗したよ、と表示させています。

lftpでは

set cmd:fail-exit yes

とすることで、コマンドが失敗したら接続を切ってエラーを返すようにできます。
バッチ処理にはもってこいです。
そのあと、openで接続先をftpsで開いて、userで認証、cdでリモートのファイルを置きたいディレクトリに移動、lcdでローカルの置きたいファイルがあるディレクトリに移動、mirror -Rでローカルのファイルをリモートにミラーしてquitで終了としてます。
このあたりは人によってやりたいことが違うのでご自由にしましょう。
見ての通り認証のパスワードがめっちゃ記述されている(user hoge hogehogeのhogehogeがパスワード)ので、スクリプトのパーミッションには気をつけましょう。

if – then – else – fiの流れはlftpコマンドが成功したらthenで失敗したらelseってことでまあ詳しくはシェルスクリプトでぐぐってください。

RAID5で不良セクタが発生したときってどうすればいいの?

ディスクを交換しろっていうのが一番正解なのはわかってます。

普通にext3とかext4とかで使ってる場合は

e2fsck -cfy /dev/sda1

とかやれば、e2fsckから間接的にbadblocksが呼び出されて不良セクタのファイルシステムへの登録処理を行ってくれるじゃないですか。
Windowsでいうところのchkdsk /Rみたいなもんですよね。
で、たとえば/dev/sda1と/dev/sdb1と/dev/sdc1でRAID5くんでたとして、/dev/sdc1で不良セクタが発生してmdadmに蹴られてfaultマークつけられたとするじゃないですか。
とりあえずremoveしてRAIDから外しますよね。
で、まあなんか一時的なシステムの不具合だった場合またaddしてやればそのまま動いたり、まあ場合によってはリビルドかけるなりすれば復活するわけじゃないですか。
でも、がちでディスクに問題があるっていうか不良セクタが発生していた場合、とりあえず代替処理してやれば動きそうな気がしてるんですよね。
でも、e2fsckから間接的にbadblocksを呼び出す方法だと、RAID5だとリビルドのRead/Writeが平行して走ることになるから駄目っぽいですよね。
じゃあ直接

badblocks -o badblocks.txt -s /dev/sdc1

とかやって不良セクタの発生してるブロックを書き出してやって、

e2fsck -l badblocks.txt /dev/sdc1

とかやって不良ブロックを不良ブロックinodeに登録って普通のext2/3/4ファイルシステムならできるけど、RAID5アレイ上のファイルシステムだとどう考えても駄目ですよね。
ということはファイルシステムが作成される前の段階で代替処理を行わなければならないわけですが、それってどうやるんでしょうか。
表向きにはHDDの不良セクタの代替処理はファームウェアが勝手にやってくれるとのことなわけですが、実際のところ普通に不良セクタが出没します。
そんなHDDのSMART値をみるとReallocated_Sector_Ctは0だったりします。
全くあてになりません。

で、肝心の代替法なんですが、やっと見つけたと思ったらこんなんでした。

該当ブロックを再配置します

[root@www ~]# dd if=/dev/zero of=/dev/hda3 bs=4096 count=1 seek=120
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 6.4496e-05 seconds, 63.5 MB/s

[root@www ~]# sync

これ本当に再配置ですか?
単に問題の箇所をzeroフィルしてるだけにしか見えないんですけど。

ということでbacblocksで見つけた不良箇所をファイルシステムへ登録せずに、代替セクタ処理を行わせたいんだけどもやり方がわからないわけです。
誰か知らないですか。

mdadmでRAID5構築

LinuxでソフトウェアRAID5をくむならmd使うことになるわけで、作った。
色々と問題があったんだけども。

とりあえず、LVMと組み合わせようかとも思ったけど、組み合わせたところでメリットが見あたらなかったので今回は普通に構築した。

まず、RAID5に利用するパーティションを用意。
今回は1.5Tのパーティションを5つ。
sda3, sdb3, sdd1, sde1, sdf1
である。
パーティションタイプは0xfd(linux RAID auto detect)。
で、

# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  /dev/sd[ab]3 /dev/sd[def]1

で最初作ったんだけど、アレイのリビルドが異常におそい。
4M/sくらいとか。
8000分以上とかなめてんの。

[>....................] resync = 1.6% (23715200/1465134592) finish=8221.9min speed=2921K/sec

チャンクサイズの問題だろうと思ったんだけど、まあ一旦構築したアレイのチャンクサイズは変更できないぽい。
ということで、チャンクサイズを指定して作り直す。
細かい容量なんて気にしないでどんと1024指定。

# mdadm -S /dev/md2
# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  --chunk=1024 /dev/sd[ab]3 /dev/sd[def]1

当然作り直したらファイルシステムもなくなっていた。
まあ仕方ない。
これでいいだろう、と、様子をみてみると、なぜか一本スペアマークがついている。

md2 : active (auto-read-only) raid5 sdf1[5](S) sde1[3] sdd1[2] sdb3[1] sda3[0]
      5860536320 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [5/4] [UUUU_]

んーと。
とりあえずメタデータを掃除してやろう。

# mdadm -S /dev/md2
mdadm: stopped /dev/md2
# mdadm --misc --zero-superblock /dev/sda3
# mdadm --misc --zero-superblock /dev/sdb3
# mdadm --misc --zero-superblock /dev/sdd1
# mdadm --misc --zero-superblock /dev/sde1
# mdadm --misc --zero-superblock /dev/sdf1
# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  --chunk=1024 /dev/sd[ab]3 /dev/sd[def]1

今度はうまくいったようだ。

# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active (auto-read-only) raid5 sdf1[4] sde1[3] sdd1[2] sdb3[1] sda3[0]
      5860536320 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [5/5] [UUUUU]
        resync=PENDING

md1 : active raid1 sda1[0] sdb1[1]
      272960 blocks [2/2] [UU]

ということでアレイの情報を/etc/mdadm/mdadm.confに記述する。

# mdadm -Ds | grep md2 >> /etc/mdadm/mdadm.conf

mdadm.confにDEVICEの記述がないなら

DEVICE partitions

とでも記述しておけばいい。
個別に記述しても良いけどめんどくさい。

あとは普通にmke2fsとかしてファイルシステムを作ってfstab書いたりして使えばOK。

リビルドの速度は10倍になった。

[>....................]  resync =  2.4% (36325084/1465134080) finish=557.6min speed=42699K/sec

linux-image-3.0.0-2とlinux-image-2.6.32-5でNFSがうまく動かない

カーネル2.6.32-5でなんかI/O周りでkernel OOPSをはくので、むしゃむしゃしてkernelのバージョンをあげたんですよ。
でね、うちはxen使ってDomUが二つ動いていまして、Dom0はkernel 3.0.0-2で問題なく動いたんだけど、DomUの片方はブートしないでござるの巻きに陥ったわけでして、仕方ないのでそっちは2.6.32で動かしたんですよ。
で、色々と動作確認しているうちに、NFSでマウントしていたディレクトリのオーナーとグループがnobody, nogroupになってることに気づいたわけですよ。
そこから色々と試していくうちにわかったのが、NFSサーバのカーネルが3だと2.6でNFS接続するとnobody, nogroupになるということ。
ああ、ちゃんと共有対象ディレクトリのクライアントとサーバのユーザ名およびuid, グループ名およびgidは同じですよ。
2.6がサーバなら3がクライアントでも2.6がクライアントでも問題なし。
3がサーバの時、クライアントが3なら問題ないけど2.6だとだめ。
オプションでall_squashつけてanonuidとanongid設定しても駄目。
軽く数時間はまりましたよ。
とりあえずカーネルが更新待ちだなー。

追記
やっぱりall_squashとanonuidとanongidでいけました。
うそつきましたごめんなさい。
all_squashで全員nobody, nogroup扱いにして、anonuidとanongidでnobody, nogroupのIDを実際に動作させたいユーザのIDにマッピング。

LVMで割り当てたPVを縮小させたい

2TのHDDのPVを縮小させたい。
ということでメモ。

まずは論理ボリュームの縮小。
論理ボリュームを縮小するときは、ファイルシステムを縮小してから論理ボリュームを縮小する。(拡大するときは逆)

縮小させたい論理ボリュームを縮小。
e2fsck -fyv /dev/ms09/file
resize2fs /dev/ms09/file 16G
lvresize -L 16G /dev/ms09/file
警告でるのでちゃんとサイズがあってるか確認して実行
resize2fs /dev/ms09/file
サイズがあってるか確認

ほかも同じ感じで論理ボリュームの縮小を行う。
システムのルートパーティションの場合はレスキューCDからブートしてやりましょう。

で、PVの縮小。
pvresize –setphysicalvolumesize 500G /dev/sda1
このとき、切り詰めた物理ボリュームの終端よりあとに論理ボリュームっていうかPEがあったりする場合、失敗する。
自動で再配置なんて気の利いたことはしてくれない。
なので、そういう場合は一旦論理ボリュームのバックアップをとって削除してから行うとか、pvmoveで別の物理ボリュームにデータを移してから行わなければならない。

PVが縮小できたらパーティションをPVにあわせて切り直す。
fdiskだと単位がシリンダとかで計算がいやだったのでcfdiskでやった。

パーティション切り直したら再起動して終わり。

今更ながらgoogleの試験問題をやってみた

だいぶ以前にgigazineの記事になったやつ。
おもしろい問題が多かったから久々に頭使った。

1.
スクールバスにゴルフボールは何個入るか?

わからん。
というか考えたくない。
適当なことはいえそうだけど。

2.
あなたは5セントコインほどのサイズに縮んでしまう。現在のあなたの身体の密度を保ったまま、身長に比例して質量は小さくなる。そしてあなたはガラスのミキサーに投げ込まれる。ミキサーの刃は60秒で動き出す。さぁ、あなたはどうする?
※「ニッケル電池」ではなくて、「a nickel」とは5セントコインのことだという指摘が来たので修正しておきました。指摘してくれた人、ありがとうございました。また、質量についても記述を変更しました。

身長に比例して質量が小さくなるということは、密度はもとより高くなる。
比例ということは一次関数的変化で、体積は三次元だから。
わかりやすい例を考えると、1立法センチメートルあたり1gの物質があって、それが1立方メートル分あったら、質量は1*100*100*100gだ。
これを身長に比例して質量が小さくなる法則に基づいて、1立方センチメートルにすると、あら不思議、質量は1*100*100gである。
ということで元々より怪力なはずだからミキサーをぶっ壊す。
3.
シアトルのすべての窓ガラスを洗浄するとして、あなたはいくら請求しますか?

これも考えたくない系だな。
シアトルの住人の数とか一戸あたりの居住人数とか一戸あたりの窓の数とか1日あたりに拭く窓ガラスの数とかオフィスの数とかオフィスの窓ガラスの数とかそういうのを片っ端から仮定して計算することになるんだろうか。

4.
マシンのスタックがメモリ内で増えるか減るかしているのをどのようにして見つけ出しますか?

正直わからんちん。

5.
あなたの8歳の甥にデータベースについて3つの文で説明しなさい

学校で友達いるだろ?
で、だれがだれのこと好きとか、一発でわかるんだぜ。
あと女の子のパンツの色もな!

6.
時計の長針と短針は一日に何回重なりますか?

基本的に一時間に一回重なるけど11時台は重ならないので11*2で22回。

7.
あなたはA地点からB地点に行かなくてはならない。そこに到着できるかどうかは知りません。どうしますか?

google mapでルート検索

8.
シャツでいっぱいの戸棚があるとします。特定のシャツを見つけるのは非常に難しいです。簡単にシャツを見つけるためにどのように整理しますか?

整理苦手なんで教えてください。

9.
この村には100組の夫婦がいて、夫は全員浮気しています。妻は全員、自分の夫以外が浮気していることは知っています。そしてこの村の掟では浮気や姦通は 許されていません。また、どの妻も自分の夫が浮気していると知ればすぐに自分の夫を殺すという掟があります。この村の女達は掟には背きません。ある日、村 の女王が言いました。この村には浮気をしている男が少なくとも1人はいる。さて、この村に何が起きますか?

妻は自分の夫以外が浮気していることは知っている。
そして夫が現時点で生きていて、妻は掟に背かず、浮気をしていることを知れば夫を殺すのであれば、妻は自分の夫だけは浮気していないと考えている。
そうでなければすでに殺していなければおかしい。
そこで浮気をしている男が少なくとも1人いるといっても、妻は自分の夫以外が浮気をしていることを知っているので、別段新しい知識が入ってきたわけではない。
ので何も起きない。
んーむ、いまいち面白味に欠ける。

10.
ある国では人々は生まれてくる子には男の子だけを欲しがりました。そのため、どの家族も男の子を産むまで子供を作り続けました。この国では男の子と女の子の人口比率はどうなりますか?

生まれる確率が男女1/2なら1:1になりそうな気がするけど考えてみる。
無限に産むことは不可能なので、生涯出産可能回数をnとする。
男が生まれた時点で出産は終了なので、出産をする回数の割合はこうなる。
1 – 1/2
2 – 1/4
3 – 1/8

n – (1/2)^n
ただしn人目も女性のこともあるので、n人出産した人の中には男の子がいない場合もある。
n人連続女である確率 – (1/2)^n
んで、生まれた子供の人数は出産回数で、生まれた男は各1人、女はn-1人。
ただし女はn人連続女だった場合を考慮するのでその枠は女n人。

男の出産期待値は1/2+1/4+1/8+…+1/(2^n)
女は 1*1/4+2*1/8+3*1/16+…+(n-1)/(2^n) + n*/(2^n)

さて、これが等しければ良いんだが、Σとか忘れたんだが。

とりあえず2^nをかけて分母をめっさつすると
男 2^(n-1)+2^(n-2)+2^(n-3)+…+1
女  1*2^(n-2)+2*2^(n-3)+3*2^(n-4)+…+n-1 + n

んー。
とりあえずΣ使うと
男 Σ [i=1,n] 2^(i-1)
女 n + Σ[i=1,n-1]i*2^(n-1-i)
つーかんじ?
記憶曖昧でよーわからん。
とりあえずあと2かけるともう少しすっきりしそうなのでかける。
男 Σ [i=1,n] 2^i
女 2n + Σ[i=1,n-1]i*2^(n-i)

なんか公式でさくっと解けそうなんだけどなー。
もうさっぱり覚えてない。
ギブアップ。

11.

高速道路で30分間に自動車が存在する確率が0.95である場合、10分間では確率はどれぐらいになりますか?(確率は一定であると仮定します)

10分間で自動車が存在する確率をaとする。
10分間で自動車が存在しない確率は1-a。
30分間で自動車が存在しない確率は(1-a)^3。
30分間に自動車が存在する確率は0.95なので存在しない確率は0.05。
(1-a)^3=0.05。
あとはこの方程式を解けば。。。ってどうやってとくん?
因数分解とかとてもできそうにないんだけど、どうやったっけ。
忘れた。
電卓使うと 1-a≒0.368。
a≒1-0.368=0.612。

12.
時計を見ると3時15分でした。長針と短針の間の角度は?(ゼロではありません)

長針は3をさし、短針は3から4へ向かって15/60進んだ角度。
3と4の角度は360/12=30。
従って長針と短針の差は30/4=7.5度。

13.
4人の人々がぐらぐらするロープの吊り橋を渡って夜にキャンプへ戻る必要があります。不幸にも懐中電灯は一つしかなく、17分しか使えません。吊り橋は懐 中電灯なしで渡るにはあまりにも危険で、吊り橋は同時に2人しか渡れません。しかも、各人は歩くスピードが違います。ある者は橋を渡るために1分かかり、 別の者は2分かかり、3番目の者は5分かかり、最後の者は10分かかります。どのようにすれば17分で全員が渡りきることができますか?

まず最初に1分と2分の二人で渡る – 2分経過
1分のやつが戻る – 3分経過(a)
5分と10分で渡る – 13分経過
2分のやつが戻る – 15分経過(b)
1分と2分で渡って終わり – 17分経過

aとbで戻るのは1分のやつと2分のやつが入れ替わっても良い。

14.
あなたは友人たちなどとパーティをしており、全員であなたを含めて10人います。友人の一人が賭を提案してきました。あなたと同じ誕生日の人がこの中にい ればあなたは1ドルもらえます。あなたと同じ誕生日の人がいない場合には友人が2ドルもらいます。あなたはこの賭を受け入れますか?

他の人と同じ誕生日になる確率は、1:1の場合はとりあえず閏年を無視すれば、1/365。
自分以外の9人のうち、だれも同じ誕生日の人がいない確率は、(1-1/365)^9。
誰かいる確率は1-いない確率。
いない確率は電卓で計算するとおおよそ0.9756なのでいる確率は0.0244。
期待値は0.0244*1-0.9756*2=-1.9268。
なので受けない。
但し同じ誕生日の人がその中にいることを知っていれば例外。
って直感的にぴんとくる方の答えになっちゃってるのは間違ってるフラグな気がする。。。

15.
全世界でピアノの調律師は何人いますか?

これも考えたくないでござる。
世界の人口と世帯数と世帯あたりの構成人員数とピアノを所有している家庭の割合と調律師が1日あたりに調律するピアノの台数とかそういうのを仮定して計算することになる気がする。

16.
あなたは同じサイズのボールを8つもっています。そのうち7つは同じ重さですが、1つはほかのものよりもわずかに重いです。秤を2回だけ使ってこのわずかに重いボールを見つけるにはどうすればいいですか?

まず、秤に3個ずつボールを乗せる。
重さが同じだった場合
残り2個のどっちかが重いボールなので、その2個を秤に乗せて終了。
重さが違った場合
重かったほうの3個のどれかが重いボールなので、そっちの3個のうち2個を秤に乗せる。
同じだった場合
残った1個が重いボール
違った場合
重い方が重いボール

17.
5人の海賊がいて、彼らは1位から5位にまでランク分けされています。1位の海賊は100枚の金貨をどのように分けるかというプランを提案する権利があり ます。残りの海賊はこのプランに投票する権利があり、賛成が半分に満たない場合には1位の海賊は殺されます。1位の海賊の分け前を最大にしてなおかつ彼が 生き残るにはどうすればいいですか?(ヒント:一人の海賊は結局、金貨の98%で終わる)

昨日書いた

が、昨日のはプランの提案者には投票権が無い前提で書いたけど、それだと97%になってしまった。
んで、今日はプランの提案者にも投票権がある前提で書いてみる。
まず、5位の海賊だけが生き残った場合。
5位が100枚もらえる。
4位と5位の場合。
4位は自分の投票権で賛成が半分になるので、提案は以下の通りになる。

4 – 100
5 -0

3から5の場合。
3位は一人味方につければいい。
5位は4位がトップになったら自分に一枚もこないことがわかってる。
従って、3位は5位に1枚くれてやれば味方につけられる。

3 – 99
4 – 0
5 – 1

2から5の場合。
2位は一人味方につければいい。
4位は3位がトップになったら1枚もこないので、やはり1枚くれてやれば味方につく。

2 – 99
3 – 0
4 – 1
5 – 0

1から5の場合
1位は二人味方につける必要がある。
3位と5位は2位がトップになると1枚もこないので、やはり1枚(ry

1 – 98
2 – 0
3 – 1
4 – 0
5 – 1

これだと問題のヒント通り98%になる。
出題ミスか翻訳ミス?

googleの面接での問題が興味深かったから解いてみたらヒントと違う答えになった

5人の海賊がいて、彼らは1位から5位にまでランク分けされています。
1位の海賊は100枚の金貨をどのように分けるかというプランを提案する権利があり ます。
残りの海賊はこのプランに投票する権利があり、賛成が半分に満たない場合には1位の海賊は殺されます。
1位の海賊の分け前を最大にしてなおかつ彼が 生き残るにはどうすればいいですか?
(ヒント:一人の海賊は結局、金貨の98%で終わる)

これが問題。
で、色々考えてみて、上位の海賊が死んだ場合どうなるかを考えていったら解けた。

まず、1位から3位が死んで、4位と5位の海賊だけになった場合。
投票権は5位の海賊だけしか持たないため、4位の海賊は5位に100枚全部渡すしか生き残るすべはない。
従って、4位の海賊の提案は以下の通り。

  • 4位 0
  • 5位 100

ただし、それでも反対される可能性さえある。
5位の海賊は4位の海賊が死んでも100枚もらえるから。
従って、何が何でも4位の海賊は3位の海賊は生かしておかねばならない。
つまり、4位の海賊は3位の提案がどんなものであっても飲まねばならない。

3位から5位の海賊になった場合。
上記のため、4位の海賊は無条件に3位の提案に賛成する。
従って、3位の提案は以下の通りになる。

  • 3位 100
  • 4位 0
  • 5位 0

2位から5位の海賊になった場合。
3位の海賊は自分がトップになれば100枚が確約されるので、少なくとも100枚もらえなければ反対する。
そして100枚もらったとしても反対する可能性がある。
4位, 5位の海賊はそうなれば0枚となることがわかっている。
必要な賛成者数は二人であるため、2位の提案は以下の通りになる。

  • 2位 98
  • 3位 0
  • 4位 1
  • 5位 1

4位と5位は0でも賛成する可能性はあるが、それでは3位がトップになった場合でも取り分は変わらないため、反対する可能性もあるため、1枚渡しておく必要がある。

そして、1位から5位まで全員生き残っている場合。
半数の票を取るためには二人の賛成をとる必要がある。
2位は自分がトップになれば98枚もらえるので、少なくとも98枚わたさなければこちらにつかない。
3位は、2位がトップになれば一枚ももらえないので、1枚もらえばこちらにつく。
4位、5位は1枚渡せばこちらにつく可能性があるが、トップが2位でも1枚はもらえるため、確実にするためには2枚渡さなければならない。
従って、1位が提案するプランは以下の二通りの可能性がある。

  • 1位 97
  • 2位 0
  • 3位 1
  • 4位 2
  • 5位 0

または

  • 1位 97
  • 2位 0
  • 3位 1
  • 4位 0
  • 5位 2

っていう結論に至ったんだけどそしたら出題の98%ってのとずれてしまった。
どうしてこうなった。