ビットの海ビットの海2013年8月22日木曜日macでbind使いたい人のメモMacでインターネッツ共有をしたときに、自前のDNSを参照させたい時ってあると思います。そんなときに、MacでBINDを使うメモです。0.0.0.0他のファイルはデフォルトです。共有2013年8月5日月曜日JBODはややこしいカイワレ先生のブログを見て、自分のメモがてら、JBODについて書いてみます。JBODって、なんぞやって、日本人なら誰もが一度は考えると思うからです。(RAID0と何が違うの?って)現状、JBODという言葉は非常に曖昧な言葉です。日本語wikipediaにも3つ定義があります。1.JBOD機能を持つRAIDコントローラカードを取り付けて、JBODにしたいハードディスクをRAIDコントローラカードに接続する。2.JBOD用として製造されたディスクアレイ製品をSCSIやファイバーチャネル等のインターフェースに接続する。NT系列のOSには「スパン」という名称でこの機能が標準装備されている)。http://ja.wikipedia.org/wiki/JBODより。これはこれで微妙なんですが。大雑把な理解として、JBODの特徴を2つ挙げます。(どちらともRAIDに対する優位点です)A.複数のディスクにて、容量が異なる場合も(単純な足し算の)単一のボリュームを構成することができるB.I/O性能がよい、とされるちなみに、Aが成立するのは、上記wikipedia定義の1,2,3のときです。Bが成立するのは、1,2です。(とはいうものの、状況によってRAIDのほうが性能がよかったりします。これは使い方によって変わります。)3のとき、なぜBが成立しないかというと、ソフトウェアで処理している分オーバーヘッドが大きく、I/Oが出ません。以下は、ざっくり、1と2は、ハードウェアベースのJBOD。3をソフトウェアベースのJBODとします。ハードウェアベースのJBODハードウェアベースのJBODとHadoopの話に入りますね。ハードウェアベースのJBODも2つの意味があります。1つは、「束ねられたディスク群」という意味のJBOD。ひとつは「物理ディスクが別々の論理ボリュームにマッピングされて、並列書き込み可能な状態(仕組み)」です。上記とはぜんぜん違いますね。OSから見えるマウントポイントと物理的なディスクが紐付いている状態ということです。(そして、きちんと別々に書き込むように対応したコントローラがいわゆるJBOD対応のコントローラってやつです)。Hadoopはアーキテクチャ上、並列に書き込みをしてくれるようです。これは、マウントポイントと実際のディスクが一対一で結びついている時に、その並列性が意味を成すということです。逆にRAIDを組んでしまうとストライプ書き込みをしてしまうので、そのラウンドロビン並列書き込みの意味がなくなってしまうということですね。ハードウェアのJBODは外付けのエンクロージャで使用されることが多く、サーバ筐体の内蔵ディスクで対応しているものがどのくらい世にあるのかは知りません。調べたら、さすがにDELLのCシリーズとかはJBOD対応のチップ(HBAとしての役割しか果たさないモード)を搭載したLSIのチップとか積んでるみたいですね。ソフトウェアベースのJBODソフトウェアベースのJBODの話は余談です。こっちは束ねる方だけ触れておきます。お仕事用途ではあまり使われないので。Bender」の実装の話だと思います。(別に、HOME鯖が最初のJBOD実装ってわけではないです)。Server(家庭用鯖)にJBODが必要とされてMSが実装したかというと(最新のHOME鯖では外されているようです)、発売当時、まだ、HDDの値段はそれなりに高く、ユーザのニーズとして、「ジャンク屋で買ってきたHDDいくつか、組み合わせて、でかいOneボリューム構成したいんだけどなー」というのがあったからです。そのニーズに合致していたのが、ソフトウェアJBODだったんですね。Linuxの場合は、LVMでソフトウェアのJBOD(のようなもの)を構成することができます。まとめJBODという言葉は、いろんな人が勝手にオレオレ定義で使っている言葉です。代替になる適当な言葉もないので、JBODいいよーって言いたいエライ人は、適当に新しい言葉をでっち上げていただけると、世のエンジニアが助かります。0ってのを一つの筐体で何個か組む感じの構成になるかと思います。お金くれるんだったら、LSIとかのちゃんと対応したチップ詰んだ鯖にしたいですが。0を並べたようなものをJBODなんて言ってる例もあるので、みんな適当に使ってる単語といえばそんな感じ。おまけJBODではWriteキャッシュを切りましょうが一般的なお約束なのですが、もしかしたらHadoopだと気にしなくてもいいのかもしれません。ぐぐればどっかにそんなこと言ってる人いるかも。JavaMacOSXのインターネット共有で、MACアドレス制限を行いたいMAC,MACややこしいですが、T/Oです。MACのインターネット共有は便利なので、ついつい使いたくなってしまうのですが、はやりセキュリティを考慮しないのは危険ということで、インターネット共有を行う際に、指定したMACアドレス以外は、接続できないようにしたいと思います。Lionどのレイヤーでやるか最初、ipfwでやろうとしたのですが、どうにもうまく行かず。インターネット共有では、dhcpでIPアドレスをばらまいてるわけですが、ココで指定したMACアドレス以外にはdhcpでアドレスを付与しない方向に切り替えました。想定外の端末が直接アドレス指定してアクセスしてくるリスクには、払い出すアドレス数の管理+ipfw等で対応することとします。無線LANのキーを設定するのは言うまでもありません。[相手のコンピュータが使用するポート(Wi-Fi)]を選択し、インターネット共有チェックボックスをONにします。このファイルを編集するのですが、難があり、デーモン起動時に新規にファイル生成し、デーモン停止時にファイルを削除しやがります。この点、多少ケアが必要です。実際のファイルサンプル[xml]Subnets_creatorcom.apple.InternetSharingallocatedhcp_domain_name_server10.0.2.1dhcp_router10.0.2.1lease_max86400lease_min86400name10.0.2/24net_address10.0.2.0net_mask255.255.255.0net_range10.0.2.210.0.2.254allowxx:xx:xx:xx:xx:xxbootp_enableddetect_other_dhcp_serverdhcp_enableden1use_server_config_for_dhcp_options[/xml]allowの部分に注目して欲しいのですが、[xml]allowxx:xx:xx:xx:xx:xx[/xml]allowで指定したMACアドレスだけに、IPアドレスを割り振るようになります。インターネット共有開始[/bash]ファイルが消されてしまう対策として、BSD系OSで使用出来るchflagsを利用します(chmodでreadOnlyにしても消されるので)。エレガントな方法ありそうな気はしますが。/etc/bootpd.plist[/bash]上記を叩けばOKです。新チーム体制になったけど、裏側の保守っぽいことメインに仕事してた気がする。3月2月とやってること変わらず保守っぽいのがメインだったけど、エイプリルフールの実装とかは、初めてまともに機能的なものを仕込んだかも。4月チームでフロント周りのリソースが薄かったので、かなりの部分、マークアップっぽいことしてた気がする。FTL/CSSに少しだけ詳しくなる。5月r***とか、e***とかのある程度のカタマリ機能を実装。保守っぽいのから、***の機能とかを実装。振り返りこの半期開始時点よりは、ずいぶんマシになった気がする(元が酷すぎるんだけど)6月ぐらいから自分に不足してる知識とかがかなりクリアになってきて、Inputの元気も戻ってきたので、最近は本とかも読めている後半戦へ向けてもーちょいマシなエンジニアになりたい。QCDをあげていきたい。設計〜実装〜テスト:やっぱりこのあたりを強化していきたい。分析とかは当分いいいや。雑記2013年6月11日火曜日FreeMarkerのハッシュの要素にアクセスする(2)前回「FTLのハッシュの要素にアクセスする」というのを書いたのですが、このときやりたかったことって、配列の「最後」にアクセスしたかったからなんですね。値直接指定じゃなくて、配列の最後を判定する構文がちゃんと用意されていたのでした。マニュアルはちゃんと読みましょうというはなし。Java2013年5月23日木曜日FreeMarkerのハッシュの要素にアクセスするT/Oなんですが。/>[/java]ずらーっとね。特定要素にアクセスするときは、こんな感じで書けるっぽい。"piyo">ぴよぴよ[/java]みたいな。