<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://d.ballade.jp/blog/">
<title>hasegaw blog</title>
<link>http://d.ballade.jp/blog/</link>
<description>仕事中いつも上の空な窓際社畜犬による、コンピュータ関連のブログ。

主なトピックはLinux, 仮想化技術, Perlなど。
また15年のWindows(+PC UNIX)ユーザな私でしたが、Mac OS X環境(MacBook)へのマイグレーションもレポートします。</description>
<dc:language>ja-JP</dc:language>
<dc:creator></dc:creator>
<dc:date>2012-04-01T07:58:13+09:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.typepad.com/" />


<items>
<rdf:Seq><rdf:li rdf:resource="http://d.ballade.jp/blog/2012/04/i-4449.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/ethernet_openin.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/usbflash_refoma.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/pci-x_to_pci.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/iscsi-scst.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/scst-on-centos5.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/03/ml110-g7-6ef6.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/02/doesstripingboo.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/02/post-1091.html" />
<rdf:li rdf:resource="http://d.ballade.jp/blog/2012/01/post-c6be.html" />
</rdf:Seq>
</items>

</channel>

<item rdf:about="http://d.ballade.jp/blog/2012/04/i-4449.html">
<title>ふしおにお、インフラエンジニアの早期帰宅支援アイテム「i○ドライブⅡ」を発表</title>
<link>http://d.ballade.jp/blog/2012/04/i-4449.html</link>
<description>早期帰宅ソリューションを提供する ふしおにお は、インフラエンジニア双六をより有...</description>
<content:encoded>&lt;p&gt;早期帰宅ソリューションを提供する ふしおにお は、インフラエンジニア双六をより有利に進めるためのアイテムカード「i○ドライブⅡ」を発表しました。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/04/01/screen_shot_20120401_at_72907.png&quot; class=&quot;mb&quot;&gt;&lt;img width=&quot;540&quot; height=&quot;373&quot; border=&quot;0&quot; alt=&quot;Screen_shot_20120401_at_72907&quot; title=&quot;Screen_shot_20120401_at_72907&quot; src=&quot;http://d.ballade.jp/blog/images/2012/04/01/screen_shot_20120401_at_72907.png&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;i○ドライブは、i○オカエリー プラットフォームをベースとした日々の帰宅を高速化するソリューションで、サーバ擬人化ユーザ会が提供する&lt;a href=&quot;http://sites.google.com/site/sgijinka/sugoroku&quot;&gt;インフラエンジニア双六&lt;/a&gt;の追加アイテムです。双六ゲーム中にてインフラエンジニアが本アイテムを使用すると、業務のボトルネックを解消できます。月初や期末の書類業務にも有効。スムーズな帰宅と団欒を約束し、家族愛を深めます。&lt;/p&gt;

&lt;p&gt;今回発表するi○ドライブⅡでは、サイコロの出目が 2X ではなく +6 されることにより、出目の期待値が 7.0 から 9.5 へと上昇しました。また、出目の期待値が向上しただけでなく、双六プレイヤー側のプリンターを有効利用することによりアイテムカードのコスト削減を実現。同等性能のアイテム群では突出した、優れたコストパフォーマンスを実現しました。&lt;/p&gt;

&lt;p&gt;厚めの光沢紙に印刷することで、より高級感溢れるアイテムカードとしての利用も可能です。&lt;/p&gt;

&lt;p&gt;製品マネージャの ふしおにお ジョー・タロウは、「i○ドライブⅡはインフラエンジニアの生活スタイルを変える最高のアイテムであることを確信しています。日本は世界でも核家族化が極度に進行しつつある地域です。日本のインフラエンジニアの皆様には、このデバイスを手に入れて業務に打ち勝ち、夜の町に繰り出して素敵なパートナーと巡り会っていただきたい。シュワッチ！」とコメントしています。&lt;/p&gt;

&lt;p&gt;なお、製品の出荷時期は8月中旬(夏コミと同時期)の見込みです。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: #FF0033;&quot;&gt;(2012年4月2日追記) 私がブースの人としてコミケデビューできる日がきたら頒布したいと思います ﾟ+.(･ω･)ﾟ+.ﾟ&lt;/span&gt;&lt;/p&gt;</content:encoded>



<dc:creator>hasegaw</dc:creator>
<dc:date>2012-04-01T07:58:13+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/ethernet_openin.html">
<title>OpenIndiana でイーサネットデバイスのリストを表示する</title>
<link>http://d.ballade.jp/blog/2012/03/ethernet_openin.html</link>
<description>zpool を旧ディスクから新ディスクにコピーしたついでに OpenIndian...</description>
<content:encoded>&lt;p&gt;zpool を旧ディスクから新ディスクにコピーしたついでに OpenIndiana へ移行しようとしたファイルサーバ、イーサネットのデバイス名が ifconfig -a で表示されてこないのでしばらく放置してあったのをやっとこネットワークに繋ぎました。&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;# dladm show-phys&lt;br /&gt;LINK&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;MEDIA&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; STATE&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SPEED&amp;nbsp; DUPLEX&amp;nbsp; &amp;nbsp; DEVICE&lt;br /&gt;e1000g0&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Ethernet&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; up&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;1000&amp;nbsp; &amp;nbsp;full&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;e1000g0&lt;br /&gt;e1000g1&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Ethernet&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; unknown&amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;half&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;e1000g1&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;まさか Intel の NIC でドライバが足りてないなんてことはないよなぁとか思ったりデバイス名なんだろうとか思っていたけど dladm show-phys で出てくるんですね。ってことで /etc/hostname.e1000g0 を作ったりとか色々して作業完了。&lt;/p&gt;

&lt;p&gt;リゾルバ設定で /etc/nsswitch.conf のフルパスを思い出すのにちょっと時間かかった。もう歳ですね……。&lt;/p&gt;</content:encoded>


<dc:subject>Solaris</dc:subject>
<dc:subject>運用ノウハウ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-12T00:16:30+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/usbflash_refoma.html">
<title>大量のUSBフラッシュメモリを再フォーマットする</title>
<link>http://d.ballade.jp/blog/2012/03/usbflash_refoma.html</link>
<description>MacOS X上で100個オーバーなUSBメモリの内容をガンガン消したかったので...</description>
<content:encoded>&lt;p&gt;MacOS X上で100個オーバーなUSBメモリの内容をガンガン消したかったのでスクリプトを書きました。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/03/10/534542952.jpg&quot; class=&quot;mb&quot;&gt;&lt;img width=&quot;540&quot; height=&quot;404&quot; border=&quot;0&quot; alt=&quot;534542952&quot; title=&quot;534542952&quot; src=&quot;http://d.ballade.jp/blog/images/2012/03/10/534542952.jpg&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;以前に消去前の USB メモリ（恐らくイメージを事前作成し展開）のデータを dd で読み取って split して md5 で一通りチェックしたら最初の 30MB 分ぐらいにデータが入っていることがわかったので、まず dd でゼロクリアします。その後 MacOS X 上で FAT16 のファイルシステムを作成し、終わったらイジェクトします。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;usbdisk_format.sh&lt;/strong&gt;&lt;br /&gt;#!/bin/sh&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;DISK=$1&lt;br /&gt;if [ &amp;quot;x$DISK&amp;quot; == &amp;quot;x&amp;quot; ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo Usage: $0 /dev/disk1&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; exit 1;&lt;br /&gt;fi&lt;/p&gt;diskutil unmountDisk $DISK 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo $DISK: Unmount failure.&lt;br /&gt;fi
&lt;p&gt;mount | grep -q &amp;quot;$DISK&amp;quot;&lt;br /&gt;if [ $? -eq 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo $DISK: Still mounting. dont format this disk.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; exit 0&lt;br /&gt;fi
&lt;/p&gt;

&lt;p&gt;sudo dd if=/dev/zero of=$DISK bs=1m count=30 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo $DISK: dd failure.&lt;br /&gt;fi
&lt;/p&gt;

&lt;p&gt;diskutil partitionDisk $DISK&amp;nbsp; MBR &#39;MS-DOS FAT16&#39; FUSION-IO 100% 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo $DISK: format failure.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; exit 1&lt;br /&gt;fi
&lt;/p&gt;

&lt;p&gt;diskutil unmountDisk $DISK 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo $DISK: Unmount failure.&lt;br /&gt;fi
&lt;/p&gt;

&lt;p&gt;exit 0&lt;/p&gt;&lt;/pre&gt;

&lt;p&gt;
このスクリプトは引数して /dev/diskX といったデバイス名をとりますが、毎回これを指定するのは面倒なので、 USBメモリを見つけて上記スクリプトを叩くスクリプトを作りました。&lt;br /&gt;このスクリプトは /dev/disk* ファイルを見つけて、そのデバイスが目的のブロックデバイスであるか、ブロックデバイスの容量やデバイス名などをベースに判断し、条件にあうデバイスは上記のスクリプトを並列実行し初期化します。&lt;/p&gt;

&lt;p&gt;usb_batch.sh&lt;/p&gt;

&lt;pre&gt;&lt;p&gt;&lt;strong&gt;#!/bin/sh&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;test_fusion_usb() {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; DISK=$1&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; diskutil info $DISK | grep -q &#39;USB DISK Media&#39; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; echo SKIP_1&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; return 1;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; fi&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; diskutil info $DISK | grep -q &#39;1.0 GB (1038090240 Bytes)&#39; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if [ $? -ne 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; echo SKIP_2&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; return 1;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; fi
&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; # echo $DISK is USB&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}
&lt;/p&gt;

&lt;p&gt;DISKS=`ls -1 /dev/disk[0-9] /dev/dsk[0-9][0-9]`
&lt;/p&gt;

&lt;p&gt;for d in $DISKS; do&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; test_fusion_usb $d&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if [ $? -eq 0 ]; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; echo Clearing $d&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; sh usbdisk_format.sh $d &amp;amp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; fi&lt;br /&gt;done&lt;/p&gt;&lt;/pre&gt;
&lt;p&gt;あとは USB メモリを MacBook Air に刺しまくってスクリプトを実行するだけ・・・・！！&lt;/p&gt;
&lt;p&gt;・&lt;br /&gt;・&lt;br /&gt;・&lt;/p&gt;

&lt;p&gt;MacBook Air が落ちました。バスパワーが足りなくて、安定して並列初期化できるのは 4 枚ぐらいまでのようです。また一番大変なのは USB メモリを包装するビニール袋との戦いでした。&lt;/p&gt;</content:encoded>


<dc:subject>Mac</dc:subject>
<dc:subject>運用ノウハウ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-10T14:46:31+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/pci-x_to_pci.html">
<title>システムボードと干渉するPCI-Xカードを加工する</title>
<link>http://d.ballade.jp/blog/2012/03/pci-x_to_pci.html</link>
<description>搭載先マシンのシステムボード上にあるヒートシンクなどと干渉する PCI-X カー...</description>
<content:encoded>&lt;p&gt;搭載先マシンのシステムボード上にあるヒートシンクなどと干渉する PCI-X カードの一部端子を切り落としました。&lt;br /&gt;PCI-X は PCI の上位互換なので、パフォーマンスの低下を許容できれば PCI スロットでも動作します。ただし場合によっては PCI-X の追加分の端子部分が他のコンポーネントと衝突することがあります。追加分の端子は接続されていなくても PCI 相当でリンクできるので、切り落としてしまうという方法です。たぶんよくやられている事でしょう。。。。&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;mb&quot; href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/03/05/img_3008s.jpg&quot;&gt;&lt;img height=&quot;405&quot; border=&quot;0&quot; width=&quot;540&quot; src=&quot;http://d.ballade.jp/blog/images/2012/03/05/img_3008s.jpg&quot; title=&quot;Img_3008s&quot; alt=&quot;Img_3008s&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;奥が加工前、手前が加工後のカードです。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;使用した道具&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/03/05/img_3011s.jpg&quot; class=&quot;mb&quot;&gt;&lt;img height=&quot;405&quot; border=&quot;0&quot; width=&quot;540&quot; alt=&quot;Img_3011s&quot; title=&quot;Img_3011s&quot; src=&quot;http://d.ballade.jp/blog/images/2012/03/05/img_3011s.jpg&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;ホームセンターで下記３点を購入してきました。上から順番に&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;1. プラスチックカッター &lt;a href=&quot;http://www.amazon.co.jp/dp/B002RV9LGE/wyrm-22/&quot;&gt;OLFA PC-L&lt;/a&gt;&lt;br /&gt;2. 分厚い素材に対応できるカッターナイフ。&lt;a href=&quot;http://www.amazon.co.jp/dp/B001V7E1WY/wyrm-22/&quot;&gt;ムラテック H-13&lt;/a&gt;&lt;br /&gt;3. 適当にヤスリ&lt;/p&gt;

&lt;p&gt;です。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;加工順序&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;mb&quot; href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/03/05/img_3010s.jpg&quot;&gt;&lt;img height=&quot;405&quot; border=&quot;0&quot; width=&quot;540&quot; src=&quot;http://d.ballade.jp/blog/images/2012/03/05/img_3010s.jpg&quot; title=&quot;Img_3010s&quot; alt=&quot;Img_3010s&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;PCI-X カードは大抵複層基板なので、無理に切り取り部分をへし折ろうとするとカードの中身を痛めてしまうため、できるだけ力を加えないよう注意しながら作業します。&lt;/p&gt;

&lt;p&gt;工程１&lt;br /&gt;プラスチックカッター（１）でまず端子のつけねに切れ込みを入れます。このときカッターは右から左へ動かすイメージでとりあえず跡をつけることを目標にします。&lt;/p&gt;

&lt;p&gt;工程２&lt;br /&gt;十分に跡がついてきたら、カッターナイフ（２）で端子の付け根にできた溝を深くしておきます。場合によってはこの工程は不要かもしれません。&lt;/p&gt;

&lt;p&gt;工程３&lt;br /&gt;続いてプラスチックカッター（１）でこの溝を広げていきます。プラスチックカッター（１）を左から右へ進めると一気に基板が削れ、溝が深くなっていきます。&lt;/p&gt;

&lt;p&gt;工程４&lt;br /&gt;上記を表面、裏面から済ませます。&lt;/p&gt;

&lt;p&gt;工程５&lt;br /&gt;カッターナイフ（２）で溝の中を切ります。表裏から削られた端子部分は簡単に切り落とせるはずです。 &lt;/p&gt;

&lt;p&gt;工程６&lt;br /&gt;これまでの工程でカードにはたくさんのバリが発生しています。この部分をヤスリでフィニッシュします。端子部分が残らないぐらいまでヤスリで削ってしまったほうがよいかもしれません。&lt;br /&gt;なお、このエントリの最初に掲載されている写真の「加工後のカード」は、そのままでは認識されず、ヤスリで端子部分をもっと綺麗に削り落とすことで認識されるようになりました。&lt;/p&gt;

&lt;p&gt;工程７&lt;br /&gt;削りかすを除去します。削りかすには絶縁物質のほかに導通する物質もあるので、ちゃんと取り除かないとショートするかもしれません。うまい方法を思いつかなかったので掃除機で軽くカスを吸い取る程度にして、かすがカード上に残っていないか肉眼で確認しました。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;加工完了！&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;[root@hoge ~]# lspci | grep -i qlogic&lt;br /&gt;0e:00.0 Fibre Channel: QLogic Corp. ISP2312-based 2Gb Fibre Channel to PCI-X HBA (rev 02)&lt;br /&gt;0e:01.0 Fibre Channel: QLogic Corp. ISP2312-based 2Gb Fibre Channel to PCI-X HBA (rev 02)&lt;/p&gt;</content:encoded>


<dc:subject>Hardware</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-05T00:46:43+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/iscsi-scst.html">
<title>iSCSI-SCST を試してみる</title>
<link>http://d.ballade.jp/blog/2012/03/iscsi-scst.html</link>
<description>SCST インストールメモ on CentOS 5.7 の続き。FCのケーブルを...</description>
<content:encoded>&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/blog/2012/03/scst-on-centos5.html&quot;&gt;SCST インストールメモ on CentOS 5.7&lt;/a&gt; の続き。FCのケーブルを準備するまで我慢ができなかったのでとりあえず iSCSI でエクスポートしてみた。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;iscsi-scst カーネルモジュールの作成&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; 971&amp;nbsp; cd work/scst/trunk/&lt;br /&gt;&amp;nbsp; 972&amp;nbsp; cd iscsi-scst/&lt;br /&gt;&amp;nbsp; 976&amp;nbsp; ls -l&lt;br /&gt;&amp;nbsp; 977&amp;nbsp; less README&lt;br /&gt;&amp;nbsp; 978&amp;nbsp; make all&lt;br /&gt;&amp;nbsp; 979&amp;nbsp; make install&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;iscsi-scstd.conf を作成&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;[root@localhost trunk]# cat /etc/iscsi-scstd.conf &lt;br /&gt;
Target iqn.1994-05.com.redhat:24d563eb3c6:storage&lt;/p&gt;

&lt;p&gt;指定した IQN は、 /etc/iscsi/initiatorname に指定されていたものをそのまま借りました:p&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;カーネルモジュールのロード&lt;/span&gt;&lt;br /&gt;
 &lt;/p&gt;

&lt;p&gt;1027&amp;nbsp; modprobe scst&lt;br /&gt;
 1028&amp;nbsp; modprobe iscsi-scst&lt;br /&gt;
 1029&amp;nbsp; modprobe scst_disk&lt;br /&gt;
 1030&amp;nbsp; modprobe scst_vdisk&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;イメージファイルをiSCSIエクスポート&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;&amp;nbsp; 957&amp;nbsp; scstadmin -open_dev vdisk1 -handler vdisk_fileio -attributes filename=/vdisk1.dsk&lt;br /&gt;
 1077&amp;nbsp; scstadmin -add_target iqn.1994-05.com.redhat:24d563eb3c6:storage -driver iscsi&lt;br /&gt;
 1081&amp;nbsp; scstadmin -add_group hosts1 -driver iscsi -target iqn.1994-05.com.redhat:24d563eb3c6:storage&lt;br /&gt;
 1113&amp;nbsp; iscsi-scstd&amp;nbsp; &amp;amp;&lt;br /&gt;
 1130&amp;nbsp; scstadmin -add_lun 0 -driver iscsi -target iqn.1994-05.com.redhat:24d563eb3c6:storage -device vdisk1&lt;br /&gt;
 1131&amp;nbsp; scstadmin -enable_target iqn.1994-05.com.redhat:24d563eb3c6:storage -driver iscsi&lt;br /&gt;
 1132&amp;nbsp; scstadmin -set_drv_attr iscsi -attributes enabled=1&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;イニシエータを準備し接続&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;今回は Windows 7 Ultimate の iSCSI イニシエータを有効化して接続しました。&lt;br /&gt;コントロールパネルから「iSCSIイニシエーターのプロパティ」を開き、ターゲットとして SCST が動いている IP アドレスを指定して「クイック検索」ボタンをクリックします。&lt;/p&gt;

&lt;p&gt;ターゲットが問題なく動作していれば、「検出されたターゲット」欄にターゲット側 IQN が表示されますので、目的の IQN を選択して「接続」をクリックします。無事に接続されれば、ターゲット側の領域が論理ディスクデバイスとして認識されているはずです。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;構成情報を /etc/scst.conf に出力&lt;/span&gt;&lt;br /&gt; 
&lt;/p&gt;

&lt;p&gt;1133&amp;nbsp; scstadmin -write_config /etc/scst.conf&lt;br /&gt; 
1134&amp;nbsp; cat /etc/scst.conf&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;I/O試験&lt;br /&gt;
&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;1137&amp;nbsp; iostat -mtx /dev/sda 1 | grep sda&lt;br /&gt;この状態でイニシエータ側から負荷をかければ Linux 側で I/O の発生を確認できる&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;所感&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;SCST のコンパイル時点から感じていたことですが。。。。 trunk のコードベースで試したからか、既存のドキュメント類からオペレーションが変わっていて、読み替えるのがちょっと大変でした。。。。正直まだ成熟したとはいいづらいね。どのタイミングのコードを使うかなど決断して闘う必要がありそう。&lt;/p&gt;</content:encoded>


<dc:subject>Linux</dc:subject>
<dc:subject>Storage</dc:subject>
<dc:subject>構築ノウハウ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-04T03:59:07+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/scst-on-centos5.html">
<title>SCSTインストールメモ on CentOS5.7</title>
<link>http://d.ballade.jp/blog/2012/03/scst-on-centos5.html</link>
<description>憶えがき。 参考にしたサイト SCSTのインストール http://homepa...</description>
<content:encoded>&lt;p&gt;憶えがき。&lt;/p&gt;

&lt;p&gt;参考にしたサイト &lt;/p&gt;

&lt;p&gt;SCSTのインストール&lt;br /&gt;&lt;a href=&quot;http://homepage1.nifty.com/~ayumi/article0001.html&quot;&gt;http://homepage1.nifty.com/~ayumi/article0001.html&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; 855&amp;nbsp; cd&lt;br /&gt;&amp;nbsp; 856&amp;nbsp; mkdir work&lt;br /&gt;&amp;nbsp; 857&amp;nbsp; cd work&lt;br /&gt;&amp;nbsp; 858&amp;nbsp; svn co https://scst.svn.sourceforge.net/svnroot/scst&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;カーネル 2.6.28 のビルド&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; 808&amp;nbsp; tar xvzf linux-2.6.28.3.tar.gz &lt;br /&gt;
&amp;nbsp; 814&amp;nbsp; ln -s linux-2.6.28.3 linux-2.6.28&lt;br /&gt;
&amp;nbsp; 815&amp;nbsp; patch -p0 &amp;lt; work/scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.28.patch &lt;br /&gt;
&amp;nbsp; 816&amp;nbsp; cd linux-2.6.28/drivers/&lt;br /&gt;
&amp;nbsp; 819&amp;nbsp; cd scsi&lt;br /&gt;
&amp;nbsp; 821&amp;nbsp; mv qla2xxx/ qla2xxx_orig&lt;br /&gt;
&amp;nbsp; 822&amp;nbsp; ln -s ~/work/scst/trunk/qla2x00t/ qla2xxx&lt;br /&gt;
&amp;nbsp; 823&amp;nbsp; cd ..&lt;br /&gt;
&amp;nbsp; 824&amp;nbsp; cd ..&lt;br /&gt;
&amp;nbsp; 825&amp;nbsp; pwd&lt;/p&gt;

&lt;p&gt;
&amp;nbsp; 826&amp;nbsp; cp /boot/config-2.6.18-274.el5 .config&lt;br /&gt;
&amp;nbsp; 827&amp;nbsp; make menuconfig&lt;br /&gt;
&amp;nbsp; 828&amp;nbsp; vim .config&lt;br /&gt;
&amp;nbsp; &amp;nbsp; カーネルコンフィグレーションオプションの指定&lt;br /&gt;
&amp;nbsp; 829&amp;nbsp; vi Makefile &lt;br /&gt;
&amp;nbsp; &amp;nbsp; EXTRAVERSIONの変更&lt;br /&gt;
&amp;nbsp; 830&amp;nbsp; make -j8 bzImage; make -j8 modules &amp;amp;&amp;amp; make -j8 modules_install&lt;br /&gt;
&amp;nbsp; 831&amp;nbsp; make install&lt;br /&gt;
&amp;nbsp; 832&amp;nbsp; cd /boot&lt;br /&gt;
&amp;nbsp; 833&amp;nbsp; ls -l&lt;br /&gt;
&amp;nbsp; 834&amp;nbsp; zcat initrd-2.6.18-274.el5.img | cpio -it&lt;br /&gt;
&amp;nbsp; 835&amp;nbsp; zcat initrd-2.6.28.3-scst.img | cpio -it&lt;br /&gt;
&amp;nbsp; 836&amp;nbsp; vi /boot/grub/menu.lst &lt;br /&gt;
&amp;nbsp; &amp;nbsp; 自動起動するカーネルの指定&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;SCST関連のビルド&lt;br /&gt;
&lt;/span&gt;&lt;strong&gt;1. scst&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp; 941&amp;nbsp; cd work/scst/trunk/scst&lt;br /&gt;
&amp;nbsp; 943&amp;nbsp; cd src&lt;br /&gt;
&amp;nbsp; 944&amp;nbsp; make&lt;br /&gt;
&amp;nbsp; 945&amp;nbsp; vim +1654 scst_sysfs.c &lt;br /&gt;
&amp;nbsp; &amp;nbsp; バージョン判定でコケているので修正&lt;br /&gt;
&amp;nbsp; 946&amp;nbsp; make&lt;br /&gt;
&amp;nbsp; 947&amp;nbsp; make all&lt;br /&gt;
&amp;nbsp; 948&amp;nbsp; make install&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. qla2x00t&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp; 951&amp;nbsp; cd ..&lt;br /&gt;
&amp;nbsp; 952&amp;nbsp; cd qla2x00t/&lt;br /&gt;
&amp;nbsp; 961&amp;nbsp; make -C /root/linux-2.6.28/ M=$PWD&lt;br /&gt;
&amp;nbsp; 962&amp;nbsp; make -C /root/linux-2.6.28/ M=$PWD modules_install&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. qla2x00-target&lt;br /&gt;
&lt;/strong&gt;&amp;nbsp; 963&amp;nbsp; cd ..&lt;br /&gt;
&amp;nbsp; 964&amp;nbsp; cd qla2x00t/qla2x00-target/&lt;br /&gt;
&amp;nbsp; 967&amp;nbsp; make&lt;br /&gt;
&amp;nbsp; 968&amp;nbsp; make install&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. scstadmin&lt;br /&gt;&lt;/strong&gt;&amp;nbsp; 972&amp;nbsp; cd scstadmin/&lt;br /&gt;&amp;nbsp; 973&amp;nbsp; make &lt;br /&gt;&amp;nbsp; 974&amp;nbsp; make install&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;&amp;nbsp; 975&amp;nbsp; cd /lib/modules/2.6.28.3-scst/extra/&lt;br /&gt;
&amp;nbsp; 976&amp;nbsp; ls -l&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;
カーネルモジュールのロード&lt;br /&gt;
&lt;/strong&gt; 1002&amp;nbsp; modprobe scst&lt;br /&gt;
 1007&amp;nbsp; modprobe qla2x00tgt&lt;br /&gt;
 1010&amp;nbsp; modprobe scst_disk&lt;br /&gt;
 1011&amp;nbsp; modprobe scst_vdisk&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ターゲットの操作&lt;/strong&gt;&lt;br /&gt;
 1012&amp;nbsp; scstadmin&lt;br /&gt;
 1014&amp;nbsp; dd if=/dev/zero of=/vdisk1.dsk bs=1024k count=64&lt;br /&gt;
 1018&amp;nbsp; scstadmin --help&lt;br /&gt;
 1019&amp;nbsp; scstadmin -open_dev vdisk1 -handler vdisk_fileio -attributes filename=/vdisk1.dsk&lt;br /&gt;
 1021&amp;nbsp; scstadmin -set_dev_attr vdisk1 -attributes t10_dev_id=0x1234&lt;br /&gt;
 1022&amp;nbsp; dmesg&lt;br /&gt; 1025&amp;nbsp; scstadmin -add_group HOST01 -driver qla2x00t -target&amp;nbsp; 21:00:00:e0:8b:82:87:08&lt;br /&gt;
 1026&amp;nbsp; scstadmin -add_lun 1 -driver qla2x00t -target&amp;nbsp; 21:00:00:e0:8b:82:87:08 -group HOST01 -device vdisk1&lt;/p&gt;

&lt;p&gt;
この先は FC ケーブルが必要と思われる。&lt;/p&gt;
&lt;br /&gt;
</content:encoded>


<dc:subject>Linux</dc:subject>
<dc:subject>Storage</dc:subject>
<dc:subject>構築ノウハウ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-04T02:00:14+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/03/ml110-g7-6ef6.html">
<title>ML110 G7を買ってみた</title>
<link>http://d.ballade.jp/blog/2012/03/ml110-g7-6ef6.html</link>
<description>ML115 G1 クラスタの処分も視野に入れて NTT-X で特価になってるのを...</description>
<content:encoded>&lt;p&gt;ML115 G1 クラスタの処分も視野に入れて NTT-X で特価になってるのを一台ポチってみました。&lt;/p&gt;

&lt;p&gt;他の方がレビューされているので基本はそれを見ればいいと思いますがヘタレとして自分が気づいた点のみまとめます。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;システムボード仕様は 3xx シリーズ並？&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;POST画面のほかBIOSコンフィグレーションも 3xx シリーズと同じように見えます。 3xx シリーズをいじりたいけど手が届かない人には入門機としてありじゃないでしょうか。&lt;br /&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;&lt;br /&gt;スクリューレスで快適メンテ&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;度々構成を変えるような使い方には無手居るケースだと思います。ただ PCIe スロットまわり、とくに一番下のスロットは抜き差し大変かもしれない。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;電源は 350W&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;350W の電源がのっています。あと PCIe 用の 6 ピン電源コネクタはないので SLI とか CorssFire とか想定して買うとちょっとガッカリします。まあそこまでやるなら電源ごと交換するのでしょうが。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;PCI スロットなし&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;新品で数千円レベルで入手できるカードは刺さらないということです。イーサネットは標準で２系統ありますが、スループット度外視でお手軽に追加したいような時には注意。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;PCIe バスのレーン数が....&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;しっかり確認していませんが電気的に PCIe x16, PCIe x8, PCIe x8, PCIe x4 なのですが、もしかするとその上流で帯域が足りないブリッジチップがあるかもしれない感じです。 PCIe x16, PCIe x8, PCIe x4, PCIe x4 ぐらいのつもりで買っていたほうがいいよ。なお、いわずもがな Gen2 ですね。&lt;/p&gt;

&lt;p&gt;下の方のスロットほど帯域幅は大きくなっているので、高負荷なデバイスはそちらに優先的に挿しましょう。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;まとめ&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;ほとんど PCIe といえばビデオカードぐらいしか想定していないパーソナルユースで売ってる程度のシステムボードと比べれば、ごついカードを挿しても安定して動きました。ちょっとした検証やオモチャにするには十分なスペックですが、 CPU やメモリや電源を変えても PCIe バス幅だけはどうにもならないので、本気ならサーバ用システムボードもしくは相当品を買いましょう。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;補足&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;製品スペックをよくみたら PCIe のスロットは x16, x4 ,x4, x1 と書いてあった。納得。&lt;/p&gt;</content:encoded>


<dc:subject>Hardware</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-03-03T13:20:40+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/02/doesstripingboo.html">
<title>フラッシュメモリのストライピングは善か悪か？</title>
<link>http://d.ballade.jp/blog/2012/02/doesstripingboo.html</link>
<description>SSDなど、フラッシュメモリを用いたストレージデバイスは非常に高速です。このよう...</description>
<content:encoded>&lt;p&gt;SSDなど、フラッシュメモリを用いたストレージデバイスは非常に高速です。このようなデバイスをストライピングするとさらに上を目指せる、、、ように感じられますが、実はストライピングで常にアプリケーションの性能が上がるわけではありません。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;デバイス単体、２台ストライプのレイテンシ特性&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;以下のグラフは、フラッシュメモリデバイスへのランダム4KB書き込み時のレイテンシ分布（ドライブ単体および２台をストライプ）を示したものです。&lt;/p&gt;

&lt;p&gt;グラフ１&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;mb&quot; href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/20/screen_shot_20120220_at_15557.png&quot;&gt;&lt;img height=&quot;215&quot; border=&quot;0&quot; width=&quot;350&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/20/screen_shot_20120220_at_15557.png&quot; title=&quot;Screen_shot_20120220_at_15557&quot; alt=&quot;Screen_shot_20120220_at_15557&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;br /&gt;

&lt;p&gt;左側がいちばんレイテンシが低い状態、右にいけばいくほどレンテンシが増えていった状態を示していおり、線が左に寄っているのは、すなわち高速に応答していることを示しています。&lt;/p&gt;

&lt;p&gt;デバイス単体の場合（赤）、レイテンシ分布は非常に高速な状態（１）に偏っており良好な状態です。ストライプした場合（青）、先と比べると（２）の値が高くなっていて、つまりレイテンシが大きくなっていると言うことになります。この状態であれば間違いなく赤、つまりデバイス単体の性能のほうが応答が早いことになります。&lt;/p&gt;

&lt;p&gt;この結果ですが、すこし条件を変えて測定してみると —— 以下のようになります。&lt;/p&gt;

&lt;p&gt;グラフ２&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;mb&quot; href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/20/screen_shot_20120220_at_15607.png&quot;&gt;&lt;img height=&quot;210&quot; border=&quot;0&quot; width=&quot;350&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/20/screen_shot_20120220_at_15607.png&quot; title=&quot;Screen_shot_20120220_at_15607&quot; alt=&quot;Screen_shot_20120220_at_15607&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;このグラフでは、ストライプ構成（青）のほうがデバイス単体（赤）よりよいレイテンシ性能を示しています。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;条件の違いは？&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;この先の２つのグラフ、一体何を変えたと思いますか？　　答えはI/Oスレッド数です。&lt;/p&gt;

&lt;p&gt;グラフ１ …… 1スレッド&lt;br /&gt;グラフ２ …… 64スレッド&lt;/p&gt;

&lt;p&gt;つまりグラフ１の場合よりグラフ２の場合のほうが大きなワークロードがかかっています。つまりワークロード次第でレイテンシ分布は変化します。&lt;/p&gt;

&lt;p&gt;さて。&lt;br /&gt;デバイス単体で使ったほうがお得でしょうか？&lt;br /&gt;それとも、ストライピングしておいたほうがお得でしょうか？&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;ヒント&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;複数デバイスにストライプすると、各デバイスからの応答を待ち合わせる必要があるため、レイテンシが幾らか悪化する。&lt;/li&gt;

&lt;li&gt;転送するデータのサイズに比例して、フラッシュメモリのレイテンシは変化する。&lt;/li&gt;&lt;/ul&gt;</content:encoded>


<dc:subject>Hardware</dc:subject>
<dc:subject>フラッシュメモリ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-02-20T02:24:29+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/02/post-1091.html">
<title>フラッシュメモリデバイスのレイテンシ差がアプリケーションに与える影響</title>
<link>http://d.ballade.jp/blog/2012/02/post-1091.html</link>
<description>たまにはブログを書こうかと。今日はこのブログではじめてフラッシュメモリの話題を扱...</description>
<content:encoded>&lt;p&gt;たまにはブログを書こうかと。今日はこのブログではじめてフラッシュメモリの話題を扱うことにしましょう。&lt;/p&gt;

&lt;p&gt;個人的に大好きなプレゼンテーションがあります。タイトルは &lt;a href=&quot;http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2011/20110810_Keynote5_Nesheim.pdf&quot;&gt;Mythbusting Flash Performance&lt;/a&gt; 、元Sun（現Oracle）の Solaris プラットフォーム エンジニアリングのバイスプレジデント Bill Neshim 氏が Flash Memory Summit 2011 のキーノートとして講演した際のスライドのようです。&lt;/p&gt;

&lt;p&gt;このプレゼンテーションには衝撃的なグラフが入っていて、これを見たとき衝撃を受けました。それ以来このプレゼンテーションはお気に入りとして常にマシンの中に入っています:)&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;予期可能なレイテンシ性能のフラッシュメモリデバイス、そうでないフラッシュメモリデバイス&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;フラッシュメモリデバイスは、使用されているNANDフラッシュメモリのパッケージごとの性能もありますが、それを管理・制御するコントローラにより、最終的なデバイスの仕上がりが大きく変わることが知られています。&lt;/p&gt;

&lt;p&gt;フラッシュメモリデバイスの性能は IOPS (単位時間あたりのIO回数)と帯域幅で語られがちですが、さらにレイテンシという軸で探ってみると、デバイスの本当の性能がよく見えてきます。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;IOPSの比較&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;以下は、先のプレゼンテーションからの引用です。具体的なデバイスの機種名は明かされていませんが、2つのフラッシュメモリデバイスのIOPS性能を比較しています。&lt;/p&gt;

&lt;p&gt;Device A&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/19/screen_shot_20120219_at_13550_2.png&quot; class=&quot;mb&quot;&gt;&lt;img height=&quot;337&quot; border=&quot;0&quot; width=&quot;540&quot; alt=&quot;Screen_shot_20120219_at_13550_2&quot; title=&quot;Screen_shot_20120219_at_13550_2&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/19/screen_shot_20120219_at_13550_2.png&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Device B&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/19/screen_shot_20120219_at_13555_2.png&quot; class=&quot;mb&quot;&gt;&lt;img height=&quot;337&quot; border=&quot;0&quot; width=&quot;540&quot; alt=&quot;Screen_shot_20120219_at_13555_2&quot; title=&quot;Screen_shot_20120219_at_13555_2&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/19/screen_shot_20120219_at_13555_2.png&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;このふたつの違いは明白です。前者は書き込みスレッド数により IOPS 性能が決まってくる、つまり性能が予期できることがわかります。後者は、もちろんスレッド数が少ない方がIOPS数が多いもののおよそランダムな状態です。これが、性能が予期できないフラッシュメモリデバイスの特性です。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;レイテンシの比較&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;続いて、次のスライドは2つのデバイスのレイテンシ性能を比較しています。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/19/screen_shot_20120219_at_13611_2.png&quot; class=&quot;mb&quot;&gt;&lt;img height=&quot;337&quot; border=&quot;0&quot; width=&quot;540&quot; alt=&quot;Screen_shot_20120219_at_13611_2&quot; title=&quot;Screen_shot_20120219_at_13611_2&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/19/screen_shot_20120219_at_13611_2.png&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;縦軸は頻度、横軸はIO時に発生したレイテンシの大きさです。つまりグラフが左側に寄っていればそれだけ応答が速いデバイスである、と見ることができます。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;このグラフで登場している2つのデバイスは、実際に Oracle の本番環境で利用されており、非常にレイテンシ特性が似ています。しかし、 OLTP ワークロードをかけた際のグラフを見ると、 Dev1 はレイテンシが大きくなる頻度が Dev2 より大きい —— つまり、実際のアプリケーション負荷をかけるとレイテンシがより悪化するデバイスである、ということです。&lt;/p&gt;

&lt;p&gt;これについて Bill 氏は「I/Oのうち最も遅い 1% がデバイスの性能を決める。しかし、多くのデバイスベンダはこの部分の軽く見がちだ」と述べています。&lt;/p&gt;

&lt;p&gt;どうして氏が 1% に拘るのか……それは次のスライドに答えがあります。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://d.ballade.jp/.shared/image.html?/photos/uncategorized/2012/02/19/screen_shot_20120219_at_13613_2.png&quot; class=&quot;mb&quot;&gt;&lt;img height=&quot;337&quot; border=&quot;0&quot; width=&quot;540&quot; alt=&quot;Screen_shot_20120219_at_13613_2&quot; title=&quot;Screen_shot_20120219_at_13613_2&quot; src=&quot;http://d.ballade.jp/blog/images/2012/02/19/screen_shot_20120219_at_13613_2.png&quot; style=&quot;display: block; margin: auto;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;このスライドは、さきほどの「最も遅い1%」が データベースの OLTP に性能にどのような影響をもたらすかを示しています。縦軸はデバイスのレスポンスタイムタイム、横軸は時間です。このグラフでは、 Dev 2 が非常に安定したレスポンスタイムで応答しているのに対し Dev 1 のレスポンスタイムは明らかにムラがあります。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Dev 2 を使ったデータベースでは一定の間隔で応答してきますが、 Dev 1 は、まるで混雑した道路で渋滞にハマっているかのように動いたり止まったり……を繰り返しているのです。この結果、データベースの実行速度には大きな差が現れるのです。&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 1.2em;&quot;&gt;まとめ&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;フラッシュメモリデバイスの性能は IOPS (単位時間あたりのIO回数)と帯域幅で語られがちです。しかし、それだけでなく、レイテンシが安定しているか、という観点での評価もとても重要です。それも一定時間の平均値ではなく、レスポンスタイムの分布まで含めてはじめて、アプリケーション性能への影響がわかります。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;p.s. @yoshikaw さんにエントリ中のバグをご指摘いただき修正しました。ありがとうございます！&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</content:encoded>


<dc:subject>Hardware</dc:subject>
<dc:subject>フラッシュメモリ</dc:subject>

<dc:creator>hasegaw</dc:creator>
<dc:date>2012-02-19T02:14:53+09:00</dc:date>
</item>
<item rdf:about="http://d.ballade.jp/blog/2012/01/post-c6be.html">
<title>変なファイル名によるイタズラ</title>
<link>http://d.ballade.jp/blog/2012/01/post-c6be.html</link>
<description>へぇぇぇぇ。 [sandbox@proliant2 work]$ touch -...</description>
<content:encoded>&lt;p&gt;へぇぇぇぇ。&lt;/p&gt;
&lt;p&gt;&lt;tt&gt;[sandbox@proliant2 work]$ touch -- &#39;-rf&#39; &#39;~&#39;&lt;br /&gt;[sandbox@proliant2 work]$ strace rm *&lt;br /&gt;execve(&amp;quot;/bin/rm&amp;quot;, [&amp;quot;rm&amp;quot;, &amp;quot;-rf&amp;quot;, &amp;quot;~&amp;quot;], [/* 23 vars */]) = 0&lt;br /&gt;brk(0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; = 0x87c000&lt;br /&gt;mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f840a966000&lt;br /&gt;access(&amp;quot;/etc/ld.so.preload&amp;quot;, R_OK)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= -1 ENOENT (No such file or directory)&lt;br /&gt;open(&amp;quot;/etc/ld.so.cache&amp;quot;, O_RDONLY)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 3&lt;br /&gt;fstat(3, {st_mode=S_IFREG|0644, st_size=94094, ...}) = 0&lt;br /&gt;mmap(NULL, 94094, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f840a94f000&lt;br /&gt;close(3)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;open(&amp;quot;/lib64/libc.so.6&amp;quot;, O_RDONLY)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 3&lt;br /&gt;read(3, &amp;quot;\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0&amp;gt;\0\1\0\0\0\220\357\1n?\0\0\0&amp;quot;..., 832) = 832&lt;br /&gt;fstat(3, {st_mode=S_IFREG|0755, st_size=1995840, ...}) = 0&lt;br /&gt;mmap(0x3f6e000000, 3814616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3f6e000000&lt;br /&gt;mprotect(0x3f6e19a000, 2093056, PROT_NONE) = 0&lt;br /&gt;mmap(0x3f6e399000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x3f6e399000&lt;br /&gt;mmap(0x3f6e39e000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3f6e39e000&lt;br /&gt;close(3)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f840a94e000&lt;br /&gt;mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f840a94c000&lt;br /&gt;arch_prctl(ARCH_SET_FS, 0x7f840a94c720) = 0&lt;br /&gt;mprotect(0x3f6e399000, 16384, PROT_READ) = 0&lt;br /&gt;mprotect(0x3f6de20000, 4096, PROT_READ) = 0&lt;br /&gt;munmap(0x7f840a94f000, 94094)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;brk(0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; = 0x87c000&lt;br /&gt;brk(0x89d000)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= 0x89d000&lt;br /&gt;brk(0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; = 0x89d000&lt;br /&gt;open(&amp;quot;/usr/lib/locale/locale-archive&amp;quot;, O_RDONLY) = 3&lt;br /&gt;fstat(3, {st_mode=S_IFREG|0644, st_size=99154656, ...}) = 0&lt;br /&gt;mmap(NULL, 99154656, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8404abc000&lt;br /&gt;close(3)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0&lt;br /&gt;lstat(&amp;quot;/&amp;quot;, {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0&lt;br /&gt;newfstatat(AT_FDCWD, &amp;quot;~&amp;quot;, {st_mode=S_IFREG|0664, st_size=0, ...}, AT_SYMLINK_NOFOLLOW) = 0&lt;br /&gt;unlinkat(AT_FDCWD, &amp;quot;~&amp;quot;, 0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;close(0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;close(1)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;close(2)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;exit_group(0)&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;= ?&lt;br /&gt;[sandbox@proliant2 work]$&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;シェルによりワイルドカード指定で見つかったファイルの ~ カレントディレクトリパスに置き換えられないため問題ないのね。&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;span style=&quot;font-family: &#39;ＭＳ Ｐゴシック&#39;,&#39;ヒラギノ角ゴ Pro W3&#39;,&#39;Osaka&#39;,&#39;ＭＳ Ｐ明朝&#39;,&#39;ヒラギノ明朝 Pro W3&#39;,&#39;Trebuchet MS&#39;,Trebuchet,verdana,arial,sans-serif;&quot;&gt;しかし意図的にファイルを置いておくことで -i を迂回できるね。怖い……！&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;span style=&quot;font-family: &#39;ＭＳ Ｐゴシック&#39;,&#39;ヒラギノ角ゴ Pro W3&#39;,&#39;Osaka&#39;,&#39;ＭＳ Ｐ明朝&#39;,&#39;ヒラギノ明朝 Pro W3&#39;,&#39;Trebuchet MS&#39;,Trebuchet,verdana,arial,sans-serif;&quot;&gt;※Fedora 14 の環境でためしました。&lt;br /&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;</content:encoded>



<dc:creator>hasegaw</dc:creator>
<dc:date>2012-01-12T22:38:08+09:00</dc:date>
</item>


</rdf:RDF>

