2010年6月22日火曜日

Google Chrome のプロファイルを分けてGoogle(Gmail)アカウントを使い分ける

Googleのアカウントもってるじゃん。1つ?んなわけない。
 
 

FireFoxのプリズムとか、GoogleChromeのアプリケーションとしてショートカットとか便利なものは複数アカウントで使い分けたい。
特にChromeのアプリケーションショートカットはGmailをローカルのメーラっぽく使えていいので、別のアカウントで複数立ち上げたくなったのでやり方を調べてみた。
 

どうやら"--user-data-dir"という引数でプロファイルの場所を指定できるらしい、プロファイルが別ってことは、それぞれGoogleのログイン情報を別に持たせて動かせるってことだね。
 
 

chrome.exe" --app="https://mail.google.com/mail" --user-data-dir="..\..\User Data\hogehoge"

 

Chromeのショートカットを加工して、こんな感じで必要な分だけGmail用Chromeを起動すれば、あたかも複数メーラが立ち上がってるみたいになって便利。
hogehoge のところを適当にいじろう。
 
 

2010年6月3日木曜日

ZFS、デバイスの用途をまとめ。それとTIPS。

ZFSでzpoolを作成するとき、各デバイスまたはファイルに3種類の役割がある。
データ用、キャッシュ用、ログ用とあるが、zpool構成するときにそれぞれどのように使えるかまとめてみた。
 

検証に使ったのは取ったのはOpenSolarisのb131、zpoolバージョンは22だ。
 

デバイスの用途と構成・特徴一覧


ざっとこうなる。
 










zpool形式datacachelog
スパン
ミラー×
RAIDZ ××
RAIDZ2××
RAIDZ3××
detach条件付○条件付○※
ファイルを指定×

 

dataとlogは似ている


data用は取れる構成コンプリートなのは当たり前だが、detachには制限がある。
logも同様だが、完全なデータのコピーがないデバイスは取り外せない、すなわちミラー状態の片割れが唯一取り外しOKで他の構成ではそもそも取り外しができない。
 

もちろんreplaceは可能、順序的にはミラーしてdetachだから当然。
 

data、logともにmkfileで作成したファイルも指定OK。
raidzはdataのみ、dataもlogも後からattachでミラーリングデバイスを追加出来る。
 
 



追記※
Logは最新のコードでは取り外せるようになってると情報をいただきました。
http://twitter.com/hasegaw/status/15496202547
取り外せないことがひそかに疑問だったが、すっきりしました。
 
 


cacheは特殊


一方cacheは冗長構成が一切とれない、必要がないからだろう。
 

また、デバイスの追加削除に制限がない。中身はあくまでキャッシュにすぎなく、ヒットしない・読み込めない場合はさっさと諦めて削除すればよい。
 

もう少し触れておくと、cacheには十分に早いデバイスの割り当てが推奨されている。
ミラーをはじめ冗長な構成では読み取りストライピング効果も確かにあるが、書き込みのペナルティが大きいため不向きだ。
 

また、degradeな状態を想像するといいだろう。
cacheにそんな状態があっては本末転倒だ、リシルバさせる意味も全くない。
高速に動作し、そうできない状態は必要ないのがcacheだ。
 

ちなみにファイルは指定できない、「ディスクまたはディスクスライスを指定すべき」と断られる。
cacheへの割り当てデバイス、お勧めはやはりSSDだ。
 
 
 


という感じ。ではついでにZFS利用にあたって私からのTIPSを。
 
 
 


zpoolミラーは多面鏡


zpoolのミラーリングはRAID1ではない。いくつも複製対象が増やせるのだ。
2つでは何かと心配、というときは3つにすればいい。
 

ミラー台数を増やすたびにリード性能は向上し、ライトはが下がる。リード重視という環境は多かろうので覚えておくとよい。
 

3-Way Mirrorの図、attachで作る。もちろん4つ目5つ目を追加していく事もOK。
NAME STATE READ WRITE CKSUM
zfs ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c4t0d0p0 ONLINE 0 0 0
c4t0d0p1 ONLINE 0 0 0
c4t0d0p2 ONLINE 0 0 0

 


ZILは意外と役に立たない(そんな事は無いというお話を追記してます)


これは特に主観が大きいTIPSなので参考程度に。
(※追記:LOGを別にした場合はかなり勝手が変わります。)
 

ZIL、まあトランザクションログみたいなのだが、アトミック書き込み、CoWが身上のZFSではイマイチ存在が薄いように思う。
実際どういうケースで役に立つのか、あまり実感がわかないのにZIL有効だとパフォーマンスがものすごく落ちる。
 

結局のところ、HDDやストレージ側の障害にZILは無力である。
ライトキャッシュ有効のストレージ装置が気まぐれでキャッシュを捨てたとする、別デバイスに取ったZIL上では正常終了なのにデータはおかしい。
逆もそう、HDDが死んでZILごと失った場合もZFSのCoW特性から、ファイルシステム上特に不都合はない。
 

データの小さい破壊はZFS内でミラーやRAIDZ構成をとっておくことでチェックサムから復旧でき、そこでもやっぱりZILは関係ない。
 
 

さてZIL、有用かな?
 
 




さて、ZILに関して有識者の方からご助言をいただきました。Twitter:hasegaw さんより。
ってか、『Xen徹底入門』とか付箋バリバリなのでえらい驚きましたが(汗
 

ZILはRAID-Zの上NFSサーバにしたときには効果大。Logデバイスは最新のコードだと取り外し可能に
http://twitter.com/hasegaw/status/15496202547

 

NFSですか。実は具体的にどう効果がもたらされるのかイメージが・・・
多分非同期だからということが関係してくるんだろう、ちょっと考えておこう。
本文がZILを完全に批判しているようになっているので載せるところまでは早くしないと。
 

で、答えはこちら。
http://togetter.com/li/27626
親切丁寧に教えてもらっちゃいました、なるほどですねえ。
 

RAIDZはデータをストライプした全デバイスに書く


使用デバイスの台数から RAIDZ=RAID5、RAIDZ2=RAID6と思ってはいけない。
詳しくは書き込みホールの問題を調べたらわかるので割愛する。
 

で、余所ではあまり触れてないと思ったことについて。
データを全部に書くのでRAIDZにあまり一杯デバイスを並べると書き込みのペナルティが馬鹿にならなくなってくる。
 

よってRAIDZを構成するのは6-8デバイスにとどめておき、大容量を求めるならRAIDZ構成をたくさんストライピングするのが多分賢い。
 
 


単純なスパン構成でも、後から冗長化できる(1)


導入時にRAID0っぽい構成にして、後からマズイと思ったりしますか?
zfsだとattachしていくことで冗長構成にする事が可能だ。
 


たとえばこんなスパンボリューム。
NAME STATE READ WRITE CKSUM
zfs ONLINE 0 0 0
c4t0d0p0 ONLINE 0 0 0
c4t0d0p1 ONLINE 0 0 0

 


attachであれよと言う間にRAID1+0相当に。
NAME STATE READ WRITE CKSUM
zfs ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c4t0d0p0 ONLINE 0 0 0
c4t1d0p0 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
c4t0d0p1 ONLINE 0 0 0
c4t1d0p1 ONLINE 0 0 0

 


多少容量は犠牲になるが、RAID0相当の構成はすぐにRAID6以上の稼働率&ハイパフォーマンスを誇るRAID1+0に進化させることができる。
これも覚えておいて損はないだろう。
 
 

単純なスパン構成でも、後から冗長化できる(2:追記)


追加するデバイスなんかネエヨ!って方のためには、copies プロパティの変更をお勧めする。
何が起こるかって言うと、ZFSが書き込むブロックのコピー保持数を指定できるのだ。
 

なのでコピー=2とすれば複数のデバイス間で同一のブロックを2つ持ってくれるというわけ、hadoopにもこんな機能あるね。
このように設定しよう。
 

# zfs get copies tank
NAME PROPERTY VALUE SOURCE
tank copies 1 default
 
# zfs set copies=2 tank
 
# zfs get copies tank
NAME PROPERTY VALUE SOURCE
tank copies 2 local

 

これで一応冗長構成になった、容量は半分になるけどな。
ミラーと違うのは、ミラーがどれだけデバイスを追加しても容量が大きくならないのと違い、デバイスを追加したらその半分だけ容量が増えていくことかな。
 
 

思いったったら即、実質ミラーリングが可能だ、


デバイスたくさんのZpool


悩むところだが、Log,cacheを入れたら・・・
 

logをミラー、cacheを複数、dataはRAIDZ以上の複数スパン(または1+0構成)がいいかなあ。
こんな感じ?あくまで一例ね。
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
c4t0d0p0 ONLINE 0 0 0
c4t1d0p0 ONLINE 0 0 0
c4t2d0p0 ONLINE 0 0 0
c4t3d0p0 ONLINE 0 0 0
c4t4d0p0 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
c4t0d0p1 ONLINE 0 0 0
c4t1d0p1 ONLINE 0 0 0
c4t2d0p1 ONLINE 0 0 0
c4t3d0p1 ONLINE 0 0 0
c4t4d0p1 ONLINE 0 0 0
raidz1-2 ONLINE 0 0 0
c4t0d0p2 ONLINE 0 0 0
c4t1d0p2 ONLINE 0 0 0
c4t2d0p2 ONLINE 0 0 0
c4t3d0p2 ONLINE 0 0 0
c4t4d0p2 ONLINE 0 0 0
raidz1-3 ONLINE 0 0 0
c4t0d0p3 ONLINE 0 0 0
c4t1d0p3 ONLINE 0 0 0
c4t2d0p3 ONLINE 0 0 0
c4t3d0p3 ONLINE 0 0 0
c4t4d0p3 ONLINE 0 0 0
logs
mirror-4 ONLINE 0 0 0
c4t0d0p4 ONLINE 0 0 0
c4t1d0p4 ONLINE 0 0 0
cache
c4t2d0p4 ONLINE 0 0 0
c4t3d0p4 ONLINE 0 0 0
c4t4d0p4 ONLINE 0 0 0

 
ちなみにこれ、コマンド一発で構築可能だ。

 
 
 

ZFS特集でした!

2010年5月19日水曜日

「Windows XP Mode」のネットワークはNAT

先日Windows7のおまけ、XPモードの記事を書きました。社内から「あれってIPどうなるの?」という質問をいただいた。


そうですね、知っててきっちり答えるところに聞くのは最良のメソッド。




画像:XP Modeの設定画面


ベースがVirtualPCなので、デフォルトではNATです。
既存のネットワークに影響なく利用可能で、もちろんホストと同一のLANに参加させることも可能。


画像:XP Mode 内でIpconfig


サブネットは適当、この例では『192.168.131.0/24』。多分ホストとは被らないようにやってくれてるのでしょう。
しかしルータがBaffaloだとわかってしまう図だな、まあいいか。



以上。

2010年5月18日火曜日

気になっていた本を購入、『子どもをネットから守り、ネットで育てる』

いくら仕事でIT関係をやっているといっても、いざ家庭に導入となると困る。
仕事でやってるからなおさらといおうか。ハンパにネット社会を見慣れていると、ネットの嫌なところが先に立ってなかなか上手くできると思わない。
 
 

しかし何時までもそんなことは言ってられず、"互いの"リテラシを向上しなければと思い、以前立ち読みして以来気になっていた書籍を買ってきた。
 


 

いやぁコレ、すごくいい本だと思うよ。紹介する俺がアルファブロガーでなくて申し訳ないくらいだ。
なんというか必死?守ること、教えることに必死な感じが書かれているのがいい。
 
 

こういうジャンルで他の物は少ししか見たことないので褒めすぎかもしれん、もう数年すれば世界もだいぶ変わってるかもしれんが、家庭内でITの事が分かるのが自分ひとりという状況のお父さんは読んでおいて損はないんじゃないか。
 

自分なんかはもうすぐ子世代の使う端末・リテラシについていけなりそうだが、それの巻き添えで子のIT活用を出遅れさせるのもつらいしね。
 
 
 

けんじろう と コラボろう!
http://blogs.itmedia.co.jp/kenjiro/

 

この本の内容は著者のブログ↑でだいたい読めるっぽいんだが、やっぱり紙がいいんだよな。
 

2010年5月6日木曜日

Windows XP Mode があればNameLandもWindows7(x64)で使える

G/Wにちょっと部屋を片付けたよ。
 

で、整理整頓と言えばラベルプリンター、一家に一台くらいあるだろう。キングジムのTEPRA(テプラ)とかCASIOのNameLand(ネームランド)とか。
 
 


経緯を省くが色々あって自宅のWindwosが 64ビット版Windows7しかなくなりました。
それでNameLandを使おうとしたら64ビット対応のドライバないんですって。
 
 

うちのNameLandはKL-E20、PCがなければラベルプリントできない!

 
 



しかし、困ったところの救いの手が、Windows XP Modeだ。

Windows XP Mode のダウンロード
http://www.microsoft.com/japan/windows/virtual-pc/download.aspx


 

母艦であるWindows7微妙に統合されたWindowsXP on VirtualPCがインストールされる。アプリケーションのみの使用も可能だ。
 

画像:XP Mode

 
 


かくして無事にラベルのプリント環境は維持された。
他にも無線アダプタをルータにする系のデバイスとかもXPModeで動作確認取れてるみたい。
 
 

XPとの互換でWindows7への乗り換えを躊躇している人、XP Modeがあるから何とかなるぞ。

2010年4月21日水曜日

DeskNet'sからエクスポートしたスケジュールをPythonでGoogleカレンダー用に 整形する

DeskNet's(デスクネッツ)のスケジュールをGoogleカレンダーにインポートして何かいいことあるのかい?
iPhone / iPod Touch が勝手に同期してくれるじゃないか。
 
 

というわけで、PGほぼ素人ながらPython手習いの一環としてスクリプトを書いてみた。
DeskNet'sからエクスポートしたCSVのスケジュールを、Googleインポート用にヘッダ変更と並び変えをして保存するというつくり。
 

まあ、変換するだけなので簡単ですね、サンプルをつなぎ合わせたような。
 

import csv
 
csvfile_in='schedule.csv'
csvfile_out='schedule_out.csv'
 
reader = csv.reader(file(csvfile_in, 'r'))
writer = csv.writer(file(csvfile_out, 'w'), lineterminator='\n')
 
writer.writerow(['Subject','Start Date','Start Time','End Date','End Time','Description','Location'])
 
i = 0
for row in reader:
if i != 0:
# print unicode(row[6], 'cp932').encode('utf8')
rw = [row[8],row[3],row[4],row[5],row[6],row[9]]
print rw
writer.writerow(rw)
 
i = i + 1
 

 

応用でサイボウズもいけますね、ファイル名もなぜか同じだし。
 

これをGoogleのAPIに投げてインポートまで自動化出来たらいいんだけどなあ。
テストツールを使えばともかく、取得元のDeskNet'sやサイボウズとかから取ってくるのをスクリプトで自動化するのが大変。
 
これだけだと汎用性が微妙にエクセルマクロ以下なので、WEBにおいて、CSVアップしたら加工して戻してくれるようにしたいな。
 
 

サイボウズLiveとか、もっとAPI充実しないかなー
 

2010年4月14日水曜日

pythonのコマンド一行WEBサーバは便利、ファイル転送やWEBアプリの確認に

性懲りもなく python なぞに手を出し始めていますが、初期モジュールにHTTPサーバがいくつか入ってます。
その中にWEBサーバがあるんですが、これに驚いた。
 

python -m SimpleHTTPServer
 

Windowsでもいいし、Linuxほかでもいい。この一行でカレントディレクトリをルートにしたWEBサーバがあがる。
 

画像:PythonのSimpleHTTPServerモジュール
 
 

デフォルトだと TCPの8000番で待つのでアクセスしてみる。
 

画像:WEBブラウザでアクセス
 

ちゃんとカレントのディレクトリリスト※が出ている、(起動したユーザのアクセス権によるが)もちろんブラウザやWgetからダウンロード可能。
 

※ index.html があったら優先される。
 
 

設定やら色々追加することでCGIにもなったりしてかなり使いでがあるようだが、とりあえずこれだけすればwget,ブラウザですぐファイルを運べるので覚えとくと便利。
相手が iphone とかでもいいんだよね。
 

覚えておけ!いいからPythonいれとけ!