<?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>ZFS | 徒然なるままに</title>
	<atom:link href="https://www.seichan.org/category/freebsd/zfs-freebsd/feed" rel="self" type="application/rss+xml" />
	<link>https://www.seichan.org</link>
	<description>徒然と日々の出来事(ネタ)を書いていこうかと．主に FreeBSD，Unix系の話題が中心ですが，その他の話題もあつかってみたり．</description>
	<lastBuildDate>Sun, 24 Mar 2024 00:36:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</title>
		<link>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html</link>
					<comments>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Wed, 03 Jan 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1196</guid>

					<description><![CDATA[ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．なお，マ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．<br>マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．<br>なお，マニュアルの参照元は <a rel="noopener" href="https://man.freebsd.org/cgi/man.cgi?query=zfsprops" target="_blank">zfsprops(7)</a> です．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ZFS ファイルシステムプロパティ</a><ol><li><a href="#toc2" tabindex="0">written</a></li><li><a href="#toc3" tabindex="0">logicalused</a></li><li><a href="#toc4" tabindex="0">logicalreferenced</a></li><li><a href="#toc5" tabindex="0">volmode</a></li><li><a href="#toc6" tabindex="0">filesystem_limit</a></li><li><a href="#toc7" tabindex="0">snapshot_limit</a></li><li><a href="#toc8" tabindex="0">filesystem_count</a></li><li><a href="#toc9" tabindex="0">snapshot_count</a></li><li><a href="#toc10" tabindex="0">snapdev</a></li><li><a href="#toc11" tabindex="0">acltype</a><ol><li><a href="#toc12" tabindex="0">off</a></li><li><a href="#toc13" tabindex="0">noacl</a></li><li><a href="#toc14" tabindex="0">nfsv4</a></li><li><a href="#toc15" tabindex="0">posix</a></li></ol></li><li><a href="#toc16" tabindex="0">context</a></li><li><a href="#toc17" tabindex="0">fscontext</a></li><li><a href="#toc18" tabindex="0">defcontext</a></li><li><a href="#toc19" tabindex="0">rootcontext</a></li><li><a href="#toc20" tabindex="0">relatime</a></li><li><a href="#toc21" tabindex="0">redundant_metadata</a></li><li><a href="#toc22" tabindex="0">overlay</a></li><li><a href="#toc23" tabindex="0">encryption</a></li><li><a href="#toc24" tabindex="0">keylocation</a></li><li><a href="#toc25" tabindex="0">keyformat</a></li><li><a href="#toc26" tabindex="0">pbkdf2iters</a></li><li><a href="#toc27" tabindex="0">special_small_blocks</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ZFS ファイルシステムプロパティ</span></h2>



<p class="wp-block-paragraph">作成済みの ZFS ファイルシステムのプロパティを表示するとこのように沢山の項目が表示されます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get all pool0
NAME   PROPERTY              VALUE                  SOURCE
pool0  type                  filesystem             -
pool0  creation              Mon Dec 18 18:35 2023  -
pool0  used                  10.0G                  -
pool0  available             375G                   -
pool0  referenced            32.0K                  -
pool0  compressratio         1.00x                  -
pool0  mounted               yes                    -
pool0  quota                 none                   default
pool0  reservation           none                   default
pool0  recordsize            128K                   default
pool0  mountpoint            /pool0                 default
pool0  sharenfs              off                    default
pool0  checksum              on                     default
pool0  compression           off                    default
pool0  atime                 on                     default
pool0  devices               on                     default
pool0  exec                  on                     default
pool0  setuid                on                     default
pool0  readonly              off                    default
pool0  jailed                off                    default
pool0  snapdir               hidden                 default
pool0  aclmode               discard                default
pool0  aclinherit            restricted             default
pool0  createtxg             1                      -
pool0  canmount              on                     default
pool0  xattr                 on                     default
pool0  copies                1                      default
pool0  version               5                      -
pool0  utf8only              off                    -
pool0  normalization         none                   -
pool0  casesensitivity       sensitive              -
pool0  vscan                 off                    default
pool0  nbmand                off                    default
pool0  sharesmb              off                    default
pool0  refquota              none                   default
pool0  refreservation        none                   default
pool0  guid                  1264596009273225631    -
pool0  primarycache          all                    default
pool0  secondarycache        all                    default
pool0  usedbysnapshots       0B                     -
pool0  usedbydataset         32.0K                  -
pool0  usedbychildren        10.0G                  -
pool0  usedbyrefreservation  0B                     -
pool0  logbias               latency                default
pool0  objsetid              54                     -
pool0  dedup                 off                    default
pool0  mlslabel              none                   default
pool0  sync                  standard               default
pool0  dnodesize             legacy                 default
pool0  refcompressratio      1.00x                  -
pool0  written               32.0K                  -
pool0  logicalused           206K                   -
pool0  logicalreferenced     12.5K                  -
pool0  volmode               default                default
pool0  filesystem_limit      none                   default
pool0  snapshot_limit        none                   default
pool0  filesystem_count      none                   default
pool0  snapshot_count        none                   default
pool0  snapdev               hidden                 default
pool0  acltype               nfsv4                  default
pool0  context               none                   default
pool0  fscontext             none                   default
pool0  defcontext            none                   default
pool0  rootcontext           none                   default
pool0  relatime              off                    default
pool0  redundant_metadata    all                    default
pool0  overlay               on                     default
pool0  encryption            off                    default
pool0  keylocation           none                   default
pool0  keyformat             none                   default
pool0  pbkdf2iters           0                      default
pool0  special_small_blocks  0                      default
</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<p class="wp-block-paragraph">自分で設定が変えられる項目，変えられない項目がありますが，以下この並びに沿って解説を入れていきます．<br>前回は refcompressratio まで記載しましたので，今回はその続きになります．</p>



<h3 class="wp-block-heading"><span id="toc2">written</span></h3>



<p class="wp-block-paragraph">このデータセットによって参照される，直前のスナップショット以降に書き込まれた (つまり，直前のスナップショットによって参照されていない) スペースの量です．</p>



<h3 class="wp-block-heading"><span id="toc3">logicalused</span></h3>



<p class="wp-block-paragraph">このデータセットとそのすべての配下によって「論理的に」消費されるスペースの量．<br>used プロパティも参照してください．<br>論理スペースは圧縮の影響を無視してプロパティに表示され，アプリケーションが認識するデータの量に近い量を与えます．<br>ただし，メタデータによって消費されるスペースも含まれます．</p>



<h3 class="wp-block-heading"><span id="toc4">logicalreferenced</span></h3>



<p class="wp-block-paragraph">値は on，off，opts になります．</p>



<p class="wp-block-paragraph">このデータセットが「論理的に」アクセスされているスペースの量。<br>referenced のプロパティも参照してください．<br>論理スペースは圧縮の影響を無視してプロパティに表示され，アプリケーションが認識するデータの量に近い量を与えます．<br>ただし，メタデータによって消費されるスペースも含まれます．</p>



<h3 class="wp-block-heading"><span id="toc5">volmode</span></h3>



<p class="wp-block-paragraph">値は default，geom，dev，none になります．</p>



<p class="wp-block-paragraph">このプロパティは，ボリュームを OS に公開する方法を指定します．<br>これを Full に設定すると，ボリュームが本格的なブロックデバイスとして公開され，最大限の機能が提供されます．<br>geom は full のエイリアスで，互換性のために保持されています．<br>dev に設定すると，そのパーティションが非表示になります．<br>プロパティが none に設定されたボリュームは ZFS の外部には公開されませんが，バックアップ目的に適したスナップショット，クローン作成，複製などが可能です．<br>デフォルト値は Full です．</p>



<h3 class="wp-block-heading"><span id="toc6">filesystem_limit</span></h3>



<p class="wp-block-paragraph">値はcount，none になります．</p>



<p class="wp-block-paragraph">データセット ツリーのこのポイントの下に存在できるファイル システムとボリュームの数を制限します．<br>ユーザーが制限の変更を許可されている場合，制限は強制されません．<br>すでに filesystem_limit を持つファイルシステムの配下に filesystem_limit を設定した場合，上位の filesystem_limit は上書きされず，追加の制限が課されます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc7">snapshot_limit</span></h3>



<p class="wp-block-paragraph">値は count，none になります．</p>



<p class="wp-block-paragraph">データセットとその配下に対して作成できるスナップショットの数を制限します．<br>すでに snapshot_limit を持つデータセットの配下に snapshot_limit を設定した場合も，上位の snapshot_limit は上書きされず，追加の制限が課されます．<br>ユーザーが制限の変更を許可されている場合，制限は強制されません．</p>



<h3 class="wp-block-heading"><span id="toc8">filesystem_count</span></h3>



<p class="wp-block-paragraph">データセットツリー内のこの場所に存在するファイルシステムとボリュームの合計数．<br>この値は，データセットが存在するツリー内に filesystem_limit が設定されている場合にのみ使用されます．</p>



<h3 class="wp-block-heading"><span id="toc9">snapshot_count</span></h3>



<p class="wp-block-paragraph">データセットツリー内のこの場所に存在するスナップショットの総数．<br>この値は，データセットが存在するツリー内に snapshot_limit が設定されている場合にのみ使用されます．</p>



<h3 class="wp-block-heading"><span id="toc10">snapdev</span></h3>



<p class="wp-block-paragraph">値は hidden，visible です．</p>



<p class="wp-block-paragraph">/dev/zvol/&lt;pool&gt; の下にあるボリューム スナップショット デバイスを非表示にするか表示するかを制御します．<br>デフォルト値は非表示です．</p>



<h3 class="wp-block-heading"><span id="toc11">acltype</span></h3>



<p class="wp-block-paragraph">値は off，nfsv4，posix です．</p>



<p class="wp-block-paragraph">ACL を有効にするかどうか，有効にする場合はどのタイプの ACL を使用するかを制御します．</p>



<p class="wp-block-paragraph">このプロパティが現在のプラットフォームでサポートされていないタイプの ACL に設定されている場合，動作は off に設定されている場合と同じです．</p>



<h4 class="wp-block-heading"><span id="toc12">off</span></h4>



<p class="wp-block-paragraph">Linux のデフォルトでは，ファイル システムの acltype プロパティが off に設定されている場合，ACL は無効になります．</p>



<h4 class="wp-block-heading"><span id="toc13">noacl</span></h4>



<p class="wp-block-paragraph">off のエイリアスです．</p>



<h4 class="wp-block-heading"><span id="toc14">nfsv4</span></h4>



<p class="wp-block-paragraph">FreeBSD のデフォルトは，NFSv4 スタイルの ZFS ACL を使用する必要があることを示します．<br>これらの ACL は，getfacl(1) および setfacl(1) を使用して管理できます．<br>nfsv4 ZFS ACL タイプは Linux ではまだサポートされていません．</p>



<h4 class="wp-block-heading"><span id="toc15">posix</span></h4>



<p class="wp-block-paragraph">POSIX ACL を使用する必要があることを示します．POSIX ACL は Linux に固有であり，他のプラットフォームでは機能しません．<br>POSIX ACL は拡張属性として保存されます．したがって，設定されている既存の NFSv4 ACL は上書きされません．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc16">context</span></h3>



<p class="wp-block-paragraph">Linux の SELinux に向けた設定なので省略します．</p>



<h3 class="wp-block-heading"><span id="toc17">fscontext</span></h3>



<p class="wp-block-paragraph">Linux の SELinux に向けた設定なので省略します．</p>



<h3 class="wp-block-heading"><span id="toc18">defcontext</span></h3>



<p class="wp-block-paragraph">Linux の SELinux に向けた設定なので省略します．</p>



<h3 class="wp-block-heading"><span id="toc19">rootcontext</span></h3>



<p class="wp-block-paragraph">Linux の SELinux に向けた設定なので省略します．</p>



<h3 class="wp-block-heading"><span id="toc20">relatime</span></h3>



<p class="wp-block-paragraph">値は on，off です．</p>



<p class="wp-block-paragraph">atime=on が設定されている場合にアクセス時間が更新される方法を制御します．<br>このプロパティをオンにすると，アクセス時間が修正時間または変更時間に応じて更新されます．<br>アクセス時刻は，以前のアクセス時刻が現在の変更時刻よりも早かった場合，または既存のアクセス時刻が過去 24 時間以内に更新されていない場合にのみ更新されます．デフォルト値はオンです．<br>on および off の値は，マウントオプションの relatime および norelatime と同義です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc21">redundant_metadata</span></h3>



<p class="wp-block-paragraph">値は all，most，some，none です．</p>



<p class="wp-block-paragraph">どのタイプでメタデータを冗長的に保存するかを制御します．<br>ZFS はメタデータの追加のコピーを保存するため，単一のブロックが破損した場合でも，失われるユーザーデータの量は制限されます．<br>この追加コピーは，プールレベルで提供される冗長性 (ミラーリングや RAID-Z など) に追加され，コピープロパティで指定された追加コピー (合計 3 つのコピーまで) に追加されます．<br>たとえば，プールがミラー化され，copys=2，redundant_metadata=most の場合，ZFS はほとんどのメタデータのコピー 6 つと，データと一部のメタデータのコピー 4 つを保存します．</p>



<p class="wp-block-paragraph">all に設定すると，ZFS はすべてのメタデータの追加コピーを保存します．<br>ディスク上の 1 つのブロックが破損すると，最悪の場合、ユーザー データの 1 つのブロック (recordsize のバイトの長さ) が失われる可能性があります．</p>



<p class="wp-block-paragraph">most に設定すると，ZFS はほとんどのタイプのメタデータの追加コピーを保存します．<br>これにより，書き込む必要のあるメタデータが少なくなるため，ランダム書き込みのパフォーマンスが向上します．<br>実際には，ディスク上の 1 つのブロックが破損すると，最悪でも約 1000 ブロック (それぞれ recordsize バイト) のユーザー データが失われる可能性があります．<br>どのメタデータ ブロックが冗長的に保存されるかの正確な動作は，将来のリリースで変更される可能性があります．</p>



<p class="wp-block-paragraph">some に設定すると，ZFS は重要なメタデータのみの追加コピーを保存します．<br>これにより，書き込む必要のあるメタデータが少なくなるため，ファイル作成のパフォーマンスが向上します．<br>ディスク上の 1 つのブロックが破損すると，最悪の場合，1 つのユーザーファイルが失われる可能性があります．</p>



<p class="wp-block-paragraph">none に設定すると，ZFS はメタデータのコピーを冗長的に保存しません．<br>ディスク上の 1 つのブロックが破損すると，データセット全体が失われる可能性があります．</p>



<p class="wp-block-paragraph">デフォルト値は「all」です．</p>



<h3 class="wp-block-heading"><span id="toc22">overlay</span></h3>



<p class="wp-block-paragraph">値は on，off です．</p>



<p class="wp-block-paragraph">使用中のディレクトリ，または既にファイルやディレクトリが含まれているディレクトリへのマウントを許可します．<br>これは、Linux および FreeBSD ファイル システムのデフォルトで利用可能なのマウント動作です．<br>これらのプラットフォームでは，このプロパティはデフォルトで on になっています．<br>他のプラットフォーム上の OpenZFS との一貫性を保つためにオーバーレイ マウントを無効にするには，off に設定します．</p>



<h3 class="wp-block-heading"><span id="toc23">encryption</span></h3>



<p class="wp-block-paragraph">値は off，on，aes-128-ccm，aes-192-ccm，aes-256-ccm，aes-128-gcm，aes-192-gcm，aes-256-gcm です．</p>



<p class="wp-block-paragraph">このデータセットに使用される暗号化スイート (ブロック暗号，キーの長さ，およびモード) を制御します．<br>プールで暗号化機能を有効にする必要があります．<br>データセットの作成時にキー形式を設定する必要があります．</p>



<p class="wp-block-paragraph">データセットの作成時に encryption=on を選択すると，デフォルトの暗号化スイート (現在は aes-256-gcm) が選択されます．<br>一貫したデータ保護を提供するには，データセットの作成時に暗号化を指定する必要があり，後で変更することはできません．</p>



<p class="wp-block-paragraph">暗号化の詳細と注意事項については、zfs-load-key(8) の「encryption」セクションを参照してください．</p>



<h3 class="wp-block-heading"><span id="toc24">keylocation</span></h3>



<p class="wp-block-paragraph">値は prompt，file:///file/path，https://address，http://address です．</p>



<p class="wp-block-paragraph">zfs load-key や zfs mount -l などのコマンドで，デフォルトでユーザーの暗号化キーがどこからロードされるかを制御します．<br>このプロパティは，暗号化ルートである暗号化されたデータセットに対してのみ設定されます．<br>指定しない場合のデフォルト値は prompt です．</p>



<p class="wp-block-paragraph">データセットの作成後に暗号化スイートを変更することはできませんが，キーの場所は zfs set または zfs change-key のいずれかを使用して変更できます．<br>プロンプトが選択されている場合，暗号化されたデータにアクセスする必要がある場合，ZFS はコマンド プロンプトでキーを要求します (詳細については、zfs load-key を参照してください)．<br>この設定では，標準入力ストリーム経由でキーを渡すこともできますが，ユーザーは秘密にしておく必要のあるキーをコマンドラインに置かないように注意する必要があります．<br>ファイルパスが選択されている場合，キーは指定された絶対ファイルパスからロードされます．<br>HTTPS または HTTP が選択された場合，コンパイル時の構成と実行時の可用性に応じて，fetch(3)，libcurl，または何も使用せずに GET されます．<br>SSL_CA_CERT_FILE 環境変数を設定して，連結された証明書ストアの場所を設定できます．<br>SSL_CA_CERT_PATH 環境変数を設定すると，認証局バンドルが含まれるディレクトリの場所をオーバーライドできます．<br>SSL_CLIENT_CERT_FILE および SSL_CLIENT_KEY_FILE 環境変数を設定して，クライアント証明書とそのキーへのパスを構成できます．</p>



<h3 class="wp-block-heading"><span id="toc25">keyformat</span></h3>



<p class="wp-block-paragraph">値は raw，hex，passphrase です．</p>



<p class="wp-block-paragraph">ユーザーの暗号化キーがどの形式で提供されるかを制御します．このプロパティは，データセットが暗号化されている場合にのみ設定されます．</p>



<p class="wp-block-paragraph">raw キーと hex キーの長さは 32 バイトである必要があり，ランダムに生成される必要があります．<br>raw キーは次のコマンドで生成できます</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># dd if=/dev/urandom bs=32 count=1 of=/path/to/output/key</pre>



<p class="wp-block-paragraph">パスフレーズの長さは 8 ～ 512 バイトである必要があり，使用前に PBKDF2 によって処理されます (pbkdf2iters プロパティを参照してください)．<br>データセットの作成後に暗号化スイートを変更することはできませんが，キー形式は zfs change-key を使用して変更できます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc26">pbkdf2iters</span></h3>



<p class="wp-block-paragraph">値は iterations です．</p>



<p class="wp-block-paragraph">パスフレーズ暗号化キーを処理して暗号化キーにする際に実行する PBKDF2 の反復回数を制御します．<br>このプロパティは，暗号化が有効であり，パスフレーズのキー形式が選択されている場合にのみ定義されます．<br>PBKDF2 の目標は，ユーザーのパスフレーズを総当たり攻撃するために必要な計算の難易度を大幅に高めることです．<br>これは，攻撃者が結果のキーに到達する前に，計算量の多いハッシュ関数を介して各パスフレーズを何度も実行することを強制することで実現されます．<br>実際にパスフレーズを知っているユーザーは，このコストを一度支払うだけで済みます．<br>CPU の処理能力が向上するにつれて，ブルートフォース攻撃が依然として不可能であることを保証するために，この数値を上げる必要があります．<br>現在のデフォルトは 350000 で、最小値は 100000 です．<br>このプロパティは、zfs change-key を使用して変更できます．</p>



<h3 class="wp-block-heading"><span id="toc27">special_small_blocks</span></h3>



<p class="wp-block-paragraph">値は size です．</p>



<p class="wp-block-paragraph">この値は，小さなファイル ブロックを特別な割り当てクラスに含めるためのブロック サイズのしきい値を表します．<br>この値以下のブロックは特別割り当てクラスに割り当てられ，それより大きいブロックは通常クラスに割り当てられます．<br>有効な値は、0 または 512 から 1048576 (1 MiB) までの 2 のべき乗です．<br>デフォルトのサイズは 0 で，小さなファイル ブロックが特殊クラスに割り当てられないことを意味します．</p>



<p class="wp-block-paragraph">このプロパティを設定する前に，特別なクラス vdev をプールに追加する必要があります．<br>特別な割り当てクラスの詳細については，zpoolconcepts(7) を参照してください．</p>



<p class="wp-block-paragraph">以上，4回にわたって掲載してみましたが，ZFS ファイルシステムプロパティの解説になります．<br>マニュアルが用意されている事のありがたさを感じつつも，読んでもぱっとわからない自分の無知を呪います．</p>



<p class="wp-block-paragraph">どこかのタイミングで ZFS の暗号化もやってみたいと思いますが，一旦は ZFS については一区切りにしようと考えています．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</title>
		<link>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html</link>
					<comments>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Tue, 02 Jan 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1190</guid>

					<description><![CDATA[ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．なお，マ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．<br>マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．<br>なお，マニュアルの参照元は <a rel="noopener" href="https://man.freebsd.org/cgi/man.cgi?query=zfsprops" target="_blank">zfsprops(7)</a> です．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ZFS ファイルシステムプロパティ</a><ol><li><a href="#toc2" tabindex="0">vscan</a></li><li><a href="#toc3" tabindex="0">nbmand</a></li><li><a href="#toc4" tabindex="0">sharesmb</a></li><li><a href="#toc5" tabindex="0">refquota</a></li><li><a href="#toc6" tabindex="0">refreservation</a></li><li><a href="#toc7" tabindex="0">guid</a></li><li><a href="#toc8" tabindex="0">primarycache</a></li><li><a href="#toc9" tabindex="0">secondarycache</a></li><li><a href="#toc10" tabindex="0">usedbysnapshots</a></li><li><a href="#toc11" tabindex="0">usedbydataset</a></li><li><a href="#toc12" tabindex="0">usedbychildren</a></li><li><a href="#toc13" tabindex="0">usedbyrefreservation</a></li><li><a href="#toc14" tabindex="0">logbias</a></li><li><a href="#toc15" tabindex="0">objsetid</a></li><li><a href="#toc16" tabindex="0">dedup</a></li><li><a href="#toc17" tabindex="0">mlslabel</a></li><li><a href="#toc18" tabindex="0">sync</a></li><li><a href="#toc19" tabindex="0">dnodesize</a></li><li><a href="#toc20" tabindex="0">refcompressratio</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ZFS ファイルシステムプロパティ</span></h2>



<p class="wp-block-paragraph">作成済みの ZFS ファイルシステムのプロパティを表示するとこのように沢山の項目が表示されます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get all pool0
NAME   PROPERTY              VALUE                  SOURCE
pool0  type                  filesystem             -
pool0  creation              Mon Dec 18 18:35 2023  -
pool0  used                  10.0G                  -
pool0  available             375G                   -
pool0  referenced            32.0K                  -
pool0  compressratio         1.00x                  -
pool0  mounted               yes                    -
pool0  quota                 none                   default
pool0  reservation           none                   default
pool0  recordsize            128K                   default
pool0  mountpoint            /pool0                 default
pool0  sharenfs              off                    default
pool0  checksum              on                     default
pool0  compression           off                    default
pool0  atime                 on                     default
pool0  devices               on                     default
pool0  exec                  on                     default
pool0  setuid                on                     default
pool0  readonly              off                    default
pool0  jailed                off                    default
pool0  snapdir               hidden                 default
pool0  aclmode               discard                default
pool0  aclinherit            restricted             default
pool0  createtxg             1                      -
pool0  canmount              on                     default
pool0  xattr                 on                     default
pool0  copies                1                      default
pool0  version               5                      -
pool0  utf8only              off                    -
pool0  normalization         none                   -
pool0  casesensitivity       sensitive              -
pool0  vscan                 off                    default
pool0  nbmand                off                    default
pool0  sharesmb              off                    default
pool0  refquota              none                   default
pool0  refreservation        none                   default
pool0  guid                  1264596009273225631    -
pool0  primarycache          all                    default
pool0  secondarycache        all                    default
pool0  usedbysnapshots       0B                     -
pool0  usedbydataset         32.0K                  -
pool0  usedbychildren        10.0G                  -
pool0  usedbyrefreservation  0B                     -
pool0  logbias               latency                default
pool0  objsetid              54                     -
pool0  dedup                 off                    default
pool0  mlslabel              none                   default
pool0  sync                  standard               default
pool0  dnodesize             legacy                 default
pool0  refcompressratio      1.00x                  -
pool0  written               32.0K                  -
pool0  logicalused           206K                   -
pool0  logicalreferenced     12.5K                  -
pool0  volmode               default                default
pool0  filesystem_limit      none                   default
pool0  snapshot_limit        none                   default
pool0  filesystem_count      none                   default
pool0  snapshot_count        none                   default
pool0  snapdev               hidden                 default
pool0  acltype               nfsv4                  default
pool0  context               none                   default
pool0  fscontext             none                   default
pool0  defcontext            none                   default
pool0  rootcontext           none                   default
pool0  relatime              off                    default
pool0  redundant_metadata    all                    default
pool0  overlay               on                     default
pool0  encryption            off                    default
pool0  keylocation           none                   default
pool0  keyformat             none                   default
pool0  pbkdf2iters           0                      default
pool0  special_small_blocks  0                      default
</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<p class="wp-block-paragraph">自分で設定が変えられる項目，変えられない項目がありますが，以下この並びに沿って解説を入れていきます．<br>前回は casesensitivity まで記載しましたので，今回はその続きになります．</p>



<h3 class="wp-block-heading"><span id="toc2">vscan</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">ファイルを開いたり閉じたりするときに，通常のファイルのウイルススキャンを行うかどうかを制御します．<br>ウイルススキャンを実行するには，このプロパティを有効にすることに加えて，ウイルス スキャン サービスも有効にする必要があります．<br>デフォルト値は off です．また，このプロパティは OpenZFS では使用されません．<br>(したがって，FreeBSD では利用ができません)</p>



<h3 class="wp-block-heading"><span id="toc3">nbmand</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">ファイルシステムを nbmand (ノンブロッキング必須ロック) でマウントするかどうかを制御します．<br>このプロパティへの変更は，ファイルシステムがアンマウントされ，再マウントされた際に有効になります．<br>また，これは 5.15 より前の Linux でのみサポートされており，そこでバグがあったため，FreeBSD ではサポートされていません．<br>Solaris では，SMB クライアントに使用されます．</p>



<h3 class="wp-block-heading"><span id="toc4">sharesmb</span></h3>



<p class="wp-block-paragraph">値は on，off，opts になります．</p>



<p class="wp-block-paragraph">Samba USERSHARES を使用してファイル システムを共有するかどうか，およびどのようなオプションを使用するかを制御します．<br>それ以外の場合，ファイルシステムは、zfs share および zfs unshare コマンドを使用して自動的に共有および共有解除されます．<br>このプロパティが on に設定されている場合，net(8) コマンドが呼び出され、USERSHARE が作成されます．</p>



<p class="wp-block-paragraph">SMB 共有にはリソース名が必要なため，データセット名から一意のリソース名が構築されます．<br>構築された名前は，データセット名のコピーですが，リソース名では無効となるデータセット名の文字がアンダースコア (_) 文字に置き換えられます．<br>Linux は現在，Solaris で利用できる追加オプションをサポートしていません．</p>



<p class="wp-block-paragraph">sharesmb プロパティが off に設定されている場合，ファイル システムは共有されません．</p>



<p class="wp-block-paragraph">共有は ACL (アクセス コントロール リスト)「Everyone:F」(「F」は「フル アクセス許可」，つまり読み取りおよび書き込みアクセス許可を表します) を使用して作成され、ゲスト アクセスはありません (つまり、Samba は実際のユーザーを認証できる必要があります)．<br>デフォルトでは passwd(5)/shadow(5)、LDAP、または smbpasswd(5)．<br>これは，追加のアクセス制御 (特定のユーザー固有のアクセスを禁止するなど) を基盤となるファイル システムで実行する必要があることを意味します．</p>



<p class="wp-block-paragraph">sharesmb プロパティが zfs set -u で更新されると，プロパティは目的の値に設定されますが，データセットを共有，再共有，または共有解除する操作は実行されません．</p>



<h3 class="wp-block-heading"><span id="toc5">refquota</span></h3>



<p class="wp-block-paragraph">値は size，none になります．</p>



<p class="wp-block-paragraph">データセットが消費できるスペースの量を制限します．<br>このプロパティは、使用されるスペースの量に厳しい制限を適用します．<br>このハード制限には，quota プロパティと違って，ファイル システムやスナップショットなど，子孫によって使用される領域は含まれません．</p>



<h3 class="wp-block-heading"><span id="toc6">refreservation</span></h3>



<p class="wp-block-paragraph">値は size，none になります．</p>



<p class="wp-block-paragraph">データセットに対して保証される最小領域を設定できます (配下は含まれません)．<br>使用されるスペースの量がこの値を下回っている場合，データセットは、refreservation で指定されたスペースの量を占有しているかのように扱われます．<br>refreservation による予約は，親データセットの使用スペースに考慮され，親データセットのクォータと reservation に対してカウントされます．</p>



<p class="wp-block-paragraph">refreservation が設定される場合，スナップショットは，データセット内の現在の「referenced」バイト数を収容するのに十分な空き領域がこの予約以外存在する場合にのみ許可されます．<br>refreservation が auto に設定されている場合，ボリュームはシックプロビジョニングされます．<br>refreservation=auto はボリュームでのみサポートされます．<br>スパースボリュームの詳細については、「Native Properties」セクションの volsize を参照してください．<br>このプロパティは、短縮された列名 refreserv によって参照することもできます。</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc7">guid</span></h3>



<p class="wp-block-paragraph">このデータセットまたはブックマークの 64 ビット GUID です．<br>データセット，ブックマークが存続する限りずっと変更されません．<br>スナップショットが別のプールに送信されると，受信したスナップショットは同じ GUID を持ちます．<br>したがって，guid はプール全体のスナップショットを識別するのに適しています．</p>



<h3 class="wp-block-heading"><span id="toc8">primarycache</span></h3>



<p class="wp-block-paragraph">値は all，none，metadata になります．</p>



<p class="wp-block-paragraph">プライマリ キャッシュ (ARC) に何をキャッシュするかを制御します．<br>このプロパティが all に設定されている場合，ユーザー データとメタデータの両方がキャッシュされます．<br>このプロパティが none に設定されている場合，ユーザー データもメタデータもキャッシュされません．<br>このプロパティが metadata に設定されている場合，メタデータのみがキャッシュされます．<br>デフォルト値は「all」です．</p>



<h3 class="wp-block-heading"><span id="toc9">secondarycache</span></h3>



<p class="wp-block-paragraph">値は all，none，metadata になります．</p>



<p class="wp-block-paragraph">二次キャッシュ (L2ARC) に何をキャッシュするかを制御します．<br>このプロパティが all に設定されている場合，ユーザー データとメタデータの両方がキャッシュされます．<br>このプロパティが none に設定されている場合，ユーザー データもメタデータもキャッシュされません．<br>このプロパティが metadata に設定されている場合，メタデータのみがキャッシュされます．<br>デフォルト値は「all」です．</p>



<h3 class="wp-block-heading"><span id="toc10">usedbysnapshots</span></h3>



<p class="wp-block-paragraph">このデータセットのスナップショットによって消費されているスペースの量．<br>特に，このデータセットのスナップショットがすべて破棄された場合に解放されるスペースの量です．<br>領域は複数のスナップショットで共有される可能性があるため，これはスナップショットの使用済みプロパティの単純な合計ではないことに注意してください．</p>



<h3 class="wp-block-heading"><span id="toc11">usedbydataset</span></h3>



<p class="wp-block-paragraph">このデータセット自体によって使用されるスペースの量．<br>データセットが破棄された場合に解放される量になります．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc12">usedbychildren</span></h3>



<p class="wp-block-paragraph">このデータセットの配下によって使用されるスペースの量．<br>データセットのすべての子が破棄された場合に解放される量になります．</p>



<h3 class="wp-block-heading"><span id="toc13">usedbyrefreservation</span></h3>



<p class="wp-block-paragraph">このデータセット上の refreservation セットによって使用されるスペースの量．<br>refreservation が削除された場合に解放される量になります．</p>



<h3 class="wp-block-heading"><span id="toc14">logbias</span></h3>



<p class="wp-block-paragraph">値は latency，throughput です．</p>



<p class="wp-block-paragraph">このデータセット内の同期リクエストの処理に関するヒントを ZFS に提供します．<br>logbias が latency (デフォルト) に設定されている場合，ZFS はプールログデバイス (構成されている場合) を使用して低遅延でリクエストを処理します．<br>logbias が throughput に設定されている場合，ZFS は構成されたプールログデバイスを使用しません．<br>ZFS は代わりに，グローバル プールの throughput とリソースの効率的な使用のために同期操作を最適化します．</p>



<h3 class="wp-block-heading"><span id="toc15">objsetid</span></h3>



<p class="wp-block-paragraph">プール内のこのデータセットの一意の識別子．<br>データセットの guid とは異なり，send/recv でスナップショットがコピーされる際，データセットの objsetid は他のプールに転送されません．<br>objsetid は，データセットの削除後に (新しいデータセット用に) 再利用されます．</p>



<h3 class="wp-block-heading"><span id="toc16">dedup</span></h3>



<p class="wp-block-paragraph">値は off，on，verify，sha256，sha256,verify，sha512，sha512,verify，skein，skein,verify，edonr,verify，blake3，blake3,verify です．</p>



<p class="wp-block-paragraph">データセットの重複排除を構成します．<br>デフォルト値は off です．現在のデフォルトの重複排除チェックサムは sha256 です．<br>重複排除が有効な場合，ここで定義されたチェックサムは checksum プロパティを上書きします． verify に設定すると，現在は sha256,verify の設定と同じ効果があります．<br>verify に設定すると，ZFS は 2 つのブロックが同じ署名を持つ場合にバイト間比較を実行して，ブロックの内容を同一か確認します．<br>edonr アルゴリズムでは verify の指定が必須です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc17">mlslabel</span></h3>



<p class="wp-block-paragraph">mlslabel プロパティは、現在 FreeBSD でサポートされていません。</p>



<h3 class="wp-block-heading"><span id="toc18">sync</span></h3>



<p class="wp-block-paragraph">値は standard，always，disabled です．</p>



<p class="wp-block-paragraph">同期リクエスト (fsync、O_DSYNC など) の動作を制御します．<br>standard は，すべての同期リクエストがストレージに書き込まれ，データがデバイス コントローラーによってキャッシュされないようにすべてのデバイスがフラッシュされることを保証する POSIX 指定の動作です (これがデフォルトです)．</p>



<p class="wp-block-paragraph">always は，すべてのファイルシステム トランザクションが書き込まれ，フラッシュされた後システムコールを返します．これにはパフォーマンスに大きなペナルティが伴います．</p>



<p class="wp-block-paragraph"><br>disabled は同期リクエストを無効にします．ファイル システム トランザクションは，ストレージに定期的にのみコミットされます．このオプションでは最高のパフォーマンスが得られます．<br>ただし，ZFS はデータベースや NFS などのアプリケーションの同期トランザクション要求を無視することになるため，非常に危険です．<br>管理者は，リスクを理解している場合にのみこのオプションを使用してください．</p>



<h3 class="wp-block-heading"><span id="toc19">dnodesize</span></h3>



<p class="wp-block-paragraph">値は legacy，auto，1k，2k，4k，8k，16k です．</p>



<p class="wp-block-paragraph">ファイル システム内の dnode のサイズの互換モードまたはリテラル値を指定します．<br>デフォルト値はレガシーです．このプロパティをレガシー以外の値に設定するには，プールでlarge_dnode を有効にする必要があります．</p>



<p class="wp-block-paragraph">データセットで xattr=sa プロパティ設定が使用されており，ワークロードで拡張属性が頻繁に使用される場合は、dnodesize を auto に設定することを検討してください．<br>これは、SELinux 対応システム，Lustre サーバー，Samba サーバーなどに適用できる場合があります．<br>リテラル値は，最適なサイズが事前にわかっている場合とパフォーマンステストのためにサポートされます．</p>



<p class="wp-block-paragraph">large_dnode 機能が有効になっていないプールでこのデータセットの送信ストリームを受信する必要がある場合，またはlarge_dnode 機能をサポートしていないシステムにこのプールをインポートする必要がある場合は，dnodesize をレガシーに設定したままにしてください．</p>



<p class="wp-block-paragraph">このプロパティは，短縮された列名 dnsize によって参照することもできます．</p>



<h3 class="wp-block-heading"><span id="toc20">refcompressratio</span></h3>



<p class="wp-block-paragraph">このデータセットの参照空間に対して達成された圧縮率です．乗数として表されます．<br>compressratio プロパティも参照してください．</p>



<p class="wp-block-paragraph">以上，長くなったので次回へ続きます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</title>
		<link>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html</link>
					<comments>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Mon, 01 Jan 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1185</guid>

					<description><![CDATA[ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．なお，マ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．<br>マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．<br>なお，マニュアルの参照元は <a rel="noopener" href="https://man.freebsd.org/cgi/man.cgi?query=zfsprops" target="_blank">zfsprops(7)</a> です．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ZFS ファイルシステムプロパティ</a><ol><li><a href="#toc2" tabindex="0">atime</a></li><li><a href="#toc3" tabindex="0">devices</a></li><li><a href="#toc4" tabindex="0">exec</a></li><li><a href="#toc5" tabindex="0">setuid</a></li><li><a href="#toc6" tabindex="0">readonly</a></li><li><a href="#toc7" tabindex="0">jailed</a></li><li><a href="#toc8" tabindex="0">snapdir</a></li><li><a href="#toc9" tabindex="0">aclmode</a><ol><li><a href="#toc10" tabindex="0">discard</a></li><li><a href="#toc11" tabindex="0">groupmask</a></li><li><a href="#toc12" tabindex="0">passthrough</a></li><li><a href="#toc13" tabindex="0">restricted</a></li></ol></li><li><a href="#toc14" tabindex="0">aclinherit</a><ol><li><a href="#toc15" tabindex="0">discard</a></li><li><a href="#toc16" tabindex="0">noallow</a></li><li><a href="#toc17" tabindex="0">restricted</a></li><li><a href="#toc18" tabindex="0">passthrough</a></li><li><a href="#toc19" tabindex="0">passthrough-x</a></li></ol></li><li><a href="#toc20" tabindex="0">createtxg</a></li><li><a href="#toc21" tabindex="0">canmount</a></li><li><a href="#toc22" tabindex="0">xattr</a></li><li><a href="#toc23" tabindex="0">copies</a></li><li><a href="#toc24" tabindex="0">utf8only</a></li><li><a href="#toc25" tabindex="0">normalization</a></li><li><a href="#toc26" tabindex="0">casesensitivity</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ZFS ファイルシステムプロパティ</span></h2>



<p class="wp-block-paragraph">作成済みの ZFS ファイルシステムのプロパティを表示するとこのように沢山の項目が表示されます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get all pool0
NAME   PROPERTY              VALUE                  SOURCE
pool0  type                  filesystem             -
pool0  creation              Mon Dec 18 18:35 2023  -
pool0  used                  10.0G                  -
pool0  available             375G                   -
pool0  referenced            32.0K                  -
pool0  compressratio         1.00x                  -
pool0  mounted               yes                    -
pool0  quota                 none                   default
pool0  reservation           none                   default
pool0  recordsize            128K                   default
pool0  mountpoint            /pool0                 default
pool0  sharenfs              off                    default
pool0  checksum              on                     default
pool0  compression           off                    default
pool0  atime                 on                     default
pool0  devices               on                     default
pool0  exec                  on                     default
pool0  setuid                on                     default
pool0  readonly              off                    default
pool0  jailed                off                    default
pool0  snapdir               hidden                 default
pool0  aclmode               discard                default
pool0  aclinherit            restricted             default
pool0  createtxg             1                      -
pool0  canmount              on                     default
pool0  xattr                 on                     default
pool0  copies                1                      default
pool0  version               5                      -
pool0  utf8only              off                    -
pool0  normalization         none                   -
pool0  casesensitivity       sensitive              -
pool0  vscan                 off                    default
pool0  nbmand                off                    default
pool0  sharesmb              off                    default
pool0  refquota              none                   default
pool0  refreservation        none                   default
pool0  guid                  1264596009273225631    -
pool0  primarycache          all                    default
pool0  secondarycache        all                    default
pool0  usedbysnapshots       0B                     -
pool0  usedbydataset         32.0K                  -
pool0  usedbychildren        10.0G                  -
pool0  usedbyrefreservation  0B                     -
pool0  logbias               latency                default
pool0  objsetid              54                     -
pool0  dedup                 off                    default
pool0  mlslabel              none                   default
pool0  sync                  standard               default
pool0  dnodesize             legacy                 default
pool0  refcompressratio      1.00x                  -
pool0  written               32.0K                  -
pool0  logicalused           206K                   -
pool0  logicalreferenced     12.5K                  -
pool0  volmode               default                default
pool0  filesystem_limit      none                   default
pool0  snapshot_limit        none                   default
pool0  filesystem_count      none                   default
pool0  snapshot_count        none                   default
pool0  snapdev               hidden                 default
pool0  acltype               nfsv4                  default
pool0  context               none                   default
pool0  fscontext             none                   default
pool0  defcontext            none                   default
pool0  rootcontext           none                   default
pool0  relatime              off                    default
pool0  redundant_metadata    all                    default
pool0  overlay               on                     default
pool0  encryption            off                    default
pool0  keylocation           none                   default
pool0  keyformat             none                   default
pool0  pbkdf2iters           0                      default
pool0  special_small_blocks  0                      default
</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<p class="wp-block-paragraph">自分で設定が変えられる項目，変えられない項目がありますが，以下この並びに沿って解説を入れていきます．<br>前回は compression まで記載しましたので，今回はその続きになります．</p>



<h3 class="wp-block-heading"><span id="toc2">atime</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">ファイルの読み取り時にファイルのアクセス時間を更新するかどうかを制御します．<br>このプロパティを off にすると，ファイルの読み取り時に書き込みが発生しなくなるため，パフォーマンスが大きく向上する可能性がありますが，アプリケーションなどで不具合が生じる可能性があります．<br>on および off の値は、マウントオプションの atime および noatime と同等です．<br>デフォルト値はオンです。以下の「relatime」も参照してください．</p>



<h3 class="wp-block-heading"><span id="toc3">devices</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">このファイル システム上でデバイスノードを開くことができるかどうかを制御します．<br>デフォルト値は on です．<br>on および off の値は，マウントオプションの dev および nodev と同等です．</p>



<h3 class="wp-block-heading"><span id="toc4">exec</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">このファイルシステム内からプロセスを実行できるかどうかを制御します．<br>デフォルト値は on です．<br>on および off の値は，マウントオプションの exec および noexec と同等です．</p>



<h3 class="wp-block-heading"><span id="toc5">setuid</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">ファイルシステムに対して setuid ビットを利用可能にするかどうかを制御します．<br>デフォルト値は on です．<br>on および off の値は、マウントオプション suid および nosuid と同等です．</p>



<h3 class="wp-block-heading"><span id="toc6">readonly</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">データセットを変更できるかどうかを制御します．<br>on に設定すると，データを変更できなくなります．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc7">jailed</span></h3>



<p class="wp-block-paragraph">値は on，off になります．</p>



<p class="wp-block-paragraph">データセットが jail の内部から管理されるかどうかを制御します．<br>詳細については，「jail」セクションを参照してください．<br>デフォルト値は off です．</p>



<h3 class="wp-block-heading"><span id="toc8">snapdir</span></h3>



<p class="wp-block-paragraph">値は hidden または visible になります．</p>



<p class="wp-block-paragraph">.zfs ディレクトリを表示させるかどうかを制御します．hidden の場合は表示されません (アクセスすることは可能です)<br>デフォルト値は hidden です．</p>



<h3 class="wp-block-heading"><span id="toc9">aclmode</span></h3>



<p class="wp-block-paragraph">値は discard，groupmask，passthrough，restricted です．</p>



<p class="wp-block-paragraph">chmod(2) 中に ACL がどのように変更されるか，また，継承された ACE がファイル作成モードによってどのように変更されるかを制御します．</p>



<h4 class="wp-block-heading"><span id="toc10">discard</span></h4>



<p class="wp-block-paragraph">デフォルト値．chmod(2) によって要求されたファイルまたはディレクトリのモードを表す ACE を除くすべての ACE を削除します．</p>



<h4 class="wp-block-heading"><span id="toc11">groupmask</span></h4>



<p class="wp-block-paragraph">ACL 内で見つかったすべての ALLOW エントリで付与される権限を，chmod(2) で指定されたグループ権限を超えないように削減します．</p>



<h4 class="wp-block-heading"><span id="toc12">passthrough</span></h4>



<p class="wp-block-paragraph">ファイルまたはディレクトリの新しいモードを表すために必要な ACL エントリの作成または更新以外に、ACL に変更が加えられないことを示します．</p>



<h4 class="wp-block-heading"><span id="toc13">restricted</span></h4>



<p class="wp-block-paragraph">モードでエントリを表現できない重要な ACL を持つファイルまたはディレクトリに対して chmod(2) 操作を使用すると，エラーが返されます．<br>chmod(2) は，ファイルまたはディレクトリ上の設定されたユーザー ID，設定されたグループ ID，またはスティッキー ビットを変更するために必要です．これらのビットには同等の ACL エントリがないためです．<br>aclmode が制限付きに設定されているときに，重要な ACL を持つファイルまたはディレクトリに対して chmod(2) を使用するには，まず現在のモードを表さないすべての ACL エントリを削除する必要があります．</p>



<h3 class="wp-block-heading"><span id="toc14">aclinherit</span></h3>



<p class="wp-block-paragraph">値は discard，noallow，restricted，passthrough，passthrough-x です．</p>



<p class="wp-block-paragraph">ファイルとディレクトリの作成時に ACE がどのように継承されるかを制御します。</p>



<h4 class="wp-block-heading"><span id="toc15">discard</span></h4>



<p class="wp-block-paragraph">ACE を継承しません．</p>



<h4 class="wp-block-heading"><span id="toc16">noallow</span></h4>



<p class="wp-block-paragraph">「拒否」権限を指定する継承可能な ACE のみを継承します．</p>



<h4 class="wp-block-heading"><span id="toc17">restricted</span></h4>



<p class="wp-block-paragraph">デフォルト値です．ACE が継承されるときに write_acl および write_owner 権限が削除されます．</p>



<h4 class="wp-block-heading"><span id="toc18">passthrough</span></h4>



<p class="wp-block-paragraph">継承可能なすべての ACE を変更せずに継承します．</p>



<h4 class="wp-block-heading"><span id="toc19">passthrough-x</span></h4>



<p class="wp-block-paragraph">パススルーと同じ意味ですが，owner@，group@，Everyone@ ACE は，ファイル作成モードが実行ビットも要求する場合にのみ実行権限を継承します．</p>



<p class="wp-block-paragraph">プロパティ値がパススルーに設定されている場合，ファイルは継承可能な ACE によって決定されるモードで作成されます．<br>モードに影響を与える継承可能な ACE が存在しない場合，アプリケーションから要求されたモードに従ってモードが設定されます．</p>



<p class="wp-block-paragraph">aclinherit プロパティは POSIX ACL には適用されません．</p>



<h3 class="wp-block-heading"><span id="toc20">createtxg</span></h3>



<p class="wp-block-paragraph">値は on，off，オプション になります．</p>



<p class="wp-block-paragraph">データセットが作成されたトランザクショングループ (txg)です．<br>ブックマークには，最初に関連付けられているスナップショットと同じ createtxg が設定されています．<br>このプロパティは，スナップショットのリストを並べ替えるのに適しています．</p>



<h3 class="wp-block-heading"><span id="toc21">canmount</span></h3>



<p class="wp-block-paragraph">値は on，off，noauto です．</p>



<p class="wp-block-paragraph">このプロパティが off に設定された場合，ファイルシステムをマウントすることができず，“zfs mount -a” は無視されます．<br>このプロパティを off に設定することは，データセットからみて継承することができる通常の mountpoint プロパティがまだあることを除いて、 mountpoint プロパティを none に設定することと同様です。<br>このプロパティを off 設定することによって，データセットをプロパティを継承するための唯一メカニズムとして使用することができます．<br>canmount=off を設定する一例として，両方のデータセットの子供が同じディレクトリに現れることができように、同じ mountpoint がある 2 つのデータセットがあることですが、異なっで継承される特性 (characteristic) があるかもしれません．<br>noauto の値が設定された場合，明示的にデータセットをマウント，アンマウントすることができます．<br>データセットは，自動的にマウントされず，“zfs mount -a” コマンドでもマウントされません．また，“zfs umount -a” コマンドでアンマウントされることもありません．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc22">xattr</span></h3>



<p class="wp-block-paragraph">値はon，off，sa  です．</p>



<p class="wp-block-paragraph">このファイルシステムに対して拡張属性を有効にするかどうかを制御します．<br>ディレクトリベースまたはシステム属性ベースの二つのスタイルの拡張属性がサポートされています．</p>



<p class="wp-block-paragraph">デフォルト値の on では，ディレクトリベースの拡張属性が有効になります．<br>このスタイルの拡張属性では，ファイルに設定できる属性のサイズや数に実際的な制限はありません．<br>ただし，Linux では getxattr(2) および setxattr(2) システム コールにより最大サイズが 64K に制限されます．<br>これは拡張属性の最も互換性のあるスタイルであり，すべての ZFS 実装でサポートされています．</p>



<p class="wp-block-paragraph">システム属性ベースの xattrs は，値を sa に設定することで有効にできます．<br>このタイプの xattr の主な利点はパフォーマンスの向上です．<br>拡張属性をシステム属性として保存すると必要なディスク I/O の量が大幅に減少します．<br>システム属性用に予約されたスペースには，ファイルごとに最大 64K のデータを保存できます．<br>拡張属性に使用できる十分なスペースがない場合，拡張属性はディレクトリベースの xattr として自動的に書き込まれます．<br>システム属性ベースの拡張属性は，xattr=sa 機能をサポートしていないプラットフォームではアクセスできません．<br>OpenZFS は，FreeBSD と Linux の両方で xattr=sa をサポートします．</p>



<p class="wp-block-paragraph">SELinux または POSIX ACL のユーザーには，システム属性ベースの xattrs の使用が強く推奨されます．<br>これらの機能はどちらも拡張属性に大きく依存しており，アクセス時間の短縮によって大きなメリットが得られます．</p>



<p class="wp-block-paragraph">on および off は，マウントオプションの xattr および noxattr と同等です．</p>



<h3 class="wp-block-heading"><span id="toc23">copies</span></h3>



<p class="wp-block-paragraph">値は 1，2，3 です．</p>



<p class="wp-block-paragraph">このデータセットに保存されるデータのコピーの数を制御します．<br>これらのコピーは，ミラーリングや RAID-Z など，プールによって提供される冗長性に追加されます．<br>可能であれば，コピーは別のディスクに保存されます．<br>複数のコピーによって使用されるスペースは，関連付けられたファイルとデータセットにチャージされ，使用されるプロパティが変更され，クォータと予約に対しても影響されます．<br>このプロパティを変更すると，新しく書き込まれたデータにのみ影響します．<br>したがって，最初からコピー数を制御したい場合はファイルシステムの作成時に「-ocopies=N」オプションを使用してこのプロパティを設定します．</p>



<p class="wp-block-paragraph">ZFS は，最上位の vdev が欠落しているプールはインポートできないことに注意してください．<br>たとえば，冗長性が設定されていると考えて，一部のデータセットに 2 つのディスクのストライプ プールを作成し，copys=2 を設定しないでください．<br>ディスクに障害が発生すると，プールをインポートできなくなりすべてのデータが失われます．</p>



<p class="wp-block-paragraph">実装では通常 3 番目のコピーが存在する場所に一部の暗号化メタデータが保存されるため，暗号化されたデータセットには「copy=3」が存在しない場合があります．<br>このプロパティのデフォルト値は「1」です．</p>



<h3 class="wp-block-heading"><span id="toc24">utf8only</span></h3>



<p class="wp-block-paragraph">値は on，off です．</p>



<p class="wp-block-paragraph">デフォルト値は off です．<br>UTF-8 文字コード セットに存在しない文字を含むファイル名をファイル システムが拒否するかどうかを示します．<br>このプロパティが明示的にオフに設定されている場合は，正規化プロパティを明示的に設定しないか，または none に設定する必要があります．<br>utf8only プロパティのデフォルト値はオフです．<br>このプロパティは，ファイルシステムの作成後に変更することはできません．</p>



<h3 class="wp-block-heading"><span id="toc25">normalization</span></h3>



<p class="wp-block-paragraph">値は none，formC，formD，formKC，formKD です．</p>



<p class="wp-block-paragraph">デフォルト値は none です．<br>二つのファイル名を比較するときにファイルシステムがファイル名の Unicode 正規化を実行するかどうか，およびどの正規化アルゴリズムを使用するかを示します．<br>ファイル名は常に変更されずに保存され，名前は比較プロセスの一部として正規化されます．<br>このプロパティが none 以外の有効な値に設定され，utf8only プロパティが指定されていない場合，utf8only プロパティは自動的に on に設定されます．<br>このプロパティは，ファイル システムの作成後に変更することはできません．</p>



<h3 class="wp-block-heading"><span id="toc26">casesensitivity</span></h3>



<p class="wp-block-paragraph">値は sensitive，insensitive，mixed です．</p>



<p class="wp-block-paragraph">ファイルシステムで使用されるファイル名一致アルゴリズムが「大文字と小文字を区別する」か「大文字と小文字を区別しない」か，または両方の形式の一致の組み合わせを許可するかを示します．<br>デフォルト値は sensitive で，大文字と小文字を区別します．<br>従来，Unix および POSIX ファイル システムでは、「大文字と小文字が区別される」ファイル名が使用されていました．</p>



<p class="wp-block-paragraph">casesensitivity プロパティの mixed は，ファイル システムが「大文字と小文字を区別する」と「大文字と小文字を区別しない」の両方の要求をサポートできることを示します．<br>現在，mixed をサポートするファイル システムでの大文字と小文字を区別しない一致動作は，SMB サーバー製品に限定されています．<br>mixed 値の動作の詳細については『ZFS Administration Guide』を参照してください．</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">以上，長くなったので次回へ続きます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Sun, 31 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1169</guid>

					<description><![CDATA[ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．なお，マ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ZFS ファイルシステムで利用できる機能は多岐にわたります．今回はファイルシステム (と ZVOL) が持つ機能について説明を行います．<br>マニュアルをベースに抜粋してなるべく見やすいように記載をしているつもりです．<br>なお，マニュアルの参照元は <a rel="noopener" href="https://man.freebsd.org/cgi/man.cgi?query=zfsprops" target="_blank">zfsprops(7)</a> です．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ZFS ファイルシステムプロパティ</a><ol><li><a href="#toc2" tabindex="0">filesystem</a></li><li><a href="#toc3" tabindex="0">used</a></li><li><a href="#toc4" tabindex="0">available</a></li><li><a href="#toc5" tabindex="0">referenced</a></li><li><a href="#toc6" tabindex="0">compressratio</a></li><li><a href="#toc7" tabindex="0">mounted</a></li><li><a href="#toc8" tabindex="0">quota</a></li><li><a href="#toc9" tabindex="0">reservation</a></li><li><a href="#toc10" tabindex="0">recordsize</a></li><li><a href="#toc11" tabindex="0">mountpoint</a></li><li><a href="#toc12" tabindex="0">sharenfs</a></li><li><a href="#toc13" tabindex="0">checksum</a></li><li><a href="#toc14" tabindex="0">compression</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ZFS ファイルシステムプロパティ</span></h2>



<p class="wp-block-paragraph">作成済みの ZFS ファイルシステムのプロパティを表示するとこのように沢山の項目が表示されます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get all pool0
NAME   PROPERTY              VALUE                  SOURCE
pool0  type                  filesystem             -
pool0  creation              Mon Dec 18 18:35 2023  -
pool0  used                  10.0G                  -
pool0  available             375G                   -
pool0  referenced            32.0K                  -
pool0  compressratio         1.00x                  -
pool0  mounted               yes                    -
pool0  quota                 none                   default
pool0  reservation           none                   default
pool0  recordsize            128K                   default
pool0  mountpoint            /pool0                 default
pool0  sharenfs              off                    default
pool0  checksum              on                     default
pool0  compression           off                    default
pool0  atime                 on                     default
pool0  devices               on                     default
pool0  exec                  on                     default
pool0  setuid                on                     default
pool0  readonly              off                    default
pool0  jailed                off                    default
pool0  snapdir               hidden                 default
pool0  aclmode               discard                default
pool0  aclinherit            restricted             default
pool0  createtxg             1                      -
pool0  canmount              on                     default
pool0  xattr                 on                     default
pool0  copies                1                      default
pool0  version               5                      -
pool0  utf8only              off                    -
pool0  normalization         none                   -
pool0  casesensitivity       sensitive              -
pool0  vscan                 off                    default
pool0  nbmand                off                    default
pool0  sharesmb              off                    default
pool0  refquota              none                   default
pool0  refreservation        none                   default
pool0  guid                  1264596009273225631    -
pool0  primarycache          all                    default
pool0  secondarycache        all                    default
pool0  usedbysnapshots       0B                     -
pool0  usedbydataset         32.0K                  -
pool0  usedbychildren        10.0G                  -
pool0  usedbyrefreservation  0B                     -
pool0  logbias               latency                default
pool0  objsetid              54                     -
pool0  dedup                 off                    default
pool0  mlslabel              none                   default
pool0  sync                  standard               default
pool0  dnodesize             legacy                 default
pool0  refcompressratio      1.00x                  -
pool0  written               32.0K                  -
pool0  logicalused           206K                   -
pool0  logicalreferenced     12.5K                  -
pool0  volmode               default                default
pool0  filesystem_limit      none                   default
pool0  snapshot_limit        none                   default
pool0  filesystem_count      none                   default
pool0  snapshot_count        none                   default
pool0  snapdev               hidden                 default
pool0  acltype               nfsv4                  default
pool0  context               none                   default
pool0  fscontext             none                   default
pool0  defcontext            none                   default
pool0  rootcontext           none                   default
pool0  relatime              off                    default
pool0  redundant_metadata    all                    default
pool0  overlay               on                     default
pool0  encryption            off                    default
pool0  keylocation           none                   default
pool0  keyformat             none                   default
pool0  pbkdf2iters           0                      default
pool0  special_small_blocks  0                      default
</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<p class="wp-block-paragraph">自分で設定が変えられる項目，変えられない項目がありますが，以下この並びに沿って解説を入れていきます．</p>



<h3 class="wp-block-heading"><span id="toc2">filesystem</span></h3>



<p class="wp-block-paragraph">値は filesystem，volume，snapshot，bookmark になります．<br>ここの値は zfs create で作成した種類が表示される項目になります．</p>



<h3 class="wp-block-heading"><span id="toc3">used</span></h3>



<p class="wp-block-paragraph">このデータセットとそのすべての配下のファイルシステムによって消費されている使用量です．<br>これは，データセットの割り当てと予約に対して反映される値となります．<br>used で表示される使用量には，このデータセット自身の予約は含まれませんが，配下のデータセットの予約は考慮されます．</p>



<p class="wp-block-paragraph">スナップショットの場合，使用済みスペース (zfsconcepts(7) の「スナップショット」セクションを参照) は、このスナップショットによって生じた差分が表示されます．<br>スナップショットが破棄されると，使用されていた領域が解放されます．</p>



<p class="wp-block-paragraph">used，available，referenced で表示される領域は保留中の変更は考慮されません．<br>保留中の変更は通常は数秒以内に反映されます．<br>fsync(2) または O_SYNC を使用してディスクに変更をコミットしても，スペース使用量情報がすぐに更新されることが保証されるわけではありません．</p>



<h3 class="wp-block-heading"><span id="toc4">available</span></h3>



<p class="wp-block-paragraph">プール内に他の影響要素がないことを前提とした，データセットとその配下のデータセットが利用できる空き領域の容量です．<br>スペースはプール内で共有されるため，プールサイズ，クォータ，予約，プール内のその他のデータセットなど，さまざまな要因によって空き容量が変化・制限される可能性があります．</p>



<p class="wp-block-paragraph">このプロパティは，短縮された列名 avail によって参照することもできます．</p>



<h3 class="wp-block-heading"><span id="toc5">referenced</span></h3>



<p class="wp-block-paragraph">このデータセットが参照されているデータの量です．<br>プール内の他のデータセットと共有される場合と共有されない場合があります．<br>スナップショットまたはクローンが作成されると，その内容は同一であるため，最初は作成元のファイル システムまたはスナップショットと同じ量のスペースを参照します．</p>



<h3 class="wp-block-heading"><span id="toc6">compressratio</span></h3>



<p class="wp-block-paragraph">このデータセットの使用スペースに対して反映されている圧縮率が乗数で表示されます．<br>使用されるプロパティには配下のデータセットが含まれますが，クローンの場合は元のスナップショットと共有されるスペースは含まれません．<br>スナップショットの場合，圧縮率は refcompressratio プロパティと同じになります．</p>



<p class="wp-block-paragraph">圧縮は，zfs set compression=on を実行することで有効ににできます．compression のデフォルト値は off です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc7">mounted</span></h3>



<p class="wp-block-paragraph">ファイル システムの場合，ファイルシステムが現在マウントされているかどうかを表しています．<br>このプロパティは，yes または no のいずれかになります．</p>



<h3 class="wp-block-heading"><span id="toc8">quota</span></h3>



<p class="wp-block-paragraph">値は size または none になります．</p>



<p class="wp-block-paragraph">データセットとその配下が利用できる領域を制限します．<br>このプロパティは，使用できる領域に厳しい制限を適用します．<br>これには，ファイルシステムやスナップショットなど，配下で消費されるすべての領域が含まれます．<br>すでにクォータが設定されているデータセットの配下にクォータを設定した場合，上位のクォータは上書きされず，配下のデータセットに追加の制限が課されます．</p>



<h3 class="wp-block-heading"><span id="toc9">reservation</span></h3>



<p class="wp-block-paragraph">値は size または none になります．</p>



<p class="wp-block-paragraph">データセットとその配下に対して保証される最小領域を設定できます．<br>使用されているデータ量がこの値を下回っている場合，データセットは予約で指定された領域を占有しているかのように扱われます．<br>予約は，親データセットの使用領域で考慮され，親データセットのクォータと予約に対してカウントされます．</p>



<p class="wp-block-paragraph">このプロパティは，短縮された列名 reserv によって参照することもできます．</p>



<h3 class="wp-block-heading"><span id="toc10">recordsize</span></h3>



<p class="wp-block-paragraph">値は size です．</p>



<p class="wp-block-paragraph">ファイルシステム内のファイルの推奨ブロックサイズを指定します．<br>このプロパティは，固定サイズのレコード内のファイルにアクセスするデータベース ワークロードでのみ使用するように設計されています．<br>ZFS は，一般的なアクセスパターンに最適化された内部アルゴリズムに従ってブロックサイズを自動的に調整します．</p>



<p class="wp-block-paragraph">データベースなどで非常に大きなファイルを作成するけど，それらのファイルにランダムな小さな塊でアクセスする場合，これらのアルゴリズムは最適ではない可能性があります．<br>データベースのレコードサイズ以上のレコード サイズを指定すると，パフォーマンスが大幅に向上する可能性があります．<br>このプロパティを汎用的なファイルシステムに使用することは推奨しません．パフォーマンスに悪影響を与える可能性があります．</p>



<p class="wp-block-paragraph">指定するサイズは，512 B 以上 128 KiB 以下の 2 のべき乗である必要があります．<br>プールで large_blocks 機能が有効になっている場合，1MiB まで設定することが可能です．<br>ZFS 機能フラグの詳細については，zpool-features(7) を参照してください．</p>



<p class="wp-block-paragraph">ファイルシステムのレコードサイズを変更すると，それ以降に作成されたファイルにのみ影響し，既存のファイルは影響を受けません．</p>



<p class="wp-block-paragraph">このプロパティは，短縮された列名 recsize によって参照することもできます．</p>



<h3 class="wp-block-heading"><span id="toc11">mountpoint</span></h3>



<p class="wp-block-paragraph">値は path，none，legacy です．</p>



<p class="wp-block-paragraph">ファイルシステムに使用されるマウントポイントを制御します．このプロパティの使用方法の詳細については，zfsconcepts(7) の「mountpoint」セクションを参照してください．</p>



<p class="wp-block-paragraph">ファイル システムのマウントポイントプロパティが変更されると，ファイルシステムとマウントポイントを継承するすべての配下のデータセットがアンマウントされます．<br>新しい値が legacy の場合，それらはアンマウントされたままになります．<br>それ以外の場合やプロパティが以前 legacy であった場合，またはプロパティが none だった場合は，新しい場所に自動的に再マウントされます．<br>さらに，共有ファイルシステムは共有解除されて新しい場所で共有されます．</p>



<p class="wp-block-paragraph">mountpoint プロパティを zfs set -u で設定すると，マウントポイントプロパティは更新されますが，データセットはマウントまたはアンマウントされずに以前の状態のままになります．</p>



<h3 class="wp-block-heading"><span id="toc12">sharenfs</span></h3>



<p class="wp-block-paragraph">値は on，off，オプション になります．</p>



<p class="wp-block-paragraph">ファイルシステムを NFS 経由で共有するかどうか，およびどのオプションを使用するかを制御します．</p>



<p class="wp-block-paragraph"><br>sharenfs プロパティーが off のファイルシステムで NFS 共有を行う場合は exportfs(8) コマンドと /etc/exports ファイル内のエントリーを使用して管理されます．<br>それ以外の場合，ファイルシステムは zfs share および zfs unshare コマンドを使用して自動的に共有および共有解除されます．<br>このプロパティが on に設定されている場合，データセットはデフォルトのオプション「sec=sys,rw,crossmnt,no_subtree_check」を使用して共有されます．</p>



<p class="wp-block-paragraph">オプションは，exports(5) にあるオプションとは異なり，カンマで区切られていることに注意してください．これは，引用符の必要性をなくし，スクリプトによる解析を容易にするために行われます．</p>



<p class="wp-block-paragraph">オプションの意味については，exports(5) を参照してください．</p>



<p class="wp-block-paragraph"><br>データセットの sharenfs プロパティが変更されると，そのプロパティが以前 off であった場合，またはプロパティが変更される前に共有されていた場合に限り，データセットとプロパティを継承するすべての配下が新しいオプションで再共有されます．<br>新しいプロパティが off の場合，ファイル システムの共有は解除されます．</p>



<p class="wp-block-paragraph">sharenfs プロパティを zfs set -u で更新すると，プロパティは目的の値に設定されますが，データセットを共有，再共有，または共有解除する操作は実行されません．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc13">checksum</span></h3>



<p class="wp-block-paragraph">値は on，off，fletcher2，fletcher4，sha256，noparity，sha512，skein，edonr です．</p>



<p class="wp-block-paragraph">データの整合性を検証するために使用されるチェックサムを制御します．<br>デフォルト値は on で、適切なアルゴリズム (現在は fletcher4) が自動的に選択されます．</p>



<p class="wp-block-paragraph">off にすると，ユーザーデータの整合性チェックを無効にします．</p>



<p class="wp-block-paragraph">noparity は，整合性を無効にするだけではなく，ユーザーデータのパリティの維持も無効にします．</p>



<p class="wp-block-paragraph">チェックサムを無効にすることはお勧めできません．</p>



<p class="wp-block-paragraph">sha512，skein，edonr チェックサムアルゴリズムでは，プールで適切な機能を有効にする必要があります．<br>また，現在 FreeBSD は edonr アルゴリズムをサポートしていません．</p>



<p class="wp-block-paragraph">これらのアルゴリズムの詳細については，zpool-features(7) を参照してください．<br>このプロパティを変更すると，新しく書き込まれたデータのみが影響を受けます．</p>



<h3 class="wp-block-heading"><span id="toc14">compression</span></h3>



<p class="wp-block-paragraph">値は on，off，gzip，gzip-N，lz4，lzjb，zle，zstd，zstd-N，zstd-fast，zstd-fast-N です．</p>



<p class="wp-block-paragraph">データセットに使用される圧縮アルゴリズムを制御します．</p>



<p class="wp-block-paragraph">圧縮を on に設定すると，現在のデフォルトの圧縮アルゴリズム (lzjb または lz4_compress が有効な場合は lz4) が使用されます．<br>デフォルトでは，圧縮率と圧縮速度と解凍速度のバランスが取れており，さまざまなワークロードで適切に動作すると予想されます．<br>このプロパティの他のすべての設定とは異なり，on では固定圧縮タイプが選択されません．<br>新しい圧縮アルゴリズムが ZFS に追加され，プールで有効になると，デフォルトの圧縮アルゴリズムが変更される可能性があります．<br>(したがって，on ではなく明示的にアルゴリズムを指定することを推奨します)</p>



<p class="wp-block-paragraph">lz4 圧縮アルゴリズムは、lzjb アルゴリズムに代わる高性能なアルゴリズムです．<br>lzjb よりも大幅に高速な圧縮と圧縮解除，および適度に高い圧縮率を備えています．<br>lz4_compress 機能が有効に設定されているプールでのみ使用できます．<br>ZFS 機能フラグと lz4_compress 機能の詳細については，zpool-features(7) を参照してください</p>



<p class="wp-block-paragraph">lzjb 圧縮アルゴリズムは，適切なデータ圧縮を提供しながらパフォーマンスが最適化されています</p>



<p class="wp-block-paragraph">gzip 圧縮アルゴリズムは，gzip(1) コマンドと同じ圧縮を使用します．<br>gzip レベルは，値 gzip-N を使用して指定できます．N は 1 (最速) から 9 (最高の圧縮率) までの整数です．<br>現在，gzip を選択すると gzip-6 を設定した事と同義となります．</p>



<p class="wp-block-paragraph">zstd 圧縮アルゴリズムは，高い圧縮率と優れたパフォーマンスの両方を提供します．<br>zstd-N を使用して zstd レベルを指定できます．N は 1 (最速) から 19 (最高の圧縮率) までの整数です．<br>zstd を選択した場合，zstd-3 を指定したのと同義となります．</p>



<p class="wp-block-paragraph">マイナスの zstd レベルを設定すると，圧縮率を犠牲にして高速化を要求できます．<br>これは，zstd-fast-N を使用して行われます。N は，マイナスの zstd レベルにマッピングされる [1-9,10,20,30,…,100,500,1000] の整数です．<br>レベルが低いほど圧縮速度が速くなります．-1000 は最も速い圧縮と最も低い圧縮率を提供します．<br>zstd-fast を設定した場合，zstd-fast-1 と同義です．</p>



<p class="wp-block-paragraph">zle 圧縮アルゴリズムは，ゼロの連続を圧縮します．</p>



<p class="wp-block-paragraph">このプロパティは，短縮された列名 compress によって参照することもできます．<br>このプロパティを変更すると，新しく書き込まれたデータのみが影響を受けます．</p>



<p class="wp-block-paragraph">圧縮されるブロックは，圧縮後の元のサイズの 7/8 以下にならない場合，圧縮する価値があるとみなされず，ブロックは圧縮されずに保存されます．<br>論理ブロックがディスク セクターサイズの 8 倍未満の場合，必要な圧縮率が効果的に低下することに注意してください．<br>たとえば，4kB ディスク セクターを持つディスク上の 8kB ブロックは，元のサイズの 1/2 以下に圧縮する必要があります．</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">以上，長くなったので次回へ続きます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Wed, 27 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1166</guid>

					<description><![CDATA[今回は ZFS の大きな特徴の一つである，重複排除にフォーカスしたいと思います．ZFS はファイルシステム (ZVOLも) の重複排除が利用できます．これによってストレージ利用量の削減が見込めます． 目次 重複排除とは重 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回は ZFS の大きな特徴の一つである，重複排除にフォーカスしたいと思います．<br>ZFS はファイルシステム (ZVOLも) の重複排除が利用できます．<br>これによってストレージ利用量の削減が見込めます．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">重複排除とは</a><ol><li><a href="#toc2" tabindex="0">重複排除の有効化</a></li><li><a href="#toc3" tabindex="0">重複排除の効果</a></li></ol></li><li><a href="#toc4" tabindex="0">重複排除と圧縮の両方を有効にする</a><ol><li><a href="#toc5" tabindex="0">重複排除と圧縮の効果</a></li></ol></li><li><a href="#toc6" tabindex="0">大事な注意点</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">重複排除とは</span></h2>



<p class="wp-block-paragraph">重複排除は，同一のデータが複数あった場合，ストレージ上には一つのデータのみを保持し，各データへのポインターを持つことでストレージ容量の節約をはかる技術です．</p>



<p class="wp-block-paragraph">以下の図としては同じファイルが複数のフォルダーにあるイメージですが，実際としてはファイルの比較ではなく，ファイル内のデータを比較して重複排除の対象となります．</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="368" height="184" src="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-60.png" alt="" class="wp-image-1167" srcset="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-60.png 368w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-60-300x150.png 300w" sizes="(max-width: 368px) 100vw, 368px" /></figure>



<h3 class="wp-block-heading"><span id="toc2">重複排除の有効化</span></h3>



<p class="wp-block-paragraph">ZFS の重複排除の有効化はファイルシステム/ZVOL 単位で zfs set で実施可能です．<br>以下は新規のファイルシステムを作成，そのファイルシステムに重複排除を有効化させる手順となります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/dedup

# zfs set dedup=on pool0/dedup

# zfs get dedup pool0/dedup
NAME         PROPERTY  VALUE          SOURCE
pool0/dedup  dedup     on             local</pre>



<h3 class="wp-block-heading"><span id="toc3">重複排除の効果</span></h3>



<p class="wp-block-paragraph">重複排除の効果を測定するため，圧縮の際と同様に FreeBSD のソースコードを展開して状況を見てみたいと思います．<br>/pool0/dedup が作成されましたのでサブディレクトリーを作成して，その中にソースコードを展開し，使用量や重複排除の結果を確認してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># mkdir /pool0/dedup/src1
# cd /pool0/dedup/src1
# tar jxf /root/src_stable_13.tar.xz

# df -H /pool0/dedup
Filesystem     Size    Used   Avail Capacity  Mounted on
pool0/dedup    412G    1.4G    410G     0%    /pool0/dedup</pre>



<p class="wp-block-paragraph">df の結果は本来の使用量が表示されます．重複排除の状態を確認するには zpool list コマンドを用いて確認となります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool list pool0
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
pool0   596G  2.02G   594G        -         -     0%     0%  1.01x    ONLINE  -</pre>



<p class="wp-block-paragraph">1.01x が現状の効果となり，ソースコードを1回展開した場合は 1% 程重複排除が効いている状態となります．</p>



<p class="wp-block-paragraph">もう一度ソースコードを展開して，再度状況を確認してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># mkdir /pool0/dedup/src2
# cd /pool0/dedup/src2
# tar jxf /root/src_stable_13.tar.xz

# df -H /pool0/dedup
Filesystem     Size    Used   Avail Capacity  Mounted on
pool0/dedup    413G    2.9G    410G     1%    /pool0/dedup

# zpool list pool0
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
pool0   596G  2.08G   594G        -         -     0%     0%  2.02x    ONLINE  -</pre>



<p class="wp-block-paragraph">いかがでしょうか．2.02x となり，まるっと重複排除対象として扱われている事が判ります．1.4GB 程展開してデータは増えていますが，FREE の値に変化がないためしっかりと効いている事が確認できます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc4">重複排除と圧縮の両方を有効にする</span></h2>



<p class="wp-block-paragraph">重複排除と圧縮は排他ではなく，両方を有効にすることができます．<br>ZSTD も有効にした形でどのような効果があるかを確認してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/dedup-zstd

# zfs set dedup=on pool0/dedup-zstd
# zfs set compression=zstd pool0/dedup-zstd

# zfs get dedup pool0/dedup-zstd
NAME              PROPERTY  VALUE          SOURCE
pool0/dedup-zstd  dedup     on             local

# zfs get compression pool0/dedup-zstd
NAME              PROPERTY     VALUE           SOURCE
pool0/dedup-zstd  compression  zstd            local</pre>



<h3 class="wp-block-heading"><span id="toc5">重複排除と圧縮の効果</span></h3>



<p class="wp-block-paragraph">重複排除と圧縮の効果を測定するため，先ほどと同様に FreeBSD のソースコードを展開して状況を見てみたいと思います．<br>/pool0/dedup-zstd が作成されましたのでサブディレクトリーを作成して，その中にソースコードを展開し，使用量や重複排除の結果を確認してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># mkdir /pool0/dedup-zstd/src1
# cd /pool0/dedup-zstd/src1
# tar jxf /root/src_stable_13.tar.xz

# df -H /pool0/dedup-zstd/src1
Filesystem          Size    Used   Avail Capacity  Mounted on
pool0/dedup-zstd    410G    444M    410G     0%    /pool0/dedup-zstd</pre>



<p class="wp-block-paragraph">Used が 先が 1.4G で今回が 444M ですので，まず圧縮が効いている事が確認できます．<br>zfs get と zpool list で ZFS としてどのように見えているのかを確認します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get compressratio pool0/dedup-zstd
NAME              PROPERTY       VALUE  SOURCE
pool0/dedup-zstd  compressratio  3.44x  -

# zpool list pool0
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
pool0   596G  2.79G   593G        -         -     0%     0%  1.01x    ONLINE  -</pre>



<p class="wp-block-paragraph">圧縮が行われつつ，重複排除も効いている事が確認できました．<br>追加でソースコードを展開して変化を見てみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># mkdir /pool0/dedup-zstd/src2
# cd /pool0/dedup-zstd/src2
# tar jxf /root/src_stable_13.tar.xz

# df -H /pool0/dedup-zstd/src1
Filesystem          Size    Used   Avail Capacity  Mounted on
pool0/dedup-zstd    412G    889M    411G     0%    /pool0/dedup-zstd

# zpool list pool0
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
pool0   596G   758M   595G        -         -     0%     0%  2.03x    ONLINE  -</pre>



<p class="wp-block-paragraph">圧縮が効いているため，444M が二つ分となっています．<br>DEDUP が 2.03x ですのでまるっと重複排除対象になっています．また，圧縮が効いている効果で FREE の値が2回目が増えている状況です．</p>



<p class="wp-block-paragraph">このように，両方を有効にすることでよりストレージの使用量を節約する事が可能です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc6">大事な注意点</span></h2>



<p class="wp-block-paragraph">このように非常に効果が見込まれる重複排除ですが，メモリーを大量に必要とする点を注意する必要があります．<br>大まかにですが，1TB の領域あたり，1GB のメモリーを使用します．これが不足する状況だとパフォーマンスが大きく劣化する事や重複排除自体の障害を引き起こす可能性があります．</p>



<p class="wp-block-paragraph">したがって，4TB の領域がある場合，ARC の容量も含めてで ZFS に対して 8GB 程のメモリーを搭載している事が望ましいと考えられます．</p>



<p class="wp-block-paragraph">実利用にあたっては，よくテストを行ったうえで利用する事をお勧めします．<br>実際に筆者環境においてはメモリー不足でトラブルとなった為頑張って無効のファイルシステムにデータを移行した経緯があります&#8230;<br>今はメモリーも十分なファイルサーバーとなったので改めて利用チャレンジを考えている所です．</p>



<p class="wp-block-paragraph">以上，ZFS の重複排除の紹介でした．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – キャッシュを構成・設定する</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Mon, 25 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1129</guid>

					<description><![CDATA[今回は「FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する」で説明した ARC の設定，L2ARC および SLOG デバイスの構成を実施します． 目次 ARC の設定L2ARC の設定S [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回は「<a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a>」で説明した ARC の設定，L2ARC および SLOG デバイスの構成を実施します．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ARC の設定</a></li><li><a href="#toc2" tabindex="0">L2ARC の設定</a></li><li><a href="#toc3" tabindex="0">SLOG の設定</a></li><li><a href="#toc4" tabindex="0">利用状況を確認する</a><ol><li><a href="#toc5" tabindex="0">zfs iostat で確認する</a></li><li><a href="#toc6" tabindex="0">zfs-stats パッケージを利用する</a><ol><li><a href="#toc7" tabindex="0">zfs-mon</a></li><li><a href="#toc8" tabindex="0">zfs-stats</a><ol><li><a href="#toc9" tabindex="0">-A : ARC summary</a></li><li><a href="#toc10" tabindex="0">-E : ARC efficiency</a></li><li><a href="#toc11" tabindex="0">-L : L2 ARC statistics</a></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ARC の設定</span></h2>



<p class="wp-block-paragraph">ARC はデフォルトで搭載メモリ -1G が最大値となっています．ですので，他のサービスを動作させようとする場合，ARC にメモリが持っていかれて他サービス側に影響を及ぼすことがあります．</p>



<p class="wp-block-paragraph">したがって，ARC に割り当てる最大値を明示的に設定する事をお勧めします．</p>



<p class="wp-block-paragraph">sysctl の該当のノブ名およびデフォルトの値は次のとおりです．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># sysctl vfs.zfs.arc_max
vfs.zfs.arc_max: 0</pre>



<p class="wp-block-paragraph">最大値を設定する際，バイト単位で値を入力します．昔は M などの単位も使えたのですが今は次のとおりの結果となります．例は3G を最大値に指定しようとした場合です．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># sysctl vfs.zfs.arc_max=3072M
sysctl: invalid unsigned long '3072M'</pre>



<p class="wp-block-paragraph">ですので，バイト単位の値で設定する必要があります．3G をバイトになおすと 3221225472 ですので，これで設定してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># sysctl vfs.zfs.arc_max=3221225472
vfs.zfs.arc_max: 0 -> 3221225472</pre>



<p class="wp-block-paragraph">この通り，0 から値が変更されました．</p>



<p class="wp-block-paragraph">再起動後も設定を反映させるために /boot/loader.conf にも追記しましょう．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cat /boot/loader.conf
vfs.zfs.arc_max=3221225472</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc2">L2ARC の設定</span></h2>



<p class="wp-block-paragraph">SSD/NVMe デバイスを L2ARC として設定したい場合，方法は二通りあります．プールの作成時に指定するか後から追加するかです．結果に違いはありません．</p>



<p class="wp-block-paragraph">今回はすでにあるプール pool0 に対して L2ARC を追加してみます．わかりやすさで NVMe デバイスを搭載，指定しています．</p>



<p class="wp-block-paragraph">まずは現状のプールの状態を確認します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool status pool0
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            da1     ONLINE       0     0     0
            da2     ONLINE       0     0     0
            da3     ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            da4     ONLINE       0     0     0
            da5     ONLINE       0     0     0
            da6     ONLINE       0     0     0

errors: No known data errors</pre>



<p class="wp-block-paragraph">これに L2ARC のキャッシュデバイスを追加してステータスを確認します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool add pool0 cache nvd0

# zpool status pool0
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            da1     ONLINE       0     0     0
            da2     ONLINE       0     0     0
            da3     ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            da4     ONLINE       0     0     0
            da5     ONLINE       0     0     0
            da6     ONLINE       0     0     0
        cache
          nvd0      ONLINE       0     0     0</pre>



<p class="wp-block-paragraph">L2ARC は「<a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a>」で解説している通りデバイスのロストによる影響はありませんので，mirror として組み込む意義はありません．キャッシュ用として二つの SSD/NVMe デバイスを持っている場合はもう一つ素直に追加して容量を増やす事の方が有意義です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc3">SLOG の設定</span></h2>



<p class="wp-block-paragraph">SLOG も SSD/NVMe デバイスを設定したい場合，方法は二通りあります．プールの作成時に指定するか後から追加するかです．結果に違いはありません．</p>



<p class="wp-block-paragraph">上記のプールの状態の所に単体の SLOG デバイスを追加する場合は次のとおりになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool add pool0 log nvd1

# zpool status pool0
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            da1     ONLINE       0     0     0
            da2     ONLINE       0     0     0
            da3     ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            da4     ONLINE       0     0     0
            da5     ONLINE       0     0     0
            da6     ONLINE       0     0     0
        logs
          nvd1      ONLINE       0     0     0
        cache
          nvd0      ONLINE       0     0     0
</pre>



<p class="wp-block-paragraph">SLOG デバイスは同期書き込み時のバッファーとして利用される事から，このデバイスがロストするとハードディスクに反映前のデータが失われる事になります．その為，L2ARC と違い SLOG はミラーで構成する事が望ましいです．</p>



<p class="wp-block-paragraph">一度単体ドライブとして追加している SLOG を削除，ミラーで追加する．ということを実施してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool remove pool0 nvd1

# zpool status pool0
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            da1     ONLINE       0     0     0
            da2     ONLINE       0     0     0
            da3     ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            da4     ONLINE       0     0     0
            da5     ONLINE       0     0     0
            da6     ONLINE       0     0     0
        cache
          nvd0      ONLINE       0     0     0

# zpool add pool0 log mirror nvd1 nvd2

# zpool status pool0
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            da1     ONLINE       0     0     0
            da2     ONLINE       0     0     0
            da3     ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            da4     ONLINE       0     0     0
            da5     ONLINE       0     0     0
            da6     ONLINE       0     0     0
        logs
          mirror-5  ONLINE       0     0     0
            nvd1    ONLINE       0     0     0
            nvd2    ONLINE       0     0     0
        cache
          nvd0      ONLINE       0     0     0</pre>



<p class="wp-block-paragraph">logs の所が mirror として表示されており，ミラー化されている事が確認できます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc4">利用状況を確認する</span></h2>



<h3 class="wp-block-heading"><span id="toc5">zfs iostat で確認する</span></h3>



<p class="wp-block-paragraph">L2ARC および SLOG の利用状況を確認するには，一番手っ取り早い方法が zpool iostat コマンドでの確認になります．次のとおり -v を付ける事で各デバイスの IO 状況，L2ARC や SLOG であれば使用状況も出力する事ができます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool iostat pool0
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
pool0       14.7G   581G      0     13  17.4K  69.6K
root@bsd13-1:~ # zpool iostat -v pool0
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
pool0       14.7G   581G      0     13  17.3K  69.4K
  raidz1-0  7.34G   291G      0      6  8.51K  31.9K
    da1         -      -      0      2  2.86K  10.6K
    da2         -      -      0      2  2.86K  10.6K
    da3         -      -      0      2  2.78K  10.6K
  raidz1-1  7.35G   291G      0      6  8.16K  31.0K
    da4         -      -      0      2  2.72K  10.3K
    da5         -      -      0      2  2.74K  10.3K
    da6         -      -      0      2  2.70K  10.3K
logs            -      -      -      -      -      -
  mirror-5      0  19.5G      0      0  2.97K  28.4K
    nvd1        -      -      0      0  2.83K  14.2K
    nvd2        -      -      0      0    147  14.2K
cache           -      -      -      -      -      -
  nvd0       176K  20.0G      0      0  2.12K  1.00K
----------  -----  -----  -----  -----  -----  -----
</pre>



<p class="wp-block-paragraph">zpool iostat は iostat 同様に引数に数字を付ける事で n秒毎の状況を確認する事が可能です．<br>その場合，iostat 同様に最初の出力は無視して，二つ目以降の値を見ていくのが良いです．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool iostat -v pool0 5
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
pool0       14.7G   581G      0     11  14.1K  56.5K
  raidz1-0  7.34G   291G      0      5  6.94K  26.0K
    da1         -      -      0      1  2.33K  8.66K
    da2         -      -      0      1  2.33K  8.67K
    da3         -      -      0      1  2.27K  8.66K
  raidz1-1  7.35G   291G      0      5  6.65K  25.3K
    da4         -      -      0      1  2.21K  8.43K
    da5         -      -      0      1  2.23K  8.43K
    da6         -      -      0      1  2.20K  8.43K
logs            -      -      -      -      -      -
  mirror-5      0  19.5G      0      0  1.48K  14.2K
    nvd1        -      -      0      0  1.41K  7.10K
    nvd2        -      -      0      0     73  7.10K
cache           -      -      -      -      -      -
  nvd0       176K  20.0G      0      0  1.21K    587
----------  -----  -----  -----  -----  -----  -----
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
pool0       14.7G   581G      0      0      0      0
  raidz1-0  7.34G   291G      0      0      0      0
    da1         -      -      0      0      0      0
    da2         -      -      0      0      0      0
    da3         -      -      0      0      0      0
  raidz1-1  7.35G   291G      0      0      0      0
    da4         -      -      0      0      0      0
    da5         -      -      0      0      0      0
    da6         -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror-5      0  19.5G      0      0      0      0
    nvd1        -      -      0      0      0      0
    nvd2        -      -      0      0      0      0
cache           -      -      -      -      -      -
  nvd0       176K  20.0G      0      0      0      0
----------  -----  -----  -----  -----  -----  -----
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
pool0       14.7G   581G      0      0      0      0
  raidz1-0  7.34G   291G      0      0      0      0
    da1         -      -      0      0      0      0
    da2         -      -      0      0      0      0
    da3         -      -      0      0      0      0
  raidz1-1  7.35G   291G      0      0      0      0
    da4         -      -      0      0      0      0
    da5         -      -      0      0      0      0
    da6         -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror-5      0  19.5G      0      0      0      0
    nvd1        -      -      0      0      0      0
    nvd2        -      -      0      0      0      0
cache           -      -      -      -      -      -
  nvd0       176K  20.0G      0      0      0      0
----------  -----  -----  -----  -----  -----  -----</pre>



<h3 class="wp-block-heading"><span id="toc6">zfs-stats パッケージを利用する</span></h3>



<p class="wp-block-paragraph">別の方法として zfs-stats パッケージを利用する方法があります．</p>



<p class="wp-block-paragraph">パッケージは pkg install コマンドで簡単にインストールする事ができます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># pkg install zfs-stats
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        perl5: 5.34.3_3
        zfs-stats: 1.3.2

Number of packages to be installed: 2

The process will require 61 MiB more space.
15 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/2] Fetching zfs-stats-1.3.2.pkg: 100%   10 KiB  10.3kB/s    00:01
[2/2] Fetching perl5-5.34.3_3.pkg: 100%   15 MiB  15.2MB/s    00:01
Checking integrity... done (0 conflicting)
[1/2] Installing perl5-5.34.3_3...
[1/2] Extracting perl5-5.34.3_3: 100%
[2/2] Installing zfs-stats-1.3.2...
[2/2] Extracting zfs-stats-1.3.2: 100%
</pre>



<h4 class="wp-block-heading"><span id="toc7">zfs-mon</span></h4>



<p class="wp-block-paragraph">zfs-mon プログラムは，ARC の状況をリアルタイムに表示するプログラムです．</p>



<p class="wp-block-paragraph">以下のとおり -a オプションで全てを表示になり，キャッシュヒット・キャッシュミスの状態も含めて表示してくれます．<br>停止は Ctrl+C で止める事になります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs-mon -a

ZFS real-time cache activity monitor
Seconds elapsed:   3

Cache hits and misses:
                1s    10s    60s    tot
   ARC hits:     0      1      1      1
 ARC misses:     0      0      0      0

Cache efficiency percentage:
        10s    60s    tot
ARC: 100.00 100.00 100.00</pre>



<h4 class="wp-block-heading"><span id="toc8">zfs-stats</span></h4>



<p class="wp-block-paragraph">zfs-stats プログラムは，起動後からの ARC などの利用状況をサマリーとして出力してくれるプログラムです．</p>



<p class="wp-block-paragraph">-a オプションで全部表示できますが，500行くらいになります．-A オプションで ARC のサマリーを，-E オプションで ARC のキャッシュ利用状況を．また，-L オプションで L2ARC のステータスを表示できますので，通常はこちらの三つのオプションを利用するのが良いと思います．</p>



<h5 class="wp-block-heading"><span id="toc9">-A : ARC summary</span></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs-stats -A

------------------------------------------------------------------------
ZFS Subsystem Report                            Mon Dec 25 22:21:53 2023
------------------------------------------------------------------------

ARC Summary: (HEALTHY)
        Memory Throttle Count:                  0

ARC Misc:
        Deleted:                                29
        Mutex Misses:                           0
        Evict Skips:                            3

ARC Size:                               0.44%   13.53   MiB
        Target Size: (Adaptive)         4.13%   126.89  MiB
        Min Size (Hard Limit):          4.13%   126.89  MiB
        Max Size (High Water):          24:1    3.00    GiB
        Compressed Data Size:                   685.00  KiB
        Decompressed Data Size:                 24.96   MiB
        Compression Factor:                     37.32

ARC Size Breakdown:
        Recently Used Cache Size:       50.00%  63.44   MiB
        Frequently Used Cache Size:     50.00%  63.44   MiB

ARC Hash Breakdown:
        Elements Max:                           338
        Elements Current:               100.00% 338
        Collisions:                             0
        Chain Max:                              0
        Chains:                                 0

------------------------------------------------------------------------</pre>



<h5 class="wp-block-heading"><span id="toc10">-E : ARC efficiency</span></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs-stats -E

------------------------------------------------------------------------
ZFS Subsystem Report                            Mon Dec 25 22:22:30 2023
------------------------------------------------------------------------

ARC Efficiency:                                 37.71   k
        Cache Hit Ratio:                99.10%  37.37   k
        Cache Miss Ratio:               0.90%   340
        Actual Hit Ratio:               98.96%  37.32   k

        Data Demand Efficiency:         100.00% 0

        CACHE HITS BY CACHE LIST:
          Anonymously Used:             0.14%   53
          Most Recently Used:           41.32%  15.44   k
          Most Frequently Used:         58.54%  21.88   k
          Most Recently Used Ghost:     0.00%   0
          Most Frequently Used Ghost:   0.00%   0

        CACHE HITS BY DATA TYPE:
          Demand Data:                  0.00%   0
          Prefetch Data:                0.00%   0
          Demand Metadata:              99.86%  37.32   k
          Prefetch Metadata:            0.14%   53

        CACHE MISSES BY DATA TYPE:
          Demand Data:                  0.00%   0
          Prefetch Data:                0.00%   0
          Demand Metadata:              78.82%  268
          Prefetch Metadata:            21.18%  72

------------------------------------------------------------------------</pre>



<h5 class="wp-block-heading"><span id="toc11">-L : L2 ARC statistics</span></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs-stats -L

------------------------------------------------------------------------
ZFS Subsystem Report                            Mon Dec 25 22:23:02 2023
------------------------------------------------------------------------

L2 ARC Summary: (HEALTHY)
        Low Memory Aborts:                      0
        Free on Write:                          0
        R/W Clashes:                            0
        Bad Checksums:                          0
        IO Errors:                              0

L2 ARC Size: (Adaptive)                         175.50  KiB
        Decompressed Data Size:                 9.10    MiB
        Compression Factor:                     53.10
        Header Size:                    0.00%   0       Bytes

L2 ARC Breakdown:                               241
        Hit Ratio:                      0.00%   0
        Miss Ratio:                     100.00% 241
        Feeds:                                  1.58    k

L2 ARC Writes:
        Writes Sent:                    100.00% 42

------------------------------------------------------------------------</pre>



<p class="wp-block-paragraph">負荷のかかってない状態で実施しているため変化がほぼ無い結果の出力で申し訳ありませんが，操作および表示については理解できるかと思います．</p>



<p class="wp-block-paragraph">今回は以上としまして，次は重複排除について触れたいと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Sun, 24 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1121</guid>

					<description><![CDATA[今回は ZFS のキャッシュについて説明します．ZFS は読み取り用の一次キャッシュとしてメモリーを利用します．そのほか、二次キャッシュとして高速なディスク (SSD や NVMe など) を指定する事が可能です．そもそ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回は ZFS のキャッシュについて説明します．<br>ZFS は読み取り用の一次キャッシュとしてメモリーを利用します．そのほか、二次キャッシュとして高速なディスク (SSD や NVMe など) を指定する事が可能です．<br>そもそもの動作から説明を行っていきます．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ZFS のキャッシュの動作について</a><ol><li><a href="#toc2" tabindex="0">単純なプール構成の場合</a><ol><li><a href="#toc3" tabindex="0">書き込み時</a></li><li><a href="#toc4" tabindex="0">読み取り時</a></li></ol></li><li><a href="#toc5" tabindex="0">L2 ARC キャッシュを搭載したプールの場合</a><ol><li><a href="#toc6" tabindex="0">書き込み時</a></li><li><a href="#toc7" tabindex="0">読み取り時</a></li></ol></li><li><a href="#toc8" tabindex="0">SLOG を搭載したプールの場合</a><ol><li><a href="#toc9" tabindex="0">書き込み時</a></li><li><a href="#toc10" tabindex="0">読み取り時</a></li></ol></li></ol></li><li><a href="#toc11" tabindex="0">もっと細かい話</a><ol><li><a href="#toc12" tabindex="0">書き込み</a><ol><li><a href="#toc13" tabindex="0">非同期書き込み</a></li><li><a href="#toc14" tabindex="0">同期書き込み SLOG が無い場合</a></li><li><a href="#toc15" tabindex="0">SLOG を使用した同期書き込み</a></li><li><a href="#toc16" tabindex="0">SLOG はパフォーマンスにどの程度貢献するのか</a></li><li><a href="#toc17" tabindex="0">読み取り</a></li><li><a href="#toc18" tabindex="0">ARC</a></li><li><a href="#toc19" tabindex="0">L2ARC</a></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ZFS のキャッシュの動作について</span></h2>



<h3 class="wp-block-heading"><span id="toc2">単純なプール構成の場合</span></h3>



<p class="wp-block-paragraph">ZFS はキャッシュの構成も様々な構成をとる事が可能です．まずは，メモリーとディスクだけの単純なプールの場合のキャッシュ動作について解説します．</p>



<p class="wp-block-paragraph">一番単純な構成の場合の状態がこの絵の形となります．</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="427" height="232" src="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-57.png" alt="" class="wp-image-1122" srcset="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-57.png 427w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-57-300x163.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></figure>



<p class="wp-block-paragraph">初めて出る単語があるのでまずはその説明を行います．</p>



<ul class="wp-block-list">
<li>ARC (Adaptive Replacement Cache)<br>最近アクセスされたファイルや頻繁にアクセスされているファイルをキャッシュし，読み取り要求時にディスクアクセスを抑制しメモリーから応答を返すためのキャッシュ領域</li>



<li>ZIL (ZFS Intent Log)<br>ディスクにデータを書き込む際のバッファー領域 (正確にはバッファーではないですが，この理解の方が分かりやすいと思います)</li>
</ul>



<h4 class="wp-block-heading"><span id="toc3">書き込み時</span></h4>



<p class="wp-block-paragraph">ARC は読み取りキャッシュとして動作します．書き込みキャッシュにはなりません．<br>書き込み時，いったん ZIL 領域に書き込みが行われ，データをトランザクショングループに纏めたのちに実際のデータとしてディスクに書き込みます．<br>なお，ZIL 領域はプールの一部を利用していますので，プール内のディスクから見たら2回の書き込み動作が発生するディスク群が生じます．</p>



<h4 class="wp-block-heading"><span id="toc4">読み取り時</span></h4>



<p class="wp-block-paragraph">読み取りの要求が来た際，まずは  ARC 内にデータがあるか確認されます．ARC 内にデータがある場合はディスクへの読み取り要求を行わずに ARC 内のデータを返して終了します．<br>ARC 内にデータがない場合はディスクから読み取りデータを返します．</p>



<p class="wp-block-paragraph">また，そのデータは ARC にキャッシュされ，次にアクセスがあった際は ARC から返される事になります．しばらくアクセスが行われないファイルの場合は ARC からドロップされます．その場合はディスクから読み取る事が必要になります．</p>



<h3 class="wp-block-heading"><span id="toc5">L2 ARC キャッシュを搭載したプールの場合</span></h3>



<p class="wp-block-paragraph">ZFS はメモリーとストレージプールの間に高速なディスク (通常は SSD や NVMe など) をキャッシュ層として追加する事が可能です．</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="427" height="343" src="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-58.png" alt="" class="wp-image-1123" srcset="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-58.png 427w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-58-300x241.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></figure>



<p class="wp-block-paragraph">初めて出る単語があるのでまずはその説明を行います．</p>



<ul class="wp-block-list">
<li>L2ARC (Layer2 Adaptive Replacement Cache)<br>SSD や NVMe で構成する二次キャッシュ ARC から溢れたキャッシュデータが格納される</li>
</ul>



<h4 class="wp-block-heading"><span id="toc6">書き込み時</span></h4>



<p class="wp-block-paragraph">ARC/L2ARC 共に読み取りキャッシュとして動作します．書き込みキャッシュにはなりません．<br>書き込み時，いったん ZIL 領域に書き込みが行われ，データをトランザクショングループに纏めたのちに実際のデータとしてディスクに書き込みます．<br>なお，ZIL 領域はプールの一部を利用していますので，プール内のディスクから見たら2回の書き込み動作が発生するディスク群が生じます．<br>(ですので，書き込み時の動作に変更はありません)</p>



<h4 class="wp-block-heading"><span id="toc7">読み取り時</span></h4>



<p class="wp-block-paragraph">読み取りの要求が来た際，まずは  ARC 内にデータがあるか確認されます．ARC 内にデータがある場合はディスクへの読み取り要求を行わずに ARC 内のデータを返して終了します．<br>ARC 内にデータがない場合は L2ARC 内にデータがあるか確認されます．L2ARC 内にデータがある場合はディスクへの読み取り要求を行わずに L2ARC 内のデータを返して終了します．<br>いずれも失敗した場合はディスクから読み取りデータを返します．</p>



<p class="wp-block-paragraph">また，そのデータは ARC にキャッシュされ，次にアクセスがあった際は ARC から返される事になります．しばらくアクセスが行われないファイルの場合は ARC から L2ARC に移動されます．<br>L2ARC 内のデータも ARC 同様にしばらくアクセスがないファイルはキャッシュから削除されます．</p>



<h3 class="wp-block-heading"><span id="toc8">SLOG を搭載したプールの場合</span></h3>



<p class="wp-block-paragraph">ZFS はストレージプール内にある ZIL の手前に高速なディスク (通常は SSD や NVMe など) をバッファー層として追加する事が可能です．</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="427" height="343" src="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-59.png" alt="" class="wp-image-1124" srcset="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-59.png 427w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-59-300x241.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></figure>



<p class="wp-block-paragraph">初めて出る単語があるのでまずはその説明を行います．</p>



<ul class="wp-block-list">
<li>SLOG (Secondary LOG)<br>ZIL の替わりになるバッファー層のディスク領域で，書き込み時のトランザクショングループを纏めるまでのバッファー層となる</li>
</ul>



<h4 class="wp-block-heading"><span id="toc9">書き込み時</span></h4>



<p class="wp-block-paragraph">ARC/L2ARC 共に読み取りキャッシュとして動作します．書き込みキャッシュにはなりません．<br>SLOG がある場合，ZIL は SLOG 内に内包 (統合) されます．<br>書き込み時，いったん SLOG 領域に書き込みが行われ，データをトランザクショングループに纏めたのちに実際のデータとしてディスクに書き込みます．<br>ZIL 領域は SLOG 内に内包され，プールの中には存在しない事になりますので，プール内のディスクから見たら1回の書き込み動作で完了する事になり，書き込み性能の向上が見込めます．<br></p>



<h4 class="wp-block-heading"><span id="toc10">読み取り時</span></h4>



<p class="wp-block-paragraph">読み取りの要求が来た際，まずは  ARC 内にデータがあるか確認されます．ARC 内にデータがある場合はディスクへの読み取り要求を行わずに ARC 内のデータを返して終了します．<br>ARC 内にデータがない場合は L2ARC 内にデータがあるか確認されます．L2ARC 内にデータがある場合はディスクへの読み取り要求を行わずに L2ARC 内のデータを返して終了します．<br>いずれも失敗した場合はディスクから読み取りデータを返します．</p>



<p class="wp-block-paragraph">また，そのデータは ARC にキャッシュされ，次にアクセスがあった際は ARC から返される事になります．しばらくアクセスが行われないファイルの場合は ARC から L2ARC に移動されます．<br>L2ARC 内のデータも ARC 同様にしばらくアクセスがないファイルはキャッシュから削除されます．<br>(ここは先と変化はありません)</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc11">もっと細かい話</span></h2>




<a rel="noopener" href="https://www.45drives.com/community/articles/zfs-caching/" title="ZFS Caching " class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/cocoon-resources/blog-card-cache/c98070f8f59468bcd88d486f37bf76be.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ZFS Caching </div><div class="blogcard-snippet external-blogcard-snippet">ZFS is an advanced file system that offers many beneficial features such as pooled storage, data scrubbing, capacity and...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.45drives.com/community/articles/zfs-caching/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.45drives.com</div></div></div></div></a> の和訳です．</p>



<p class="wp-block-paragraph">ZFS は，プール化されたストレージ，データ スクラビング，圧縮や重複排除など，多くの有益な機能を提供する高度なファイルシステムです．<br>ですが，ZFS の最も有益な機能の一つは，読み取りと書き込みをキャッシュする方法です．<br>ZFS はメモリーを使用してデータを階層的にキャッシュします．</p>



<p class="wp-block-paragraph">ZFS のキャッシュの一番目のレベルは ARC です．ARC 内のすべての領域が使用されると ZFS は最新の頻繁に使用されたデータを L2ARC に配置します．</p>



<p class="wp-block-paragraph">ARC と L2ARC，ZIL および SLOG はそれぞれが実際にどのような役割を果たすのかについて各方面で説明にブレがあり混乱を生じさせています．</p>



<p class="wp-block-paragraph">ARC，L2ARC は読み取りキャッシュです．これらは，システムがデータを見つける必要があるたびに低速なディスクへのアクセスを行う必要がないようにサーバーでの読み取りを高速化するために存在します．</p>



<p class="wp-block-paragraph">書き込みの場合，ZIL はあくまでもログであり、別のログ デバイス (SLOG) が存在する場合でも，実際には書き込みキャッシュではありません．(書き込みキャッシュと呼ばれることが多いですが) ．</p>



<p class="wp-block-paragraph">ここでは，それらすべての用語が何を行うのか、また，それらを実装することでサーバーにどのようなメリットがあるのか​​を明らかにします．<br>まず書き込み．つまり ZIL と SLOG について説明します．</p>



<h3 class="wp-block-heading"><span id="toc12">書き込み</span></h3>



<p class="wp-block-paragraph">ZFS は書き込み要求を受けると，即ディスクへの書き込みを開始するのではなく，書き込みを RAM にキャッシュしてから，設定された間隔 (デフォルトは 5 秒) でトランザクショングループ (TXG) に送信します．<br>これはトランザクションファイル システムと呼ばれます．</p>



<p class="wp-block-paragraph">これによって、ディスクへの書き込みがより適切に整理され，ディスクの処理が大きく簡素化されるため，パフォーマンスが向上します．<br>また，電源障害が発生した場合でも部分的な書き込みが発生しないため，データの一貫性にもメリットがあります．<br>電源障害が発生した場合，TXG 内のすべてのデータが破棄される事になります．</p>



<p class="wp-block-paragraph">ZFS が書き込みを処理する方法の基本を理解するには，同期書き込みと非同期書き込みの違いを理解する必要があります．</p>



<h4 class="wp-block-heading"><span id="toc13">非同期書き込み</span></h4>



<p class="wp-block-paragraph">データはすぐにメモリーにキャッシュされ，クライアントには書き込み完了が返され，その後ディスクに書き込まれます．</p>



<p class="wp-block-paragraph">クライアントが書き込みリクエストを送信すると，そのリクエストは直ちにメモリーに保存されます．<br>その後，サーバーは書き込みが完了したことをクライアントに通知します．<br>トランザクショングループが RAM に保存されると，サーバーはトランザクショングループをまとめてディスクに書き込むまで，ディスクに何も書き込まずにさらにリクエストを受け付けます．<br>非同期書き込みは，データが高速なメモリーに保存されるだけで完了したとみなされるため，ユーザーから見た場合は非常に高速な書き込みプロセスです．</p>



<p class="wp-block-paragraph">問題は，データの一貫性は維持されますが，電源障害が発生するとトランザクショングループはメモリーにのみ存在するためすべてが失われます．<br>同期書き込みはデータの一貫性を確保することを目的としていますが，パフォーマンスが犠牲になります．</p>



<h4 class="wp-block-heading"><span id="toc14">同期書き込み SLOG が無い場合</span></h4>



<p class="wp-block-paragraph">書き込みが完了したとみなされる前に，ディスクに書き込まれたことが確認される必要があります．</p>



<p class="wp-block-paragraph">クライアントが同期書き込みの書き込みリクエストを送信すると，非同期書き込みと同様に最初にメモリーに保存されますが，サーバーは ZIL に記録されるまで書き込みが完了したことを通知しません．</p>



<p class="wp-block-paragraph">ZIL が更新されると，書き込みがコミットされ，書き込み完了の通知が行われます．ZIL はデフォルトでストレージプールの一部として存在します．つまり，ZIL を更新し，実際にデータをプールのに保存するには，ハードディスクのヘッドの場所を物理的に移動する必要があるため，パフォーマンスにさらに影響します．特に小さなランダム書き込みの場合に，パフォーマンスの問題が発生します．</p>



<p class="wp-block-paragraph">同期書き込みによる速度の低下や望ましくないデータ損失に対する ZFS の解決策は，ZIL を通常は SSD や NVMe などの別の高速永続ストレージ デバイスに配置することです．</p>



<h4 class="wp-block-heading"><span id="toc15">SLOG を使用した同期書き込み</span></h4>



<p class="wp-block-paragraph">ZIL が SSD/NVMe に格納されている場合，クライアントの同期書き込みリクエストは ZIL に高速に記録されます．こうすることで，停電により RAM 上のデータが失われた場合でも，システムは次に電源が入ったときに ZIL をチェックし，コミット前のデータを見つけることが可能になります．</p>



<p class="wp-block-paragraph">あるいは，データは ZIL に保存されたデータへのポインタとともに，すぐにディスクに書き込まれることもあります．<br>次の TXG が送信された後，正しい場所を指すようにデータのメタデータが更新されます．<br>停電が発生した場合，サーバーは ZIL をチェックしてデータがどこにあるかを見つけます．システムは実際には，次のトランザクショングループが通過するまでデータがどこに格納されているかを認識しておらず，メタデータにはデータの格納場所が表示されないため ZIL を確認する必要がありました．<br>SLOG に関して注意すべき点の 1 つは，電源障害が発生した場合にデータの一貫性を確保するというジョブを実行できるようにミラーリングすることが最善であるということです．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h4 class="wp-block-heading"><span id="toc16">SLOG はパフォーマンスにどの程度貢献するのか</span></h4>



<p class="wp-block-paragraph">SLOG のインパクト，パフォーマンスはアプリケーションによって異なります．<br>小規模な IO では大幅な改善が見られ，シーケンシャル IO でもかなりの改善が見られる可能性があります．<br>データベース サーバーやホスティング VM などのユースケースなど，多くの同期書き込みの場合にも役立つ可能性があります．ただし、SLOG の主な機能はパフォーマンスの向上ではなく，停電時に失われるデータを保存することです．<br>ミッション クリティカルなアプリケーションの場合，次のトランザクション グループが送信される 5 秒間のデータが失われると，かなりの影響が発生する可能性があります．これが，SLOG が実際にはキャッシュではなく，その名前が示すようにログである理由でもあります．SLOG には，予期しない電源障害が発生した場合にのみアクセスされます．</p>



<p class="wp-block-paragraph">失われる可能性のある 5 秒間のデータが重要な場合は，パフォーマンスの低下と引き換えにすべての書き込みを強制的に同期として実行することができます．<br>そのデータにミッションクリティカルなものがない場合は，同期を無効にすることができ，トランザクショングループが失われる危険性はあるものの，すべての書き込みは単純にメモリーをキャッシュとして使用できます．標準同期はデフォルトであり，書き込みごとにアプリケーションと ZFS によって決定されます．</p>



<p class="wp-block-paragraph">SLOG 用のデバイスを選択するための非公式の要件は，単一のキュー深さで適切に機能するドライブを選択することです．同期書き込みは，ほとんどの SSD が最も得意とする大規模なバッチでは行われないため，標準の SSD を使用すると実際にはパフォーマンスが低下する可能性があります．Intel Optane ドライブは，低いキュー深度での高速性と，停電時に書き込みを完了するバッテリーのおかげで，一般に SLOG として使用するのに最適なドライブの 1 つと考えられています．データを保存するという目的を達成するには、SLOG にバッテリーを搭載することが重要です．</p>



<p class="wp-block-paragraph">※ Intel Optane は廃止になってしまっているので，SSD や NVMe をバッテリーバックアップ可能な構成にして利用する．が現状の解となると思います．</p>



<h4 class="wp-block-heading"><span id="toc17">読み取り</span></h4>



<p class="wp-block-paragraph">書き込みと同様に，ZFS は読み取りをメモリーにキャッシュします．読み取りキャッシュを ARC と呼んでいます．これは IBM ARC の修正バージョンであり，ARC が使用するより複雑なアルゴリズムにより，平均的な読み取りキャッシュよりも高性能です．</p>



<h4 class="wp-block-heading"><span id="toc18">ARC</span></h4>



<p class="wp-block-paragraph">ARC は，最近使用されたデータと最も頻繁に使用されたデータをメモリーに保存することによって機能します．メモリー上の ARC に存在するデータはディスク上のストレージプールにも存在するため，これは ZIL とは異なり，本当のキャッシュ機能です．<br>読み取りパフォーマンスの高速化に役立つのは ARC のみであり，通常は優れたパフォーマンスを発揮します．大規模な ARC を使用すると，大量のメモリーが占有される可能性がありますが，他のアプリケーションが必要とする場合はそのメモリを放棄し，システムに最適と思われる値に設定できます．</p>



<p class="wp-block-paragraph">ARC は，コールド ヒットが発生するたびに，どちらかにより多くのスペースを割り当てることにより，最近使用されたデータと最も頻繁に使用されたデータの割合を変更して使用します．<br>コールド ヒットは，以前にキャッシュされていたものの，ARC が新しいデータを格納できるようにするためにすでにプッシュされていたデータの一部が要求された場合に発生します．<br>ZFS は，コールドヒットを認識できるようにするために，キャッシュが削除された後にどのデータがキャッシュに保存されたかを追跡します．新しいデータが入ってくると，しばらく使用されていないデータや，新しいデータほど使用されていないデータが押し出されます．</p>



<p class="wp-block-paragraph">システムのメモリーが多いほど，読み取りパフォーマンスが向上するため，より優れています．マザーボードのメモリースロットと予算の制約により，ARC を追加するには物理的およびコストの制限があります．ヒット率が高くならず ARC がいっぱいになっており，システムにこれ以上のメモリーを搭載できない場合は，L2ARC の追加を検討することをお勧めします．</p>



<h4 class="wp-block-heading"><span id="toc19">L2ARC</span></h4>



<p class="wp-block-paragraph">L2ARC は，高速なメモリーではなく SSD や NVMe 上に構成します．ただし、ハードディスクよりもはるかに高速であるため，ARC のヒット率が低い場合は，L2ARC を追加する事でパフォーマンスが向上する可能性があります．<br>ハードディスクからデータを見つける代わりに，システムはメモリーと SSD/NVMe を調べてパフォーマンスを向上させます．通常，64 GB 以上のメモリーを搭載しているにもかかわらず，ARC のヒット率が 90% 未満の場合 L2ARC が検討されます．</p>



<p class="wp-block-paragraph">L2ARC がいっぱいになるのは，ARC がいっぱいになり，そのアルゴリズムがより重要であると判断した新しいデータ用のスペースを空ける場合に限られます．この排出されたデータは L2ARC に移動されます．L2ARC がいっぱいになるまでに長い時間がかかる可能性があります．</p>



<p class="wp-block-paragraph">※ L2ARC は，L2ARC に保存されるすべてのデータはストレージプール内に存在するため，SLOG のようにミラーリングする必要はありません．</p>



<p class="wp-block-paragraph">L2ARC は，そこに保存されているデータを追跡するためにメモリー上の一定量のスペースを使用するため，通常は L2ARC を検討する前にメモリーを追加することをお勧めします．<br>SSD/NVMe はハードディスクより高価ですが，メモリーよりははるかに安いため，この決定を行う際には，価格とパフォーマンスのトレードオフを発生させる可能性があります．</p>



<h4 class="wp-block-heading"><span id="toc20">まとめ</span></h4>



<ul class="wp-block-list">
<li>ZIL は，確認がクライアントに送り返される前に同期書き込みが記録されるスペースです．デフォルトでは，ストレージ プールの一部として存在します．</li>



<li>SLOG は，ZIL が存在する別のデバイスです．一部の特定の用途ではパフォーマンスが向上する可能性があります．ただし、その主な機能は、停電時に失われる可能性があるデータを保存することです．</li>



<li>ARC は，読み取りパフォーマンスを高速化するためにデータをキャッシュするために使用される RAM の一部です．</li>



<li>L2ARC は ARC の拡張機能であり，通常は SSD/NVMe 上にあります．これは，メモリーを追加するという物理的な制約を回避しながら，ARC のサイズを増やすことを目的としています．</li>
</ul>



<p class="wp-block-paragraph">和訳も追加をさせて頂きましたが，ZFS のキャッシュの仕組みの説明でした．<br>ARC/L2ARC や ZIL/SLOG について理解が深められればと思います．</p>



<p class="wp-block-paragraph">次回ですが，実際に ARC の設定や L2ARC，SLOG デバイスの追加などオペレーションの方法を解説したいと考えています．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Sat, 23 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1115</guid>

					<description><![CDATA[今回は ZFS の大きな特徴の一つである，圧縮にフォーカスしたいと思います．ZFS はファイルシステム (ZVOLも) の圧縮が利用でき，透過的に圧縮・展開が行われます．これによってストレージ利用量の削減が見込めます．  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回は ZFS の大きな特徴の一つである，圧縮にフォーカスしたいと思います．<br>ZFS はファイルシステム (ZVOLも) の圧縮が利用でき，透過的に圧縮・展開が行われます．<br>これによってストレージ利用量の削減が見込めます．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ファイルシステムの圧縮</a></li><li><a href="#toc2" tabindex="0">それぞれのアルゴリズムでの圧縮・展開の測定</a><ol><li><a href="#toc3" tabindex="0">LZ4</a><ol><li><a href="#toc4" tabindex="0">書き込み: 1回目</a></li><li><a href="#toc5" tabindex="0">書き込み: 2回目</a></li><li><a href="#toc6" tabindex="0">書き込み: 3回目</a></li><li><a href="#toc7" tabindex="0">書き込み: まとめ</a></li><li><a href="#toc8" tabindex="0">読み出し: 1回目</a></li><li><a href="#toc9" tabindex="0">読み出し: 2回目</a></li><li><a href="#toc10" tabindex="0">読み出し: 3回目</a></li><li><a href="#toc11" tabindex="0">読み出し: まとめ</a></li></ol></li><li><a href="#toc12" tabindex="0">GZIP</a><ol><li><a href="#toc13" tabindex="0">書き込み: 1回目</a></li><li><a href="#toc14" tabindex="0">書き込み: 2回目</a></li><li><a href="#toc15" tabindex="0">書き込み: 3回目</a></li><li><a href="#toc16" tabindex="0">書き込み: まとめ</a></li><li><a href="#toc17" tabindex="0">読み出し: 1回目</a></li><li><a href="#toc18" tabindex="0">読み出し: 2回目</a></li><li><a href="#toc19" tabindex="0">読み出し: 3回目</a></li><li><a href="#toc20" tabindex="0">読み出し: まとめ</a></li></ol></li><li><a href="#toc21" tabindex="0">LZJB</a><ol><li><a href="#toc22" tabindex="0">書き込み: 1回目</a></li><li><a href="#toc23" tabindex="0">書き込み: 2回目</a></li><li><a href="#toc24" tabindex="0">書き込み: 3回目</a></li><li><a href="#toc25" tabindex="0">書き込み: まとめ</a></li><li><a href="#toc26" tabindex="0">読み出し: 1回目</a></li><li><a href="#toc27" tabindex="0">読み出し: 2回目</a></li><li><a href="#toc28" tabindex="0">読み出し: 3回目</a></li><li><a href="#toc29" tabindex="0">読み出し: まとめ</a></li></ol></li><li><a href="#toc30" tabindex="0">ZLE</a><ol><li><a href="#toc31" tabindex="0">書き込み: 1回目</a></li><li><a href="#toc32" tabindex="0">書き込み: 2回目</a></li><li><a href="#toc33" tabindex="0">書き込み: 3回目</a></li><li><a href="#toc34" tabindex="0">書き込み: まとめ</a></li><li><a href="#toc35" tabindex="0">読み出し: 1回目</a></li><li><a href="#toc36" tabindex="0">読み出し: 2回目</a></li><li><a href="#toc37" tabindex="0">読み出し: 3回目</a></li><li><a href="#toc38" tabindex="0">読み出し: まとめ</a></li></ol></li><li><a href="#toc39" tabindex="0">ZSTD</a><ol><li><a href="#toc40" tabindex="0">書き込み: 1回目</a></li><li><a href="#toc41" tabindex="0">書き込み: 2回目</a></li><li><a href="#toc42" tabindex="0">書き込み: 3回目</a></li><li><a href="#toc43" tabindex="0">書き込み: まとめ</a></li><li><a href="#toc44" tabindex="0">読み出し: 1回目</a></li><li><a href="#toc45" tabindex="0">読み出し: 2回目</a></li><li><a href="#toc46" tabindex="0">読み出し: 3回目</a></li><li><a href="#toc47" tabindex="0">読み出し: まとめ</a></li></ol></li></ol></li><li><a href="#toc48" tabindex="0">まとめ</a><ol><li><a href="#toc49" tabindex="0">書き込み時 (圧縮時)</a></li><li><a href="#toc50" tabindex="0">読み出し時 (展開時)</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ファイルシステムの圧縮</span></h2>



<p class="wp-block-paragraph">ZFS でのファイルシステムの圧縮にはいくつかのアルゴリズムがあります．<br>それぞれ得手・不得手がありますので格納するデータに応じた圧縮方式を適用することが推奨されます．</p>



<ul class="wp-block-list">
<li>LZ4<br>圧縮・展開の速さ，CPU 負荷の少なさに定評があり，現在 compression=on の場合のデフォルト値となっている．ZSTD よりも高速と言われている．</li>



<li>GZIP<br>圧縮率は高いが CPU 負荷も高い．バックアップ領域など静的なデータを長期保存し普段読み書きアクセスを頻繁に行わない所には良いと思う．</li>



<li>LZJB<br>LZ4 と GZIP の中間位の立ち位置で，圧縮率に優れている．展開は LZ4 の方が速い．</li>



<li>ZLE<br>連続するゼロデータ (0 が連続するデータ) の所のみ圧縮を行う．負荷は低いが効果も低い．</li>



<li>ZSTD<br>たぶん今後のスタンダードになるもの．圧縮・展開の速さは LZ4 と同等，圧縮率が GZIP に近しい．CPU 負荷は LZ4 より少し高い．というもの</li>
</ul>



<p class="wp-block-paragraph">と，色々ありますので，それぞれどのような効果・パフォーマンスなのかを測定してみます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc2">それぞれのアルゴリズムでの圧縮・展開の測定</span></h2>



<p class="wp-block-paragraph">測定の方法ですが，各ファイルシステムにFreeBSD のソースファイル「src_stable_13.tar.xz」を展開して展開にかかる時間，圧縮率の測定．<br>また，逆に展開されたソースファイル群を tar で読み出して /dev/null に書き出してかかる時間を測定してみます．</p>



<p class="wp-block-paragraph">時間に関しては仮想環境上ですのでブレが生じる事を前提に見て頂ければと思います．<br>CPU 負荷についてはこれも仮想上なのでより参考にできないと思いますので取得しません．</p>



<h3 class="wp-block-heading"><span id="toc3">LZ4</span></h3>



<p class="wp-block-paragraph">まず，LZ4 で圧縮するファイルシステムの作成を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/lz4

# zfs set compression=lz4 pool0/lz4
# zfs get compression pool0/lz4
NAME       PROPERTY     VALUE           SOURCE
pool0/lz4  compression  lz4             local

# mkdir /pool0/lz4/src1
# mkdir /pool0/lz4/src2
# mkdir /pool0/lz4/src3</pre>



<p class="wp-block-paragraph">3回実施して計測しますので，/pool0/lz4/src[1-3] ができると理解ください．</p>



<h4 class="wp-block-heading"><span id="toc4">書き込み: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lz4/src1

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:25:38 JST 2023
Sat Dec 23 13:26:01 JST 2023

# zfs get compressratio pool0/lz4
NAME       PROPERTY       VALUE  SOURCE
pool0/lz4  compressratio  2.42x  -</pre>



<h4 class="wp-block-heading"><span id="toc5">書き込み: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lz4/src2

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:27:29 JST 2023
Sat Dec 23 13:27:50 JST 2023

# zfs get compressratio pool0/lz4
NAME       PROPERTY       VALUE  SOURCE
pool0/lz4  compressratio  2.42x  -</pre>



<h4 class="wp-block-heading"><span id="toc6">書き込み: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lz4/src3

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:28:55 JST 2023
Sat Dec 23 13:29:17 JST 2023

# zfs get compressratio pool0/lz4
NAME       PROPERTY       VALUE  SOURCE
pool0/lz4  compressratio  2.42x  -</pre>



<h4 class="wp-block-heading"><span id="toc7">書き込み: まとめ</span></h4>



<p class="wp-block-paragraph">1回目 23秒，2回目 21秒，3回目 22秒．平均22秒かかりました．<br>圧縮率は 2.42 ということで元データと比較して 140% の圧縮率でした．<br>なお，1.00 が無圧縮となります</p>



<p class="wp-block-paragraph">ちなみに，展開したデータの実容量としては次のとおり 613MB です．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># du -sk /pool0/lz4/src1
628350  /pool0/lz4/src1</pre>



<h4 class="wp-block-heading"><span id="toc8">読み出し: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lz4/src1

# date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:34:21 JST 2023
Sat Dec 23 13:34:26 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc9">読み出し: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:35:09 JST 2023
Sat Dec 23 13:35:13 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc10">読み出し: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:35:58 JST 2023
Sat Dec 23 13:36:01 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc11">読み出し: まとめ</span></h4>



<p class="wp-block-paragraph">1回目が5秒，2回目が4秒，3回目が3秒でした．ですので平均4秒で 630MB の読み出しができている事になります．<br>なお，2回目以降はキャッシュに入ったので速度が上がる可能性が高いです．</p>



<h3 class="wp-block-heading"><span id="toc12">GZIP</span></h3>



<p class="wp-block-paragraph">まず，GZIP で圧縮するファイルシステムの作成を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/gzip

# zfs set compression=gzip pool0/gzip

# zfs get compression pool0/gzip
NAME        PROPERTY     VALUE           SOURCE
pool0/gzip  compression  gzip            local

# mkdir /pool0/gzip/src1
# mkdir /pool0/gzip/src2
# mkdir /pool0/gzip/src3</pre>



<p class="wp-block-paragraph">3回実施して計測しますので，/pool0/gzip/src[1-3] ができると理解ください．</p>



<h4 class="wp-block-heading"><span id="toc13">書き込み: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/gzip/src1

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:41:44 JST 2023
Sat Dec 23 13:42:23 JST 2023

# zfs get compressratio pool0/gzip
NAME        PROPERTY       VALUE  SOURCE
pool0/gzip  compressratio  3.60x  -</pre>



<h4 class="wp-block-heading"><span id="toc14">書き込み: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/gzip/src2

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:43:17 JST 2023
Sat Dec 23 13:43:57 JST 2023

# zfs get compressratio pool0/gzip
NAME        PROPERTY       VALUE  SOURCE
pool0/gzip  compressratio  3.59x  -</pre>



<h4 class="wp-block-heading"><span id="toc15">書き込み: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/gzip/src3
# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:44:46 JST 2023
Sat Dec 23 13:45:25 JST 2023

# zfs get compressratio pool0/gzip
NAME        PROPERTY       VALUE  SOURCE
pool0/gzip  compressratio  3.59x  -</pre>



<h4 class="wp-block-heading"><span id="toc16">書き込み: まとめ</span></h4>



<p class="wp-block-paragraph">1回目 39秒，2回目 40秒，3回目 39秒．平均39秒かかりました．<br>圧縮率は 3.59 ということで元データと比較して 260% の圧縮率でした．<br>LZ4 と比べて時間 (CPU 負荷) は高いものの，圧縮率はとても良いことが分かります．</p>



<h4 class="wp-block-heading"><span id="toc17">読み出し: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/gzip/src1

# date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:49:34 JST 2023
Sat Dec 23 13:49:56 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc18">読み出し: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:50:01 JST 2023
Sat Dec 23 13:50:09 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc19">読み出し: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 13:50:49 JST 2023
Sat Dec 23 13:50:57 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc20">読み出し: まとめ</span></h4>



<p class="wp-block-paragraph">1回目が22秒，2回目が8秒，3回目が8秒でした．ですので平均13秒で 630MB の読み出しができている事になります．<br>なお，2回目以降はキャッシュに入ったので速度が上がる可能性が高いです．<br>LZ4 と1回目の比較をすると17秒の違いがありますので，圧縮データの展開時も CPU 負荷は高めだと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc21">LZJB</span></h3>



<p class="wp-block-paragraph">まず，LZJB で圧縮するファイルシステムの作成を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/lzjb

# zfs set compression=lzjb pool0/lzjb

# zfs get compression pool0/lzjb
NAME        PROPERTY     VALUE           SOURCE
pool0/lzjb  compression  lzjb            local


# mkdir /pool0/lzjb/src1
# mkdir /pool0/lzjb/src2
# mkdir /pool0/lzjb/src3</pre>



<p class="wp-block-paragraph">3回実施して計測しますので，/pool0/lzjb/src[1-3] ができると理解ください．</p>



<h4 class="wp-block-heading"><span id="toc22">書き込み: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/gzip/src1

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:58:24 JST 2023
Sat Dec 23 13:58:51 JST 2023

# zfs get compressratio pool0/lzjb
NAME        PROPERTY       VALUE  SOURCE
pool0/lzjb  compressratio  2.12x  -</pre>



<h4 class="wp-block-heading"><span id="toc23">書き込み: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lzjb/src2

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 13:59:36 JST 2023
Sat Dec 23 13:59:58 JST 2023

# zfs get compressratio pool0/lzjb
NAME        PROPERTY       VALUE  SOURCE
pool0/lzjb  compressratio  2.12x  -</pre>



<h4 class="wp-block-heading"><span id="toc24">書き込み: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lzjb/src3

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:00:43 JST 2023
Sat Dec 23 14:01:05 JST 2023

# zfs get compressratio pool0/lzjb
NAME        PROPERTY       VALUE  SOURCE
pool0/lzjb  compressratio  2.12x  -</pre>



<h4 class="wp-block-heading"><span id="toc25">書き込み: まとめ</span></h4>



<p class="wp-block-paragraph">1回目 27秒，2回目 22秒，3回目 22秒．平均24秒かかりました．<br>圧縮率は 2.12 ということで元データと比較して 210% の圧縮率でした．<br>LZ4 と比べて時間 (CPU 負荷) は高いものの，GZIP 程ではなく，圧縮率も GZIP 程ではないものの良い結果となっています．</p>



<h4 class="wp-block-heading"><span id="toc26">読み出し: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/lzjb/src1

# date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:05:17 JST 2023
Sat Dec 23 14:05:59 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc27">読み出し: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:06:34 JST 2023
Sat Dec 23 14:06:40 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc28">読み出し: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:07:05 JST 2023
Sat Dec 23 14:07:12 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc29">読み出し: まとめ</span></h4>



<p class="wp-block-paragraph">1回目が42秒，2回目が6秒，3回目が7秒でした．初回が GZIP より時間がかかっているのは予定外です．本来は少なくなるはず&#8230; 平均18秒で 630MB の読み出しができている事になります．<br>2回目，3回目の値が GZIP に比べて低いため，やり直せば1回目も値が違ってきているとは思います．<br>いずれにぜよ，速度・圧縮率の観点で LZ4 と GZIP の間に位置する事はわかるかと思います．<br></p>



<h3 class="wp-block-heading"><span id="toc30">ZLE</span></h3>



<p class="wp-block-paragraph">まず，ZLE で圧縮するファイルシステムの作成を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/zle

# zfs set compression=zle pool0/zle

# zfs get compression pool0/zle
NAME       PROPERTY     VALUE           SOURCE
pool0/zle  compression  zle             local

# mkdir /pool0/zle/src1
# mkdir /pool0/zle/src2
# mkdir /pool0/zle/src3</pre>



<p class="wp-block-paragraph">3回実施して計測しますので，/pool0/zle/src[1-3] ができると理解ください．</p>



<h4 class="wp-block-heading"><span id="toc31">書き込み: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zle/src1

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:22:48 JST 2023
Sat Dec 23 14:23:13 JST 2023

# zfs get compressratio pool0/zle
NAME       PROPERTY       VALUE  SOURCE
pool0/zle  compressratio  1.07x  -</pre>



<h4 class="wp-block-heading"><span id="toc32">書き込み: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zle/src2

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:24:41 JST 2023
Sat Dec 23 14:25:06 JST 2023

# zfs get compressratio pool0/zle
NAME       PROPERTY       VALUE  SOURCE
pool0/zle  compressratio  1.07x  -</pre>



<h4 class="wp-block-heading"><span id="toc33">書き込み: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zle/src3

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:25:46 JST 2023
Sat Dec 23 14:26:10 JST 2023

# zfs get compressratio pool0/zle
NAME       PROPERTY       VALUE  SOURCE
pool0/zle  compressratio  1.07x  -</pre>



<h4 class="wp-block-heading"><span id="toc34">書き込み: まとめ</span></h4>



<p class="wp-block-paragraph">1回目 25秒，2回目 25秒，3回目 24秒．平均25秒かかりました．<br>圧縮率は 1.07 ということで元データと比較して 10% 未満の圧縮率でした．<br>初めて試してみましたが，これは自分が採用する事はないな．と思いました．<br>通常のファイルサーバーとしての利用の場合，これを採用するメリットはないと思います．データベース製品で最初にファイルシステムにゼロ埋めを行うものがありますが，こういったものには有効なのだと思いますが&#8230;</p>



<h4 class="wp-block-heading"><span id="toc35">読み出し: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zle/src1

# date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:30:22 JST 2023
Sat Dec 23 14:31:08 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc36">読み出し: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:31:35 JST 2023
Sat Dec 23 14:32:05 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc37">読み出し: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:32:30 JST 2023
Sat Dec 23 14:32:53 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc38">読み出し: まとめ</span></h4>



<p class="wp-block-paragraph">1回目が46秒，2回目が30秒，3回目が23秒でした．圧縮されているデータがそもそも少ないため，読み出しにかかる量が多くなりその結果時間がかかっているという状況だと思います．</p>



<h3 class="wp-block-heading"><span id="toc39">ZSTD</span></h3>



<p class="wp-block-paragraph">まず，ZSTD で圧縮するファイルシステムの作成を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create pool0/zstd
root@bsd13-1:/pool0/zle/src1 # zfs set compression=zstd pool0/zstd
root@bsd13-1:/pool0/zle/src1 # zfs get compression pool0/zstd
NAME        PROPERTY     VALUE           SOURCE
pool0/zstd  compression  zstd            local

# mkdir /pool0/zstd/src1
# mkdir /pool0/zstd/src2
# mkdir /pool0/zstd/src3</pre>



<p class="wp-block-paragraph">3回実施して計測しますので，/pool0/zstd/src[1-3] ができると理解ください．</p>



<h4 class="wp-block-heading"><span id="toc40">書き込み: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zstd/src1

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:38:29 JST 2023
Sat Dec 23 14:38:52 JST 2023

# zfs get compressratio pool0/zstd
NAME        PROPERTY       VALUE  SOURCE
pool0/zstd  compressratio  3.47x  -</pre>



<h4 class="wp-block-heading"><span id="toc41">書き込み: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zstd/src2

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:39:45 JST 2023
Sat Dec 23 14:40:07 JST 2023

# zfs get compressratio pool0/zstd
NAME        PROPERTY       VALUE  SOURCE
pool0/zstd  compressratio  3.47x  -</pre>



<h4 class="wp-block-heading"><span id="toc42">書き込み: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zstd/src3

# date ; tar -Jxf /root/src_stable_13.tar.xz ; date
Sat Dec 23 14:40:58 JST 2023
Sat Dec 23 14:41:21 JST 2023

# zfs get compressratio pool0/zstd
NAME        PROPERTY       VALUE  SOURCE
pool0/zstd  compressratio  3.47x  -</pre>



<h4 class="wp-block-heading"><span id="toc43">書き込み: まとめ</span></h4>



<p class="wp-block-paragraph">1回目 23秒，2回目 22秒，3回目 23秒．平均23秒かかりました．<br>圧縮率は 3.47 ということで元データと比較して 240% の圧縮率でした．<br>GZIP よりは多少劣りますがかかる時間は LZ4 並みの時間でした．</p>



<h4 class="wp-block-heading"><span id="toc44">読み出し: 1回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd /pool0/zstd/src1

# date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:45:21 JST 2023
Sat Dec 23 14:45:36 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc45">読み出し: 2回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:46:13 JST 2023
Sat Dec 23 14:46:26 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc46">読み出し: 3回目</span></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># date ; tar -cf /dev/null ./ ; date
Sat Dec 23 14:46:47 JST 2023
Sat Dec 23 14:47:15 JST 2023</pre>



<h4 class="wp-block-heading"><span id="toc47">読み出し: まとめ</span></h4>



<p class="wp-block-paragraph">1回目が15秒，2回目が13秒，3回目が28秒でした．3回目が遅いのは環境の問題が高いと思います．<br>平均としては19秒で，GZIP よりは速く，LZ4 や LZJB より遅いという結果です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc48">まとめ</span></h2>



<p class="wp-block-paragraph">これらを纏めると次のとおりとなります．</p>



<h3 class="wp-block-heading"><span id="toc49">書き込み時 (圧縮時)</span></h3>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>アルゴリズム</td><td>1回目</td><td>2回目</td><td>3回目</td><td>平均</td><td>圧縮率</td></tr><tr><td>LZ4</td><td>23秒</td><td>21秒</td><td>22秒</td><td>22秒</td><td>2.42</td></tr><tr><td>GZIP</td><td>39秒</td><td>40秒</td><td>39秒</td><td>39秒</td><td>3.59</td></tr><tr><td>LZJB</td><td>27秒</td><td>22秒</td><td>22秒</td><td>24秒</td><td>2.12</td></tr><tr><td>ZLE</td><td>25秒</td><td>25秒</td><td>25秒</td><td>24秒</td><td>1.07</td></tr><tr><td>ZSTD</td><td>23秒</td><td>22秒</td><td>23秒</td><td>23秒</td><td>3.47</td></tr></tbody></table></figure>
</div>
</div>
</div>



<p class="wp-block-paragraph">書き込み時の速度で並べると LZ4 -&gt; ZSTD -&gt; LZJB | ZLE -&gt; GZIP の順番<br>圧縮率で並べると GZIP -&gt; ZSTD -&gt; LZ4 -&gt; LZJB -&gt; ZLE の順番でした．</p>



<h3 class="wp-block-heading"><span id="toc50">読み出し時 (展開時)</span></h3>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>アルゴリズム</td><td>1回目</td><td>2回目</td><td>3回目</td><td>平均</td></tr><tr><td>LZ4</td><td>5秒</td><td>4秒</td><td>3秒</td><td>4秒</td></tr><tr><td>GZIP</td><td>22秒</td><td>8秒</td><td>8秒</td><td>13秒</td></tr><tr><td>LZJB</td><td>42秒</td><td>6秒</td><td>7秒</td><td>18秒</td></tr><tr><td>ZLE</td><td>46秒</td><td>30秒</td><td>23秒</td><td>33秒</td></tr><tr><td>ZSTD</td><td>15秒</td><td>13秒</td><td>28秒</td><td>19秒</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">読み出し時の速度で見ると LZ4 -&gt; GZIP -&gt; ZSTD -&gt; LZJB -&gt; ZLE の順番でした．</p>



<p class="wp-block-paragraph">仮想環境上での比較ですのでちょっとしたことでブレが発生しますが，それぞれの圧縮アルゴリズムの特徴が理解できたのではないでしょうか．</p>



<p class="wp-block-paragraph">ファイルサーバーとして読み書き速度を最重要視したい場合は LZ4 になると思います．圧縮率も重視したい場合は ZSTD を選択．という形に．また，アーカイブやバックアップ目的は GZIP を採用というのが特性に合っているかと思います．</p>



<p class="wp-block-paragraph">実際の所は自身のファイルサーバーの目的・役割に応じて選択いただくことになりますが，概ねの傾向として参考にして頂ければと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – RAWボリュームを切り出す &#038; iSCSI として提供する</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Fri, 22 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1111</guid>

					<description><![CDATA[今回は ZFS ファイルシステムではなく，ボリュームとして切り出して利用したり，ボリュームを iSCSI として提供したりしてみます． 目次 ブロックデバイスとして切り出す自ホスト内で UFS フォーマットしてみるボリュ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回は ZFS ファイルシステムではなく，ボリュームとして切り出して利用したり，ボリュームを iSCSI として提供したりしてみます．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ブロックデバイスとして切り出す</a><ol><li><a href="#toc2" tabindex="0">自ホスト内で UFS フォーマットしてみる</a></li><li><a href="#toc3" tabindex="0">ボリュームを拡張してみる</a></li></ol></li><li><a href="#toc4" tabindex="0">iSCSI で提供する</a><ol><li><a href="#toc5" tabindex="0">ターゲットを設定する</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ブロックデバイスとして切り出す</span></h2>



<p class="wp-block-paragraph">ZFS のストレージプールからブロックデバイスとして切り出すことが可能です．</p>



<p class="wp-block-paragraph">ZFS の中にボリュームを切り出して UFS フォーマットで利用する (またはその他のファイルシステムフォーマットを行う) ことや，iSCSI や GEOM GATE で他ホストへ共有を行うことができます．</p>



<p class="wp-block-paragraph">ボリュームの作成も zfs create で行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs create -V 10G pool0/zvol0

# zfs list
NAME                USED  AVAIL     REFER  MOUNTPOINT
pool0              10.3G  86.1G       24K  /pool0
pool0/data-backup  26.5K  86.1G     26.5K  /pool0/data-backup
pool0/zvol0        10.3G  96.4G       12K  -</pre>



<p class="wp-block-paragraph">この場合，zvol0 を 10GB で切り出しています．MOUNTPOINT が何もなく，マウントされていないことが分かります．<br>それ以外は ZFS の機能は利用可能です．スナップショットやクローン，圧縮・重複排除などをボリュームに対して適用できます．<br>ですので，このように zfs の設定は通常の ZFS ファイルシステムと大きく違いはありません．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs get all pool0/zvol0
NAME         PROPERTY              VALUE                  SOURCE
pool0/zvol0  type                  volume                 -
pool0/zvol0  creation              Thu Dec 21 20:38 2023  -
pool0/zvol0  used                  10.3G                  -
pool0/zvol0  available             96.4G                  -
pool0/zvol0  referenced            12K                    -
pool0/zvol0  compressratio         1.00x                  -
pool0/zvol0  reservation           none                   default
pool0/zvol0  volsize               10G                    local
pool0/zvol0  volblocksize          8K                     default
pool0/zvol0  checksum              on                     default
pool0/zvol0  compression           off                    default
pool0/zvol0  readonly              off                    default
pool0/zvol0  createtxg             24146                  -
pool0/zvol0  copies                1                      default
pool0/zvol0  refreservation        10.3G                  local
pool0/zvol0  guid                  6841428395991112135    -
pool0/zvol0  primarycache          all                    default
pool0/zvol0  secondarycache        all                    default
pool0/zvol0  usedbysnapshots       0B                     -
pool0/zvol0  usedbydataset         12K                    -
pool0/zvol0  usedbychildren        0B                     -
pool0/zvol0  usedbyrefreservation  10.3G                  -
pool0/zvol0  logbias               latency                default
pool0/zvol0  objsetid              334                    -
pool0/zvol0  dedup                 off                    default
pool0/zvol0  mlslabel              none                   default
pool0/zvol0  sync                  standard               default
pool0/zvol0  refcompressratio      1.00x                  -
pool0/zvol0  written               12K                    -
pool0/zvol0  logicalused           6K                     -
pool0/zvol0  logicalreferenced     6K                     -
pool0/zvol0  volmode               default                default
pool0/zvol0  snapshot_limit        none                   default
pool0/zvol0  snapshot_count        none                   default
pool0/zvol0  snapdev               hidden                 default
pool0/zvol0  context               none                   default
pool0/zvol0  fscontext             none                   default
pool0/zvol0  defcontext            none                   default
pool0/zvol0  rootcontext           none                   default
pool0/zvol0  redundant_metadata    all                    default
pool0/zvol0  encryption            off                    default
pool0/zvol0  keylocation           none                   default
pool0/zvol0  keyformat             none                   default
pool0/zvol0  pbkdf2iters           0                      default</pre>



<h3 class="wp-block-heading"><span id="toc2">自ホスト内で UFS フォーマットしてみる</span></h3>



<p class="wp-block-paragraph">作成されたボリュームにアクセスするには /dev/zvol/[プール名]/[ボリューム名] でアクセスが可能です．<br>ファイルシステムを作成してマウントをしてみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># newfs /dev/zvol/pool0/zvol0
/dev/zvol/pool0/zvol0: 10240.0MB (20971520 sectors) block size 32768, fragment size 4096
        using 17 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
super-block backups (for fsck_ffs -b #) at:
 192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120, 15365568,
 16646016, 17926464, 19206912, 20487360

# mount /dev/zvol/pool0/zvol0 /mnt

# df
Filesystem            1K-blocks    Used    Avail Capacity  Mounted on
/dev/da0p2             19279260 2223580 15513340    13%    /
devfs                         1       1        0   100%    /dev
/dev/da2              101561756   10600 93426216     0%    /mnt
pool0                  90273061      24 90273037     0%    /pool0
pool0/data-backup      90273064      26 90273037     0%    /pool0/data-backup
/dev/zvol/pool0/zvol0  10144028       8  9332500     0%    /mnt</pre>



<p class="wp-block-paragraph">通常このような使い方を行うことはないと思いますが，こういったこともできますという例になります．</p>



<h3 class="wp-block-heading"><span id="toc3">ボリュームを拡張してみる</span></h3>



<p class="wp-block-paragraph">ZFS で作成したボリュームは簡単に拡張・縮小が可能です．縮小は上位のファイルシステムも対応している必要があります．<br>今回はボリュームを拡張し，ファイルシステムも拡張してみる．ということを実施します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs set volsize=20G pool0/zvol0

# zfs list
NAME                USED  AVAIL     REFER  MOUNTPOINT
pool0              20.6G  75.8G       24K  /pool0
pool0/data-backup  26.5K  75.8G     26.5K  /pool0/data-backup
pool0/zvol0        20.6G  96.4G     1.84M  -

# df
Filesystem            1K-blocks    Used    Avail Capacity  Mounted on
/dev/da0p2             19279260 2223580 15513340    13%    /
devfs                         1       1        0   100%    /dev
/dev/da2              101561756   10600 93426216     0%    /mnt
pool0                  79458977      24 79458953     0%    /pool0
pool0/data-backup      79458979      26 79458953     0%    /pool0/data-backup
/dev/zvol/pool0/zvol0  10144028       8  9332500     0%    /mnt

# growfs /dev/zvol/pool0/zvol0
Device is mounted read-write; resizing will result in temporary write suspension for /mnt.
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/zvol/pool0/zvol0, mounted on /mnt, from 10GB to 20GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
 21767808, 23048256, 24328704, 25609152, 26889600, 28170048, 29450496, 30730944, 32011392, 33291840, 34572288, 35852736,
 37133184, 38413632, 39694080, 40974528

# df
Filesystem            1K-blocks    Used    Avail Capacity  Mounted on
/dev/da0p2             19279260 2223580 15513340    13%    /
devfs                         1       1        0   100%    /dev
/dev/da2              101561756   10600 93426216     0%    /mnt
pool0                  79458969      24 79458945     0%    /pool0
pool0/data-backup      79458972      26 79458945     0%    /pool0/data-backup
/dev/zvol/pool0/zvol0  20308252       8 18683584     0%    /mnt</pre>



<p class="wp-block-paragraph">このように簡単に拡張することができます．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc4">iSCSI で提供する</span></h2>



<p class="wp-block-paragraph">まず，FreeBSD の iSCSI については以下で記事にしていますのでこちらも合わせてご覧ください．</p>



<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-iscsi-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc-%e3%82%bf%e3%83%bc%e3%82%b2%e3%83%83%e3%83%88%e7%b7%a8.html" target="_blank">FreeBSD で iSCSI を利用する (サーバー/ターゲット編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-iscsi-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88-%e3%82%a4%e3%83%8b%e3%82%b7%e3%82%a8%e3%83%bc%e3%82%bf%e3%83%bc%e7%b7%a8.html" target="_blank">FreeBSD で iSCSI を利用する (クライアント/イニシエーター編)</a></li>



<li><a href="https://www.seichan.org/2023/12/geom-multipath-%e3%81%a7%e3%83%9e%e3%83%ab%e3%83%81%e3%83%91%e3%82%b9%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b-1.html" target="_blank">GEOM MULTIPATH でマルチパスを構成する (1)</a></li>



<li><a href="https://www.seichan.org/2023/12/geom-multipath-%e3%81%a7%e3%83%9e%e3%83%ab%e3%83%81%e3%83%91%e3%82%b9%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b-2.html" target="_blank">GEOM MULTIPATH でマルチパスを構成する (2)</a></li>
</ul>



<p class="wp-block-paragraph">その上で，サーバー (ターゲット) から提供する．という所に絞って説明を行います．<br>もちろん，ZFS ボリュームを切り出すのではなく，ZFS ファイルシステム内のボリュームファイルを提供することも可能です．</p>



<h3 class="wp-block-heading"><span id="toc5">ターゲットを設定する</span></h3>



<p class="wp-block-paragraph">先ほど作成したボリューム vol0 を iSCSI ターゲットに載せてみます．以下設定ファイルは前回のものを流用しています．詳細は上部にリンクを張った記事をご覧ください．<br>違いは lun0 で指定しているデバイスファイルのパス，lun 1 で指定しているパスだけになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cat /etc/ctl.conf
auth-group ag0 {
  chap-mutual "iscsi-user1" "Password-user1" "mutual-user" "Password-mutual"
  initiator-portal 172.16.255.0/24
  initiator-portal 172.17.255.0/24
}

portal-group pg0 {
  discovery-auth-group no-authentication
  listen 172.16.255.254:3260
  listen 172.17.255.254:3260
}

target iqn.2023-12.iscsi.org.seichan:target0 {
  alias "target0"
  auth-group ag0
  portal-group pg0
  lun 0 {
    path /dev/zvol/pool0/zvol0
    option vendor "FreeBSD"
  }
  lun 1 {
    path /pool0/lun1.img
    option vendor "FreeBSD"
    blocksize 4096
    size 10G
  }
}</pre>



<p class="wp-block-paragraph">この設定ファイルを用いて ctld を起動します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cat /etc/rc.conf
ctld_enable="YES"
zfs_enable="YES"

# /etc/rc.d/ctld start
Starting ctld.

# ctladm devlist -v
LUN Backend       Size (Blocks)   BS Serial Number    Device ID
  0 block              41943040  512 MYSERIAL0000     MYDEVID0000
      lun_type=0
      num_threads=32
      vendor=FreeBSD
      file=/dev/zvol/pool0/zvol0
      ctld_name=iqn.2023-12.iscsi.org.seichan:target0,lun,0
      scsiname=iqn.2023-12.iscsi.org.seichan:target0,lun,0
  1 block               2621440 4096 MYSERIAL0001     MYDEVID0001
      lun_type=0
      num_threads=32
      vendor=FreeBSD
      file=/pool0/lun1.img
      ctld_name=iqn.2023-12.iscsi.org.seichan:target0,lun,1
      scsiname=iqn.2023-12.iscsi.org.seichan:target0,lun,1</pre>



<p class="wp-block-paragraph">iSCSI 用のボリュームを ZFS で作成する利点は上でも書いていますが，ZFS の機能を利用できる事です．</p>



<p class="wp-block-paragraph">スナップショットの作成，クローン，send / recv によるレプリケーションはもちろん，圧縮や重複排除が利用できます．</p>



<p class="wp-block-paragraph">もちろん，ボリュームを作成して iSCSI で．ではなく，ZFS ファイルシステムを NFS で提供ということも可能ですし，こちらも同様の利点があります．</p>



<p class="wp-block-paragraph">最終的には利用するシステムがどちらの方が都合がよいのか (パフォーマンスの観点，扱いやすさの観点など色々とあると思います) で選択で良いでしょう．</p>



<p class="wp-block-paragraph">自分の場合は ZFS ファイルサーバー側でファイルが読み書きできる方を重要視しているので iSCSI の利用ではなく NFS での利用を行っていますが，MSFC の検証などでは iSCSI を利用しています．</p>



<p class="wp-block-paragraph">以上，ブロックデバイスとして切り出す紹介を終わります．次回は圧縮と重複排除について触れていこうと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD で ZFS を利用する – send/recv を使い倒す</title>
		<link>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html</link>
					<comments>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Thu, 21 Dec 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[ZFS]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=1104</guid>

					<description><![CDATA[前回は ZFS ファイルシステムを色々使ってみて最後にクローンを行った所まで実施しました．今回はプール間のクローン・レプリケーション技術の send / recv に焦点を絞って説明を行っていきます． 今回は自ホスト内( [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">前回は ZFS ファイルシステムを色々使ってみて最後にクローンを行った所まで実施しました．<br>今回はプール間のクローン・レプリケーション技術の send / recv に焦点を絞って説明を行っていきます．</p>



<ul class="wp-block-list">
<li>ZFS に関するお話
<ul class="wp-block-list">
<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e6%a6%82%e8%a6%81.html" target="_blank">FreeBSD で ZFS を利用する – ZFS 概要</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成 （パーティション切らない編)</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの機能について理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e7%ae%a1%e7%90%86%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムを管理する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – send/recv を使い倒す</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-raw%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%83%a0%e3%82%92%e5%88%87%e3%82%8a%e5%87%ba%e3%81%99-iscsi-%e3%81%a8%e3%81%97.html" target="_blank">FreeBSD で ZFS を利用する – RAWボリュームを切り出す &amp; iSCSI として提供する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e5%9c%a7%e7%b8%ae%e3%82%92%e5%88%a9.html" target="_blank">FreeBSD で ZFS を利用する – ファイルシステムの圧縮を利用する・比較する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%81%ae%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%92%e7%90%86%e8%a7%a3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS のキャッシュの仕組みを理解する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e6%a7%8b%e6%88%90%e3%83%bb%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b.html" target="_blank">FreeBSD で ZFS を利用する – キャッシュを構成・設定する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-%e9%87%8d%e8%a4%87%e6%8e%92%e9%99%a4%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b%e3%83%bb%e7%a2%ba%e8%aa%8d%e3%81%99.html" target="_blank">FreeBSD で ZFS を利用する – 重複排除を利用する・確認する</a></li>



<li><a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (1)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-2.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (2)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-3.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (3)</a></li>



<li><a href="https://www.seichan.org/2024/01/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%ab%e3%81%a4-4.html" target="_blank">FreeBSD で ZFS を利用する – ZFS ファイルシステムの機能について理解する (4)</a></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">今回は自ホスト内(ローカル)のプール間クローンと，ホスト間のプール間クローンの二種を扱っていきます．<br>構成はこんな感じの環境を用意しました．</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="546" height="195" src="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-56-546x195.png" alt="" class="wp-image-1105" style="width:840px;height:auto" srcset="https://www.seichan.org/blog/wp-content/uploads/2023/12/image-56-546x195.png 546w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-56-300x107.png 300w, https://www.seichan.org/blog/wp-content/uploads/2023/12/image-56.png 716w" sizes="(max-width: 546px) 100vw, 546px" /></figure>



<p class="wp-block-paragraph">前回は pool0/data を pool1 にクローンしました．おさらいとして改めて以下に記載します．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ローカル内のプール間クローン</a><ol><li><a href="#toc2" tabindex="0">前回のおさらい</a></li></ol></li><li><a href="#toc3" tabindex="0">バックアップとしてのクローン戦略</a><ol><li><a href="#toc4" tabindex="0">初回バックアップ</a></li><li><a href="#toc5" tabindex="0">増分バックアップを行っていく</a><ol><li><a href="#toc6" tabindex="0">途中のスナップショットは維持しない</a></li><li><a href="#toc7" tabindex="0">スナップショットを維持したままクローンする</a></li></ol></li></ol></li><li><a href="#toc8" tabindex="0">ホスト間のクローン</a><ol><li><a href="#toc9" tabindex="0">環境整備</a><ol><li><a href="#toc10" tabindex="0">送信側の SSH の準備</a></li><li><a href="#toc11" tabindex="0">受信側の SSH の準備</a></li></ol></li><li><a href="#toc12" tabindex="0">受信側の ZFS プールの準備</a></li><li><a href="#toc13" tabindex="0">初回バックアップ</a></li><li><a href="#toc14" tabindex="0">ホスト間の増分バックアップを行っていく</a><ol><li><a href="#toc15" tabindex="0">途中のスナップショットは維持しない</a></li><li><a href="#toc16" tabindex="0">スナップショットを維持したままクローンする</a></li></ol></li></ol></li><li><a href="#toc17" tabindex="0">番外編 (ZFS クローンをファイルとして保存する)</a><ol><li><a href="#toc18" tabindex="0">ファイルに書き出す (バックアップ)</a></li><li><a href="#toc19" tabindex="0">ファイルから書き戻す (リストア)</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ローカル内のプール間クローン</span></h2>



<h3 class="wp-block-heading"><span id="toc2">前回のおさらい</span></h3>



<p class="wp-block-paragraph">別プールに作成する場合は zfs send と zfs recv を利用します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send pool0/data@snap-9 | zfs recv pool1/clone

# zfs list
NAME               USED  AVAIL     REFER  MOUNTPOINT
pool0             10.0G   375G     32.0K  /pool0
pool0/data        53.3K  10.0G     34.0K  /data
pool0/data-clone     0B   375G     34.0K  /pool0/data-clone
pool0/share       30.6K   385G     30.6K  /pool0/share
pool1              154K  96.4G       24K  /pool1
pool1/clone       26.5K  96.4G     26.5K  /pool1/clone</pre>



<p class="wp-block-paragraph">pool1 に clone というファイルシステムが無事作成されました．この中身を見てみましょう．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># ls /pool1/clone
data1.txt       data2.txt       data3.txt

# zfs list -t snapshot pool1/clone
NAME                 USED  AVAIL     REFER  MOUNTPOINT
pool1/clone@snap-9     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">このようにデータはクローンされています．スナップショットも指定した物がクローン先に残っています．<br>これは zfs clone と zfs send / recv での動きが違うためとなります．<br>スナップショットは不必要であれば削除してもらっても大丈夫です．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc3">バックアップとしてのクローン戦略</span></h2>



<p class="wp-block-paragraph">初回バックアップなど，全体をまずはクローン/レプリケーションしたい場合は先にも書いたような方法となります．<br>特定のスナップショットを指定して zfs send で送信，zfs recv で受信させます．</p>



<p class="wp-block-paragraph">次のような環境 (スナップショットは全部消しました) からバックアップとして取るには．を改めて解説していきます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs list
NAME          USED  AVAIL     REFER  MOUNTPOINT
pool0        10.0G   375G     30.6K  /pool0
pool0/data   34.0K  10.0G     34.0K  /data
pool0/share  30.6K   385G     30.6K  /pool0/share
pool1         154K  96.4G       24K  /pool1

# zfs list -t snapshot
no datasets available</pre>



<h3 class="wp-block-heading"><span id="toc4">初回バックアップ</span></h3>



<p class="wp-block-paragraph">初回バックアップについては特にありません．一番最初に持っていきたい状態のスナップショットを指定する形になります．例えば次のようなスナップショット状況の場合があったとします．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs list -t snapshot
NAME                    USED  AVAIL     REFER  MOUNTPOINT
pool0/data@2023120110     0B      -     34.0K  -
pool0/data@2023120112     0B      -     34.0K  -
pool0/data@2023120114     0B      -     34.0K  -
pool0/data@2023120116     0B      -     34.0K  -
pool0/data@2023120118     0B      -     34.0K  -
pool0/data@2023120120     0B      -     34.0K  -
pool0/data@2023120122     0B      -     34.0K  -
</pre>



<p class="wp-block-paragraph">どの時点でもいいです．であればどの時点を指定してもらっても構いません．今回は一番最初の時点のスナップショットを起点として実施してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send pool0/data@2023120110 | zfs recv pool1/data-backup

# zfs list
NAME                USED  AVAIL     REFER  MOUNTPOINT
pool0              10.0G   375G     30.6K  /pool0
pool0/data         34.0K  10.0G     34.0K  /data
pool0/share        30.6K   385G     30.6K  /pool0/share
pool1               184K  96.4G       24K  /pool1
pool1/data-backup  26.5K  96.4G     26.5K  /pool1/data-backup

# zfs list -t snapshot pool1/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool1/data-backup@2023120110     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">これは何度も言いますが先の説明となんら変更はありません．</p>



<h3 class="wp-block-heading"><span id="toc5">増分バックアップを行っていく</span></h3>



<p class="wp-block-paragraph">大事なのはここからになります．<br>2回目以降は全部をクローンするのではなく，変更点のみをクローンで転送ができればかかる転送量と時間を節約できます．</p>



<p class="wp-block-paragraph">変更点を転送する場合も zfs send を用いますがオプションが追加されます．</p>



<h4 class="wp-block-heading"><span id="toc6">途中のスナップショットは維持しない</span></h4>



<p class="wp-block-paragraph">増分のクローンにおいて，最終状態のみ保持出来ればよいという場合は途中のスナップショットがクローン側に存在する必要はありません．そのような場合は次のコマンドになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -i pool0/data@2023120110 pool0/data@2023120122 | zfs recv pool1/data-backup

# zfs list -t snapshot pool1/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool1/data-backup@2023120110     0B      -     26.5K  -
pool1/data-backup@2023120122     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">初回に送ったスナップショット (正確には zfs send で前回送信したスナップショット) と，次に送りたいスナップショットを指定することで，その間の変更点のみと指定できます．</p>



<p class="wp-block-paragraph">-i オプションはその間のスナップショットを含まない．になりますので，受け側は初回と2回目のスナップショットのみが保存されている状態となります．</p>



<p class="wp-block-paragraph">毎日これが継続するとした場合で翌日のスナップショット状況がこうなっていたとします．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs list -t snapshot pool0/data
NAME                    USED  AVAIL     REFER  MOUNTPOINT
pool0/data@2023120110     0B      -     34.0K  -
pool0/data@2023120112     0B      -     34.0K  -
pool0/data@2023120114     0B      -     34.0K  -
pool0/data@2023120116     0B      -     34.0K  -
pool0/data@2023120118     0B      -     34.0K  -
pool0/data@2023120120     0B      -     34.0K  -
pool0/data@2023120122     0B      -     34.0K  -
pool0/data@2023120200     0B      -     34.0K  -
pool0/data@2023120202     0B      -     34.0K  -
pool0/data@2023120204     0B      -     34.0K  -
pool0/data@2023120208     0B      -     34.0K  -
pool0/data@2023120210     0B      -     34.0K  -
pool0/data@2023120212     0B      -     34.0K  -
pool0/data@2023120214     0B      -     34.0K  -
pool0/data@2023120216     0B      -     34.0K  -
pool0/data@2023120218     0B      -     34.0K  -
pool0/data@2023120220     0B      -     34.0K  -
pool0/data@2023120222     0B      -     34.0K  -</pre>



<p class="wp-block-paragraph">前回送信した際の終了点は「pool0/data@2023120122」ですので今回の起点が「pool0/data@2023120122」になります．そこからの差分の最新点の「pool0/data@2023120222」までを送りたい場合は次のようになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -i pool0/data@2023120122 pool0/data@2023120222 | zfs recv pool1/data-backup

# zfs list -t snapshot pool1/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool1/data-backup@2023120110     0B      -     26.5K  -
pool1/data-backup@2023120122     0B      -     26.5K  -
pool1/data-backup@2023120222     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">このように，前回送ったスナップショットおよび新しく送りたいスナップショットを指定することで例えば毎日バックアップを行うということが可能になります．</p>



<p class="wp-block-paragraph">この例では日付・時間をスナップショット名としましたが，バックアップの為の専用のスナップショット名を用いるなどをする方がスクリプト化はしやすいかと思います．</p>



<h4 class="wp-block-heading"><span id="toc7">スナップショットを維持したままクローンする</span></h4>



<p class="wp-block-paragraph">維持の必要の有無はバックアップの用途によりますが，メインと同じ状態を維持したいというケースも当然あります．そんな場合でも対応可能です．<br>初回のクローンが完了しており，2回目以降のクローンを行う所から記載します．<br>(先の維持しないクローンの状態をクリアした所から実施していますので混乱しないでください)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -I pool0/data@2023120110 pool0/data@2023120122 | zfs recv pool1/data-backup

# zfs list -t snapshot pool1/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool1/data-backup@2023120110     0B      -     26.5K  -
pool1/data-backup@2023120112     0B      -     26.5K  -
pool1/data-backup@2023120114     0B      -     26.5K  -
pool1/data-backup@2023120116     0B      -     26.5K  -
pool1/data-backup@2023120118     0B      -     26.5K  -
pool1/data-backup@2023120120     0B      -     26.5K  -
pool1/data-backup@2023120122     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">実際はオプションを -i から -I に変えただけですが，これによって間のスナップショットも維持したままクローンが行われます．</p>



<p class="wp-block-paragraph">翌日にも同様に増分をクローンした場合はこのようになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -I pool0/data@2023120122 pool0/data@2023120222 | zfs recv pool1/data-backup

# zfs list -t snapshot pool1/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool1/data-backup@2023120110     0B      -     26.5K  -
pool1/data-backup@2023120112     0B      -     26.5K  -
pool1/data-backup@2023120114     0B      -     26.5K  -
pool1/data-backup@2023120116     0B      -     26.5K  -
pool1/data-backup@2023120118     0B      -     26.5K  -
pool1/data-backup@2023120120     0B      -     26.5K  -
pool1/data-backup@2023120122     0B      -     26.5K  -
pool1/data-backup@2023120200     0B      -     26.5K  -
pool1/data-backup@2023120202     0B      -     26.5K  -
pool1/data-backup@2023120204     0B      -     26.5K  -
pool1/data-backup@2023120208     0B      -     26.5K  -
pool1/data-backup@2023120210     0B      -     26.5K  -
pool1/data-backup@2023120212     0B      -     26.5K  -
pool1/data-backup@2023120214     0B      -     26.5K  -
pool1/data-backup@2023120216     0B      -     26.5K  -
pool1/data-backup@2023120218     0B      -     26.5K  -
pool1/data-backup@2023120220     0B      -     26.5K  -
pool1/data-backup@2023120222     0B      -     26.5K  -</pre>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc8">ホスト間のクローン</span></h2>



<p class="wp-block-paragraph">先ほどまでは同一ホスト内でのクローンを行っていました．遠隔地のバックアップを実施したいなどホスト間のクローンを持ちたいケースは多いと思います．<br>ここでは，ホスト間のクローンについて説明します．</p>



<h3 class="wp-block-heading"><span id="toc9">環境整備</span></h3>



<p class="wp-block-paragraph">ホスト間ですので，基本はネットワーク経由になります．方法は RSH や SSH などになりますが，WAN を超えた場合を想定して SSH での zfs send / recv を例に環境の整備の例を記載します．</p>



<h4 class="wp-block-heading"><span id="toc10">送信側の SSH の準備</span></h4>



<p class="wp-block-paragraph">cron などで実施することが想定されるため，公開鍵認証でパスフレーズ無しで行うことになると思います．<br>ですので，その準備を行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># ssh-keygen -f /root/.ssh/zfs
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/zfs
Your public key has been saved in /root/.ssh/zfs.pub
The key fingerprint is:
SHA256:t7h8H2HD5dYDEQHR/syNOOjNOe1uMEKTz356TyduHzo root@bsd13-1.seichan.local
The key's randomart image is:
+---[RSA 3072]----+
|           o++o  |
|             ..  |
|           ....  |
|          +. +.. |
|        S..==.*oo|
|         oooB+.+o|
|        ...=.*..o|
|       . .o *EBoo|
|        o. .o@=oo|
+----[SHA256]-----+
</pre>



<p class="wp-block-paragraph">ZFS で使用するための鍵として /root/.ssh/zfs を指定しました．受け側に渡す公開鍵は /root/.ssh/zfs.pub になります．公開鍵を受け側ホストに設定をしていきます．</p>



<h4 class="wp-block-heading"><span id="toc11">受信側の SSH の準備</span></h4>



<p class="wp-block-paragraph">送信側の公開鍵を /root/.ssh/authorized_keys にセットします．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDxXlxhbPVYeu7afXOuOjl6imlbZ23HiCiyktSUGb1liOtJOTK0xKqMkOX3d03UJP43GZW1B8ASHaMV0MJj0gVaSv54mN5Kwi7cczKYVfVs5SsLNieLgclTZ3Hes7qbFmxH5+FrSccsJFrcjs4Mjdhdn6UBzPwNDll9Y/YHWCdGcwUiAvfJJZQH+K88A8X/Yv0kGNF82kuQE7xjW+GQPYfhTFMaFEPZF/tfiI55VxevdDoox52CaHFWrEIDPQHRmrrxvU3dcR88bpdKhO/8CnI7vbOYmfi5OYBOVJJ+5l9YWih9pEBhofBvrrhP5rB0C4O5jhojfv2F+lG0MkDep4AwcrpgQ8EQlahbKozJ8pdE1VDDEYkzCaE1yJzY8R6o5QFSXcSocBBQpMnLde1EiaMVP/w1e3p4OMhAMlUi3MkdtXLDT1r6r98v3KiQEp/ZQCfSnvrEapO0E5LCco00yoUY6uxu5XPi2pLTjcLFcucQQGxQiJfzdhAK4+kEAqUu3nU= root@bsd13-1" >> /root/.ssh/authorized_keys</pre>



<p class="wp-block-paragraph">その後，鍵を利用してパスフレーズ無しでログインができることを確認します．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@bsd13-1:~ # ssh -i /root/.ssh/zfs root@192.168.241.43
The authenticity of host '192.168.241.43 (192.168.241.43)' can't be established.
ED25519 key fingerprint is SHA256:UfCmkkApPp8jkMDabQUvzazpTuIzbK8LOxaUqtMVQYg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.241.43' (ED25519) to the list of known hosts.
Last login: Wed Dec 20 10:03:51 2023 from 192.168.241.192
FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC

Welcome to FreeBSD!

root@bsd13-2:~ #</pre>



<h3 class="wp-block-heading"><span id="toc12">受信側の ZFS プールの準備</span></h3>



<p class="wp-block-paragraph">受信側の ZFS プールを作成します．詳細な手順は省いていますので「<a href="https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-zfs-%e3%83%97%e3%83%bc%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90.html" target="_blank">FreeBSD で ZFS を利用する – ZFS プールの作成</a>」を参照ください．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zpool create pool0 da1

# zpool status
  pool: pool0
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        pool0       ONLINE       0     0     0
          da1       ONLINE       0     0     0

errors: No known data errors</pre>



<h3 class="wp-block-heading"><span id="toc13">初回バックアップ</span></h3>



<p class="wp-block-paragraph">ローカルとの違いは特にありません．一番最初に持っていきたい状態のスナップショットを指定する形になります．先に使用した環境ですので，持っているスナップショットの状態はこのような所から実施していきます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs list -t snapshot pool0/data
NAME                    USED  AVAIL     REFER  MOUNTPOINT
pool0/data@2023120110     0B      -     34.0K  -
pool0/data@2023120112     0B      -     34.0K  -
pool0/data@2023120114     0B      -     34.0K  -
pool0/data@2023120116     0B      -     34.0K  -
pool0/data@2023120118     0B      -     34.0K  -
pool0/data@2023120120     0B      -     34.0K  -
pool0/data@2023120122     0B      -     34.0K  -
pool0/data@2023120200     0B      -     34.0K  -
pool0/data@2023120202     0B      -     34.0K  -
pool0/data@2023120204     0B      -     34.0K  -
pool0/data@2023120208     0B      -     34.0K  -
pool0/data@2023120210     0B      -     34.0K  -
pool0/data@2023120212     0B      -     34.0K  -
pool0/data@2023120214     0B      -     34.0K  -
pool0/data@2023120216     0B      -     34.0K  -
pool0/data@2023120218     0B      -     34.0K  -
pool0/data@2023120220     0B      -     34.0K  -
pool0/data@2023120222     0B      -     34.0K  -</pre>



<p class="wp-block-paragraph">この中の一番最初のスナップショットを起点に初回のクローンを行ってみます．</p>



<p class="wp-block-paragraph">送信側はこのように，パイプの後に SSH を実行させ，コマンドとして zfs recv を実行する形で行います．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@bsd13-1:~ # zfs send pool0/data@2023120110 | ssh -i /root/.ssh/zfs root@192.168.241.43 "zfs recv pool0/data-backup"</pre>



<p class="wp-block-paragraph">受信側でどのようになっているかを確認します．指定したファイルシステムが作成されたことと，スナップショットが存在している事が確認できます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cd
root@bsd13-2:~ # zfs list
NAME                USED  AVAIL     REFER  MOUNTPOINT
pool0               154K  96.4G       24K  /pool0
pool0/data-backup  26.5K  96.4G     26.5K  /pool0/data-backup

# zfs list -t snapshot pool0/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool0/data-backup@2023120110     0B      -     26.5K  -</pre>



<h3 class="wp-block-heading"><span id="toc14">ホスト間の増分バックアップを行っていく</span></h3>



<p class="wp-block-paragraph">大事なのはここからになります．<br>ホスト間であればなおさら2回目以降は全部をクローンするのではなく，変更点のみを送信したいと思います．</p>



<p class="wp-block-paragraph">実行するコマンドはホスト内のクローンと同様です．SSH 経由で実行するのが違いとなります．</p>



<h4 class="wp-block-heading"><span id="toc15">途中のスナップショットは維持しない</span></h4>



<p class="wp-block-paragraph">増分のクローンにおいて，最終状態のみ保持出来ればよいという場合は途中のスナップショットがクローン側に存在する必要はありません．そのような場合は次のコマンドになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -i pool0/data@2023120110 pool0/data@2023120122 | ssh -i /root/.ssh/zfs root@192.168.241.43 "zfs recv pool0/data-backup"

# zfs list -t snapshot pool0/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool0/data-backup@2023120110     0B      -     26.5K  -
pool0/data-backup@2023120122     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">初回に送ったスナップショット (正確には zfs send で前回送信したスナップショット) と，次に送りたいスナップショットを指定することで，その間の変更点のみと指定できます．</p>



<p class="wp-block-paragraph">-i オプションはその間のスナップショットを含まない．になりますので，受け側は初回と2回目のスナップショットのみが保存されている状態となります．</p>



<p class="wp-block-paragraph">前回送信した際の終了点は「pool0/data@2023120122」ですので今回の起点が「pool0/data@2023120122」になります．そこからの差分の最新点の「pool0/data@2023120222」までを送りたい場合は次のようになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -i pool0/data@2023120122 pool0/data@2023120222 | ssh -i /root/.ssh/zfs root@192.168.241.43 "zfs recv pool0/data-backup"

# zfs list -t snapshot pool0/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool0/data-backup@2023120110     0B      -     26.5K  -
pool0/data-backup@2023120122     0B      -     26.5K  -
pool0/data-backup@2023120222     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">このように，前回送ったスナップショットおよび新しく送りたいスナップショットを指定することで例えば毎日バックアップを行うということが可能になります．</p>



<p class="wp-block-paragraph">このように，ローカル間でもホスト間でも実施の方式に大きな違いが無く出来ることが理解できたかと思います．</p>



<h4 class="wp-block-heading"><span id="toc16">スナップショットを維持したままクローンする</span></h4>



<p class="wp-block-paragraph">維持の必要の有無はバックアップの用途によりますが，メインと同じ状態を維持したいというケースも当然あります．そんな場合でも対応可能です．<br>初回のクローンが完了しており，2回目以降のクローンを行う所から記載します．<br>(先の維持しないクローンの状態をクリアした所から実施していますので混乱しないでください)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -I pool0/data@2023120110 pool0/data@2023120122 | ssh -i /root/.ssh/zfs root@192.168.241.43 "zfs recv pool0/data-backup"

# zfs list -t snapshot pool0/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool0/data-backup@2023120110     0B      -     26.5K  -
pool0/data-backup@2023120112     0B      -     26.5K  -
pool0/data-backup@2023120114     0B      -     26.5K  -
pool0/data-backup@2023120116     0B      -     26.5K  -
pool0/data-backup@2023120118     0B      -     26.5K  -
pool0/data-backup@2023120120     0B      -     26.5K  -
pool0/data-backup@2023120122     0B      -     26.5K  -</pre>



<p class="wp-block-paragraph">実際はオプションを -i から -I に変えただけですが，これによって間のスナップショットも維持したままクローンが行われます．</p>



<p class="wp-block-paragraph">翌日にも同様に増分をクローンした場合はこのようになります．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -I pool0/data@2023120122 pool0/data@2023120222 | ssh -i /root/.ssh/zfs root@192.168.241.43 "zfs recv pool0/data-backup"

# zfs list -t snapshot pool0/data-backup
NAME                           USED  AVAIL     REFER  MOUNTPOINT
pool0/data-backup@2023120110     0B      -     26.5K  -
pool0/data-backup@2023120112     0B      -     26.5K  -
pool0/data-backup@2023120114     0B      -     26.5K  -
pool0/data-backup@2023120116     0B      -     26.5K  -
pool0/data-backup@2023120118     0B      -     26.5K  -
pool0/data-backup@2023120120     0B      -     26.5K  -
pool0/data-backup@2023120122     0B      -     26.5K  -
pool0/data-backup@2023120200     0B      -     26.5K  -
pool0/data-backup@2023120202     0B      -     26.5K  -
pool0/data-backup@2023120204     0B      -     26.5K  -
pool0/data-backup@2023120208     0B      -     26.5K  -
pool0/data-backup@2023120210     0B      -     26.5K  -
pool0/data-backup@2023120212     0B      -     26.5K  -
pool0/data-backup@2023120214     0B      -     26.5K  -
pool0/data-backup@2023120216     0B      -     26.5K  -
pool0/data-backup@2023120218     0B      -     26.5K  -
pool0/data-backup@2023120220     0B      -     26.5K  -
pool0/data-backup@2023120222     0B      -     26.5K  -
</pre>



<p class="wp-block-paragraph">いかがでしょうか．スナップショットを維持する・しないにかかわらず，ホスト内・ホスト間の ZFS クローンが簡単にできることが分かったかと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc17">番外編 (ZFS クローンをファイルとして保存する)</span></h2>



<p class="wp-block-paragraph">番外編という書き方にしていますが，外部メディアにバックアップとして保存するためにイメージをファイルに保存するということも可能です．<br>ファイルに保存の他，直接テープに書きだしたり DVD/BD に書きだすこともやりようによっては可能です．</p>



<h3 class="wp-block-heading"><span id="toc18">ファイルに書き出す (バックアップ)</span></h3>



<p class="wp-block-paragraph">ここでは，ファイルに書き込む形を紹介します．<br>(元データは pool1/data で，書き出す先は pool1 の中に置きます)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send pool0/data@2023120110 > /pool1/pool0_data@2023120110.img</pre>



<p class="wp-block-paragraph">リダイレクトを使ってファイルに出力をしています．拡張子はなんでもよいのですが，イメージファイルですので .img を拡張子としました．<br>このような形でファイルに書き出すことが可能です．</p>



<p class="wp-block-paragraph">増分も同様です．間のスナップショット込みの情報をファイルに書き出す場合は以下のとおりです．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># zfs send -I pool0/data@2023120110 pool0/data@2023120122 > /pool1/pool0_data@2023120110-data@2023120122.img</pre>



<p class="wp-block-paragraph">いかがでしょうか．コマンドはほぼ変わらずにファイルに書き出すことを実現できています．</p>



<h3 class="wp-block-heading"><span id="toc19">ファイルから書き戻す (リストア)</span></h3>



<p class="wp-block-paragraph">ファイルに書き出したイメージファイルをもとにファイルシステムを復元してみます．<br>ここでは pool0/data-restore として復元してみます．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cat /pool1/pool0_data@2023120110.img | zfs recv pool0/data-restore

# zfs list
NAME                 USED  AVAIL     REFER  MOUNTPOINT
pool0               10.0G   375G     32.0K  /pool0
pool0/data          34.0K  10.0G     34.0K  /data
pool0/data-restore  34.0K   375G     34.0K  /pool0/data-restore
pool0/share         30.6K   385G     30.6K  /pool0/share
pool1                330K  96.4G     82.5K  /pool1
pool1/data-backup   26.5K  96.4G     26.5K  /pool1/data-backup

# zfs list -t snapshot pool0/data-restore
NAME                            USED  AVAIL     REFER  MOUNTPOINT
pool0/data-restore@2023120110     0B      -     34.0K  -</pre>



<p class="wp-block-paragraph">このように，イメージファイルを読み込み，zfs recv に渡すことでリストアすることができます．</p>



<p class="wp-block-paragraph">増分データも同様にリストアすることが可能です．</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># cat /pool1/pool0_data@2023120110-data@2023120122.img | zfs recv pool0/data-restore

# zfs list -t snapshot pool0/data-restore
NAME                            USED  AVAIL     REFER  MOUNTPOINT
pool0/data-restore@2023120110     0B      -     34.0K  -
pool0/data-restore@2023120112     0B      -     34.0K  -
pool0/data-restore@2023120114     0B      -     34.0K  -
pool0/data-restore@2023120116     0B      -     34.0K  -
pool0/data-restore@2023120118     0B      -     34.0K  -
pool0/data-restore@2023120120     0B      -     34.0K  -
pool0/data-restore@2023120122     0B      -     34.0K  -</pre>



<p class="wp-block-paragraph">と，このように増分データのリストアも可能です．</p>



<p class="wp-block-paragraph">先に紹介したホスト間クローンの時に，相手先が ZFS ではない場合はこのようにファイルとして書き出すことでリモートへのバックアップを行う．ということが可能になります．</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">以上，zfs send / recv の紹介でした．質問があればコメント欄で質問頂ければと思います．</p>


<div class=".for-sp">
<div class="table">
<span class="body">
<!-- imobile wiki_上部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846007"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_上部_SP_1 -->
</span>
<span class="body">
<!-- imobile wiki_下部_SP_1 -->
<script type="text/javascript">
 imobile_tag_ver = "0.3"; 
 imobile_pid = "81546"; 
 imobile_asid = "1846017"; 
 imobile_type = "inline";
</script>
<script type="text/javascript" src="https://spad.i-mobile.co.jp/script/adssp.js?20110215"></script>
<!-- imobile wiki_下部_SP_1 -->
</span>
</div>
</div>

<div class=".for-pc">
<div class="table">
<span class="body">
<!-- imobile blog_seichan_記事中_1 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1846028"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_1 -->
</span>
<span class="body">
<!-- imobile blog_seichan_記事中_2 -->
<script type="text/javascript">
 imobile_pid = "81546"; 
 imobile_asid = "1845876"; 
 imobile_width = 300; 
 imobile_height = 250;
</script>
<script type="text/javascript" src="https://spdeliver.i-mobile.co.jp/script/ads.js?20101001"></script>
<!-- imobile blog_seichan_記事中_2 -->
</span>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2023/12/freebsd-%e3%81%a7-zfs-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b-send-recv-%e3%82%92%e4%bd%bf%e3%81%84%e5%80%92%e3%81%99.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
