<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「GEOM」タグの記事一覧 - 工夫と趣向と分別と。</title>
	<atom:link href="https://d.akinori.org/tag/geom/feed/" rel="self" type="application/rss+xml" />
	<link>https://d.akinori.org/tag/geom/</link>
	<description>おもしろく生きたいね</description>
	<lastBuildDate>Mon, 14 May 2012 02:43:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>ML110 G6の起動ディスクをSSDに変更</title>
		<link>https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/</link>
					<comments>https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/#respond</comments>
		
		<dc:creator><![CDATA[Akinori]]></dc:creator>
		<pubDate>Fri, 11 May 2012 10:55:23 +0000</pubDate>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[eSATA]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[GEOM]]></category>
		<category><![CDATA[ML110 G6]]></category>
		<category><![CDATA[ZFS]]></category>
		<guid isPermaLink="false">http://d.akinori.org/?p=2889</guid>

					<description><![CDATA[<p>先に起動ディスクをHDDからUSBメモリに変更してからしばらく運用を続けていたところ、深刻な性能問題に直面してHDDに戻したのは先月のことだった。 定常的に書込が発生するディレクトリは当然ながら外出ししており、たまのma… <span class="read-more"><a href="https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/">続きを読む &#187;</a></span></p>
<p>The post <a href="https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/">ML110 G6の起動ディスクをSSDに変更</a> appeared first on <a href="https://d.akinori.org">工夫と趣向と分別と。</a>.</p>
<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-yarpp-template-akinori'>
<!-- YARPP List -->

» 関連記事 «<ul>
<li><a href="https://d.akinori.org/2011/10/27/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%81%ab%e5%a4%89%e6%9b%b4/" rel="bookmark" title="ML110 G6の起動ディスクをUSBメモリに変更">ML110 G6の起動ディスクをUSBメモリに変更</a></li>
<li><a href="https://d.akinori.org/2011/10/27/freebsd-on-ml110-g6%e3%82%92%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0/" rel="bookmark" title="FreeBSD on ML110 G6をちょっとチューニング">FreeBSD on ML110 G6をちょっとチューニング</a></li>
<li><a href="https://d.akinori.org/2010/04/15/wd15ears%e3%81%ae%e6%80%a7%e8%83%bd%e3%82%92%e8%a8%88%e6%b8%ac/" rel="bookmark" title="WD15EARSの性能を計測">WD15EARSの性能を計測</a></li>
</ul>
</div>
]]></description>
										<content:encoded><![CDATA[<p>先に<a title="ML110 G6の起動ディスクをUSBメモリに変更" href="http://d.akinori.org/2011/10/27/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%81%ab%e5%a4%89%e6%9b%b4/">起動ディスクをHDDからUSBメモリに変更</a>してからしばらく運用を続けていたところ、深刻な性能問題に直面してHDDに戻したのは先月のことだった。<br />
定常的に書込が発生するディレクトリは当然ながら外出ししており、たまの<code>make installworld</code>くらいしかろくな書込が発生することはなかったにも関わらず、気が付くと、その<strong><code>make installworld</code>に8時間も掛かる</strong>ようになってしまっていた。<br />
単に、USBメモリ自体がずっと通電しての読み書き（書くのはまれだが）に耐えうる設計になっていないからなのか、特定部分へのアクセスが重なった結果へたってしまったのかはよくわからないが、ともかく常時稼働は荷が重かったということは言えるだろう。</p>
<p>HDDに戻したところたちまち安定して快適にはなったが、ただの撤退ではおもしろくないので、安くなってきたSSDを導入することにした。ちょうど、<a href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=2698830&#038;pid=880955024&#038;vc_url=http%3A%2F%2Fshop.tsukumo.co.jp%2Fgoods%2F0649528752178%2F" target="_blank" ><img decoding="async" src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=2698830&#038;pid=880955024" height="1px" width="1px" border="0"/>Crucial m4 64GBが7,000円を切っている</a>ので、これを採用した。</p>
<p>さて、FreeBSDに限らないが、SSDを使う上で当然気になるのがTRIM命令のサポート有無である。FreeBSD 9.0や8.3ではadaドライバ、GEOM、UFS2がこれをサポートしており、シンプルな非冗長構成ではすんなりこれを享受できる。だが、ZFSは未サポート、さらにGEOMもmirrorやjournalを通すとUFS2がTRIM命令のサポート有無を検知できず無効になってしまうようだ。<br />
何とも残念な現状だが、システム（前述のように<code>/usr/local</code>, <code>/var</code>等は含まない）は書込がほとんど発生せず、また同居予定のZFS ZIL, L2ARCパーティションは多くの書込があるものの、冗長化した上でたまに片肺にしてTRIMすれば十分だと考えた。そして<code>/</code>のファイルシステムは、ZFSとUFS+GEOM mirrorを比較検討し、読み込み主体であることと、先にTRIMがサポートされそうなことから後者にした。信頼性を重視し、ジャーナリングはGEOM journalではなくSUJを選択。</p>
<p>前置きが長くなったが、購入したSSD二台にシステムを載せ替える手順のメモを開陳。</p><pre class="urvanov-syntax-highlighter-plain-tag"># Suppose the SSD #2 is at /dev/ada2

# TRIM the disk using newfs(8)
newfs -E ada2

# Create a GPT partition table
gpart create -s got ada2

# Put the FreeBSD boot loader in it
#  "-b 34" will suffice but it is always nice to align partitions with 4KB
gpart add -b 40 -s 64k -t freebsd-boot ada2
#  Install the (non-ZFS) boot loader
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada2

# Add a UFS partition for the system root
#  Create a partition for / (20GB)
gpart add -t freebsd-ufs -s 20g ada2
#  Make it GEOM mirrored
gmirror load
gmirror label root ada2p2
#  Make sure GEOM mirror is available on boot
echo 'geom_mirror_load="YES"' >> /boot/loader.conf
#  Create a UFS2 filesystem on it
newfs -j -t /dev/mirror/root

# Copy the system root to /dev/mirror/root using:
# - dump(8) & restore(8) from a snapshot of the current / if it is UFS
# - rsync -aHAX
# or:
# - good old tar|tar

# Add a swap partition (20GB - sufficiently bigger than the amount of RAM on this box)
gpart add -t freebsd-swap -s 20g ada2
#  Make it GEOM mirrored
gmirror label swap ada2p3

# Create a partition for ZIL (8GB - half the amount of the RAM on this box)
gpart add -t freebsd-zfs -l zil1 -s 8g ada2
zpool add tank log /dev/gpt/zil1

# Use the rest of the disk for ZFS L2ARC
gpart add -t freebsd-zfs -l l2arc1 ada2
zpool add tank cache /dev/gpt/l2arc1

# Edit /etc/fstab
/dev/mirror/root /    ufs  rw,noatime 1 1
/dev/mirror/swap none swap sw         0 0

# Edit /boot/loader.conf
vfs.root.mountfrom="ufs:/dev/mirror/root"

#
# Boot from the SSD #2
#

# This may be needed
zpool import -fa

# Suppose the SSD #1 is at /dev/ada2

# TRIM the disk using newfs(8)
newfs -E ada1

# Create a GPT partition table
gpart create -s gpt ada1

# Put the FreeBSD boot loader in it
gpart add -b 40 -s 64k -t freebsd-boot ada1
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1

# Get the system root mirrored
gpart add -t freebsd-ufs -s 20g ada1
gmirror insert root ada1p2

# Get the swap area mirrored
gpart add -t freebsd-swap -s 20g ada1
gmirror insert swap ada1p3

# Get the ZIL area mirrored
gpart add -t freebsd-zfs -l zil0 -s 8g ada1
zpool attach tank /dev/gpt/zil1 /dev/gpt/zil0

# Add a second L2ARC partition (mirroring N/A)
gpart add -t freebsd-zfs -l l2arc0 ada1
zpool add tank cache /dev/gpt/l2arc0</pre><p></p>
<p>こんな感じです。けっこう簡単だよね。<br />
ポイントは、移行後の新システムを作る際、単一パーティションでGEOM mirrorを構成し、そこに<code>/</code>を作って構築すること。GEOM mirrorは、マウントした状態のファイルシステムパーティションをミラー構成にすることはできないようだ。上記のように片肺（というか単肺）のGEOM mirrorボリュームを作ってそこからブートすれば、あとは二肺目をそこにアタッチ（GEOM用語ではinsert）するだけで良い。</p>
<h3 id="appendix1"><a href="#appendix1">おまけ情報1</a></h3>
<p>こうして構築は完了したが、不意のシステムダウンが起きると、リブート後にZFSボリュームが見えない（<code>zpool import</code>しないといけない）問題が発生しており少し困っている。最近VirtualBoxが不安定（4.1.10くらいから？）で、たまにカーネルパニックを起こすので少し深刻だ。<br />
そのときは<code>/var/named/etc/namedb</code>が見えないため<code>/etc/rc.d/named</code>が<code>/etc/namedb</code>を壊してしまうので、シングルユーザモードで</p><pre class="urvanov-syntax-highlighter-plain-tag">ln -sf /var/named/etc/namedb /etc/
zpool import -fa</pre><p>と直してからスタートアップする必要がある。</p>
<h3 id="appendix2"><a href="#appendix2">おまけ情報2</a></h3>
<p>GEOM mirrorは何やら曲者で、まちがえて作ってしまったときなどに、削除しようと<code>gmirror stop <i>name</i></code>としてもGPTラベル名やGPTIDやらのデバイス名で設定が生き残ってしまう。ちゃんと削除するには、</p><pre class="urvanov-syntax-highlighter-plain-tag">sysctl kern.geom.label.gpt.enable=0
sysctl kern.geom.label.gptid.enable=0</pre><p>と一時的に別名デバイスが生えない状態にしてから</p><pre class="urvanov-syntax-highlighter-plain-tag">gmirror stop <i>name</i></pre><p>とすれば良いようだ。</p>
<h3 id="appendix3"><a href="#appendix3">おまけ情報3</a></h3>
<p>以前<a href="http://d.akinori.org/2010/04/15/freebsd%e3%81%a7esata%e3%81%ae%e3%83%9b%e3%83%83%e3%83%88%e3%82%b9%e3%83%af%e3%83%83%e3%83%97%e3%81%af%e2%80%a6/" title="FreeBSDでeSATAのホットスワップは…">発見した問題</a>が解決。少なくともFreeBSD 9.0では、eSATA port multiplierにディスクを差したときに既存ディスクのデタッチが発生しないようになっていた。<span class="emoticon">ﾔｯﾀﾈ＼(^o^)／</span></p>
<p>The post <a href="https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/">ML110 G6の起動ディスクをSSDに変更</a> appeared first on <a href="https://d.akinori.org">工夫と趣向と分別と。</a>.</p>
<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-yarpp-template-akinori'>
<!-- YARPP List -->
<p>» 関連記事 «</p><ul>
<li><a href="https://d.akinori.org/2011/10/27/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%81%ab%e5%a4%89%e6%9b%b4/" rel="bookmark" title="ML110 G6の起動ディスクをUSBメモリに変更">ML110 G6の起動ディスクをUSBメモリに変更</a></li>
<li><a href="https://d.akinori.org/2011/10/27/freebsd-on-ml110-g6%e3%82%92%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0/" rel="bookmark" title="FreeBSD on ML110 G6をちょっとチューニング">FreeBSD on ML110 G6をちょっとチューニング</a></li>
<li><a href="https://d.akinori.org/2010/04/15/wd15ears%e3%81%ae%e6%80%a7%e8%83%bd%e3%82%92%e8%a8%88%e6%b8%ac/" rel="bookmark" title="WD15EARSの性能を計測">WD15EARSの性能を計測</a></li>
</ul>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://d.akinori.org/2012/05/11/ml110-g6%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%87%e3%82%a3%e3%82%b9%e3%82%af%e3%82%92ssd%e3%81%ab%e5%a4%89%e6%9b%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
