<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://freebsd.seirios.org/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Share FreeBSD based information - server</title>
        <description></description>
        <link>https://freebsd.seirios.org/</link>
        <lastBuildDate>Sat, 16 May 2026 12:58:40 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://freebsd.seirios.org/lib/exe/fetch.php?media=logo.png</url>
            <title>Share FreeBSD based information</title>
            <link>https://freebsd.seirios.org/</link>
        </image>
        <item>
            <title>NGINX with PHP on FreeBSD</title>
            <link>https://freebsd.seirios.org/doku.php?id=server:nginx_php</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginx_with_php_on_freebsd&quot;&gt;NGINX with PHP on FreeBSD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
FreeBSD上でNGINXとPHPが動作するServerを構築する。
なお、OSのInstallは別項に任せ省略する。
&lt;/p&gt;

&lt;p&gt;
NGINX+PHP環境さえあれば様々なWeb Application Serverを構築できるので、その種を。今回は、Dokuwikiを設置するためのサーバーを作る。
&lt;/p&gt;

&lt;p&gt;
前提
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; FreeBSDがInstall済みのServerがある&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Internetに接続できている&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 外部にFirewallがあり、本Server自身ではFirewall処理を行わない（本来は行うべきだが割愛）&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 可能な限りpkg/portsで構築する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Applications(Dokuwikiなど)自身のInstallは（本記事の）スコープ外&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;NGINX with PHP on FreeBSD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nginx_with_php_on_freebsd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-676&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;システム側の設定&quot;&gt;システム側の設定&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/etc/rc.conf.local&lt;/code&gt; に以下を追加 &lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=0&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_local&quot;&gt;rc.conf.local&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;nginx_enable=&amp;quot;YES&amp;quot;
php_fpm_enable=&amp;quot;YES&amp;quot;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
これらの設定は、nginxなりphpなりをports/pkgを用いてInstallしない限り利用されないので、事前に設定しても通常問題にならないが、動作確認後に設定する方が望ましいことが多い。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u30b7\u30b9\u30c6\u30e0\u5074\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u30b7\u30b9\u30c6\u30e0\u5074\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;677-1073&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;packageのinstall&quot;&gt;PackageのInstall&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
導入するパッケージは以下の通り
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sudu&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; nginx&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; curl&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; php73, php73-extensions&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; php73-bz2 php73-curl php73-exif php73-fileinfo php73-ftp php73-gd php73-gettext php73-intl php73-mbstring php73-openssl php73-shmop php73-sockets php73-zip php73-zlib&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; pkg install php73-mysqli php73-pdo_mysql&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;# pkg install nginx-devel curl php73 php73-extensions
# pkg install php73-bz2 php73-curl php73-exif php73-fileinfo php73-ftp php73-gd php73-gettext php73-intl php73-mbstring php73-openssl php73-shmop php73-sockets php73-zip php73-zlib
# pkg install php73-mysqli php73-pdo_mysql&lt;/pre&gt;

&lt;p&gt;
なお、Dokuwikiを動作させるだけなら、mysqliやpdo_mysqlは不要だが、WebApplicationがMySQLを利用することが多いので、一応入れておく。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Package\u306eInstall&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;package\u306einstall&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1074-1892&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;web_serverの設定&quot;&gt;Web Serverの設定&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
PHPとNGINXを設定すれば良い。
&lt;/p&gt;

&lt;p&gt;
一般に、portsによって導入されたServer ApplicationやMiddlewareは、通常&lt;code&gt;/usr/local&lt;/code&gt;以下に配置される。
pkgによってinstallされた各種ファイルがどこにあるかを確認したい場合、&lt;code&gt;pkg info -l [packagename]&lt;/code&gt;でInstallされたファイル一覧が見られる。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Web Server\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;web_server\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1893-2276&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;php関連の設定&quot;&gt;PHP関連の設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
詳細なPHPの設定はPHP関連のマニュアルを参照してほしい。ここでは、日本時間で動作する最小限の設定を掲載する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PHP\u95a2\u9023\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php\u95a2\u9023\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2277-2463&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit6&quot; id=&quot;phpini&quot;&gt;php.ini&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/usr/local/etc/php.ini&lt;/code&gt;を作成し、編集する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini&lt;/code&gt; &lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=2&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_diff&quot;&gt;php.ini.diff&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;*** php.ini-production  Thu Jan 10 10:30:41 2019
--- php.ini     Tue Jan 15 01:45:39 2019
***************
*** 955,960 ****
--- 955,961 ----
  ; Defines the default timezone used by the date functions
  ; http://php.net/date.timezone
  ;date.timezone =
+ ;date.timezone =
+ date.timezone = Asia/Tokyo

  ; http://php.net/date.default-latitude
  ;date.default_latitude = 31.7667&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
この他に、&lt;code&gt;post_max_size&lt;/code&gt;や&lt;code&gt;upload_max_filesize&lt;/code&gt;も設定する方が良いが、Applicationによって異なるのでここには記さない。
&lt;/p&gt;

&lt;p&gt;
また、logをsyslogで出力するように設定した場合は、&lt;code&gt;/usr/local/etc/newsyslog.conf.d/&lt;/code&gt;を作成の上、以下のような内容のファイルを配置する。
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=3&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;php.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# logfilename                   [owner:group] mode count size when  flags [/pid_file] [sig_num]
/var/log/php.log                www:www       600  7     *    @T00  JC&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;php.ini&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;phpini&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2464-3553&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit7&quot; id=&quot;php-fpm関連&quot;&gt;php-fpm関連&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
NGINXからFastCGIを利用してRequestを受け付けるためのインターフェース。
軽いサーバーであれば特に修正の必要はない。
&lt;/p&gt;

&lt;p&gt;
PHP-FPM全般の動作に関する設定は &lt;code&gt;/usr/local/etc/php-fpm.conf&lt;/code&gt; に記述する。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; logをsyslog経由で記録する場合に設定する程度で多くの場合問題はない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Web Serviceに関する設定は、&lt;code&gt;/usr/local/etc/php-fpm.d/www.conf&lt;/code&gt; に記述する。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 通常の設定で多くの場合問題はないが、アクセス数が多いものなどでは、preforkする子の数を増やす方が良い。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; pm.max_children, pm.min_spare_servers, pm.max_spare_servers, slowlog, request_slowlog_timeout あたりが修正対象&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; もちろん、logをsyslog経由で飛ばすなら、newsyslog関連の設定を行うべきである。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/usr/local/etc/newsyslog.conf.d/php-fpm.conf&lt;/code&gt; &lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=4&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;php-fpm.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# logfilename                   [owner:group] mode count size when  flags [/pid_file] [sig_num]
/var/log/php-fpm.log            www:www       600  7     *    @T00  JC
/var/log/php-fpm.slow.log       www:www       600  7     *    @T00  JC&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;php-fpm\u95a2\u9023&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php-fpm\u95a2\u9023&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3554-4732&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;nginx関連の設定&quot;&gt;nginx関連の設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
NGINXをpkgでinstallし &lt;code&gt;service nginx onestart&lt;/code&gt; すれば、とりあえず NGINX は動作する。
&lt;/p&gt;

&lt;p&gt;
あとは、アプリケーションに合わせてserver設定を行えば良い。
&lt;/p&gt;

&lt;p&gt;
一例として、本サイト用のDokuWiki関連の設定を以下に挙げる。http directiveの中のserver directiveのみの記述であることに注意。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;server {
  listen      80;
  server_name freebsd.seirios.org;

  access_log  /var/log/nginx/freebsd.seirios.org.acc  main;
  error_log   /var/log/nginx/freebsd.seirios.org.err  info;

  autoindex   off;
  index       index.html index.php doku.php;
  root        /www-contents/freebsd.seirios.org/;

  location / {
    try_files $uri $uri/ @dokuwiki;
  }

  location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
    expires 30d;
  }

  location ~ ^/(data|conf|bin|inc)/ { deny all; }
  location ~ ^\.ht                  { deny all; }

  location = /robots.txt            { access_log off; log_not_found off; }
  location = /favicon.ico           { access_log off; log_not_found off; }
  location ~ /\.                    { access_log off; log_not_found off; deny all; }
  location ~ ~$                     { access_log off; log_not_found off; deny all; }

  location @dokuwiki {
    rewrite ^/_media/(.*)          /lib/exe/fetch.php?media=$1 last;
    rewrite ^/_detail/(.*)         /lib/exe/detail.php?media=$1 last;
    rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&amp;amp;id=$2 last;
    rewrite ^/(.*)                 /doku.php?id=$1 last;
  }

  location ~ \.php$ {
    try_files $uri =404;
    include conf.http.d/fcgi-options;
  }
}&lt;/pre&gt;

&lt;p&gt;
#minute hour    mday    month   wday    command
#
0,10,20,30,40,50 * *    *       *       /bin/sh /home/www/bin/WebDataSync.sh
&amp;lt;/code&amp;gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=6&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_&quot;&gt;mweb02-php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;#minute hour    mday    month   wday    command
#
5,15,25,35,45,55 * *    *       *       /bin/sh /home/www/bin/WebDataSync.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
あとは、&lt;code&gt;/var/log/cron&lt;/code&gt;を確認して、両方のサーバーでUNISONでの同期が行われていることを確認する。
&lt;/p&gt;

&lt;p&gt;
最後に、newsyslog関係の設定を行う。&lt;code&gt;/usr/local/etc/newsyslog.conf.d&lt;/code&gt;下に、&lt;code&gt;unison.conf&lt;/code&gt;を配置する。
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://freebsd.seirios.org/doku.php?do=export_code&amp;amp;id=server:nginx_php&amp;amp;codeblock=7&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;unison.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# logfilename                   [owner:group] mode count size when  flags [/pid_file] [sig_num]
/home/www/unison.log            www:www       600  7     *    @T0003 JC&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;nginx\u95a2\u9023\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nginx\u95a2\u9023\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4733-&amp;quot;} --&gt;
&lt;!-- cachefile /home/www/freebsd.seirios.org/dokuwiki/data/cache/4/43420c197a710208c478736abca2ae0c.xhtml used --&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 10 May 2019 03:44:58 +0000</pubDate>
        </item>
        <item>
            <title>逸般の誤家庭でパリピな鯖を飼おう</title>
            <link>https://freebsd.seirios.org/doku.php?id=server:paripinas</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;逸般の誤家庭でパリピな鯖を飼おう&quot;&gt;逸般の誤家庭でパリピな鯖を飼おう&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
この記事は、&lt;a href=&quot;https://qiita.com/advent-calendar/2019/freebsd&quot; class=&quot;urlextern&quot; title=&quot;https://qiita.com/advent-calendar/2019/freebsd&quot; rel=&quot;ugc nofollow&quot;&gt;FreeBSD Advent Calendar 2019&lt;/a&gt;のために書き下ろしました。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u9038\u822c\u306e\u8aa4\u5bb6\u5ead\u3067\u30d1\u30ea\u30d4\u306a\u9bd6\u3092\u98fc\u304a\u3046&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u9038\u822c\u306e\u8aa4\u5bb6\u5ead\u3067\u30d1\u30ea\u30d4\u306a\u9bd6\u3092\u98fc\u304a\u3046&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-202&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
逸般の誤家庭に &lt;strong&gt;NAS&lt;/strong&gt; を &lt;strong&gt;FreeBSD&lt;/strong&gt; で組んで &lt;strong&gt;置こう&lt;/strong&gt; よ。簡単だよ。でも、お金はかかるかもよ。というお話です。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TL;DR&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tldr&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;203-380&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;きっかけ&quot;&gt;きっかけ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
我が家には、サーバールーム（以下鯖部屋)があり、&lt;strong&gt;ちょっと&lt;/strong&gt; だけ逸般しています。昔は対外回線も２本あったのでさらに逸般してたのですが、さすがに回線はまとめてしまった。だってお高いんですもの。
&lt;/p&gt;

&lt;p&gt;
さて、鯖部屋には、仮想環境構築用にXCP-ngが動いている鯖とかプリンタとかJetson-nanoとか色々な子が鎮座在しましておられるのですが、その中にボスのような存在の、しかし表からは見えない（見せていない）とても重要な鯖が居られまする。それが &lt;em class=&quot;u&quot;&gt;&lt;strong&gt;NAS&lt;/strong&gt;&lt;/em&gt;。
&lt;/p&gt;

&lt;p&gt;
このNASは、鯖部屋の仮想環境にStorageを供給するのみならず、バックアップデータの保存所にもなっているので、非常に重要な鯖なのです。生き腐れたら困ってしまうのです。だって（ほぼ）すべての環境が…
&lt;/p&gt;

&lt;p&gt;
そう、このNASの電源が壊れたのが全ての始まりだったのです。
&lt;/p&gt;

&lt;p&gt;
壊れた話とか、一時的無理やりな復旧の話とか、そういういろいろは全部すっ飛ばして、本題の「パリピなNAS鯖を逸般の誤家庭で飼う」部分のみを切り出すことにします。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u304d\u3063\u304b\u3051&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u304d\u3063\u304b\u3051&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;381-1643&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;パリピなnas_とは&quot;&gt;パリピなNAS とは&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Google様で検索してもBing様で検索してもDuckDuckGo様で検索しても「パリピなNAS」なんてパワーワードは結果に出てきません。（この記事だって「パリピな鯖」としか書いてないし、「パリピな鯖」としても検索には出てきません。あしからず。）
&lt;/p&gt;

&lt;p&gt;
今回NASを作るにあたり考えたのは、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; とりあえず5年は安定して使いたい&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 十分な容量と性能を確保したい&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; とりあえず、今のIntelCPUはAMDよりもCPU Microcode Patchが多そうで、Updateに不安が…。せっかくだからAMD使う&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
の３点です。なので、清水の舞台から飛び降りるつもりで以下の部材を揃えました。
&lt;/p&gt;
&lt;dl class=&quot;plugin_definitionlist&quot;&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; CPU&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;AMD Ryzen 3700X x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; Memory&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;DDR4-2666 32GB x4&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; &lt;abbr title=&quot;Megabyte&quot;&gt;MB&lt;/abbr&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;ASRock X570 Taichi x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; Case&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;5.25inch Bay x9なもの x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; Case&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;5.25Inch 3Bayに搭載する、2.5Inch HDDx12搭載可能かつHotSwap可能なDiskマウンタ x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; Case&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;5.25Inch 3Bayに搭載する、3.5Inch HDDx4搭載可能かつHotSwap可能なDiskマウンタ x2&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; SSD&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;4T SSD(WD Red) x 12&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; HDD&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;4T HDD(WD Red) x8&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; NIC&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;Intel 10G 2port x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; NIC&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;Intel 1G 2port x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; HBA&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;Broadcom MegaRAID SAS9361-16i x1&lt;/dd&gt;
&lt;dt&gt;&lt;span class=&quot;term&quot;&gt; Video&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;GeForce GT610 1GB x1&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;
ええ、贅沢しました。かなり贅沢であることは間違いないです。はい。
&lt;/p&gt;

&lt;p&gt;
これがパリピなNASの諸元です。はい。え？全然パリピじゃ無い？、ではお見せしましょう。
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://freebsd.seirios.org/lib/exe/detail.php?id=server%3Aparipinas&amp;amp;media=server:paripi:front.png&quot; class=&quot;media&quot; title=&quot;server:paripi:front.png&quot;&gt;&lt;img src=&quot;https://freebsd.seirios.org/lib/exe/fetch.php?w=320&amp;amp;tok=d1f812&amp;amp;media=server:paripi:front.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;正面&quot; alt=&quot;正面&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://freebsd.seirios.org/lib/exe/detail.php?id=server%3Aparipinas&amp;amp;media=server:paripi:inner.png&quot; class=&quot;media&quot; title=&quot;server:paripi:inner.png&quot;&gt;&lt;img src=&quot;https://freebsd.seirios.org/lib/exe/fetch.php?w=520&amp;amp;tok=fe1c7d&amp;amp;media=server:paripi:inner.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;内部&quot; alt=&quot;内部&quot; width=&quot;520&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://freebsd.seirios.org/lib/exe/detail.php?id=server%3Aparipinas&amp;amp;media=server:paripi:side.png&quot; class=&quot;media&quot; title=&quot;server:paripi:side.png&quot;&gt;&lt;img src=&quot;https://freebsd.seirios.org/lib/exe/fetch.php?w=320&amp;amp;tok=281da6&amp;amp;media=server:paripi:side.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;横&quot; alt=&quot;横&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
こんななんです。はい。ファンがとっても「パ・リ・ピ」でしょ？
&lt;/p&gt;

&lt;p&gt;
実は調子に乗って、ケースに追加のファンをつけましたが、これもLEDファンです。これをみた娘が「パリピなファン」と言ったんです。そして組み上がったPCを見て、「パリピなPC」と言ったんです。このマシンはNASになるのだから、このマシンは「パリピなNAS」ということになります。（異論は聞きません）
&lt;/p&gt;

&lt;p&gt;
ケース正面のDiskマウンタが、全部「高輝度青色LED」なので、目が痛いです。ブルーライトカット眼鏡が要りそうな勢いです。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u30d1\u30ea\u30d4\u306aNAS \u3068\u306f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u30d1\u30ea\u30d4\u306anas_\u3068\u306f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1644-3976&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;freebsdでnas&quot;&gt;FreeBSDでNAS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
さて、ここからはちょっと真面目にいきましょう。
&lt;/p&gt;

&lt;p&gt;
今回作成するNASは以下のような実装でいきます。
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; FreeBSD 12.1-RELEASE &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; FileSystem(Boot) &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; 250GB SSD / UFS &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; FileSystem(供給ストレージ用) &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; SSDのみを束ねたZpool(Zssd)とHDDのみを束ねたZpool(Zhdd)の二つ &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; XCP-ngに供給するStorage(仮想Disk用) &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; iSCSI &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; XCP-ngに供給するStorage(インストーラーイメージ用) &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; NFS (v3)(本記事では扱わない) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; iSCSIを供給するI/F &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; 10G(ixgbe)を2本Link Aggregation(LAG)し、Jumbo Payload(9000)で利用 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; NFSを供給するI/F &lt;/th&gt;&lt;td class=&quot;col1&quot;&gt; 1G(em)を２本LAGして利用(本記事では扱わない) &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4143-4689&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;FreeBSD\u3067NAS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;freebsd\u3067nas&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3977-4690&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;osのinstall&quot;&gt;OSのInstall&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
FreeBSDのInstall方法はここでは取り扱いません。&lt;a href=&quot;https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/bsdinstall.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/bsdinstall.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/bsdinstall.html&lt;/a&gt; や、&lt;a href=&quot;https://freebsd.seirios.org/doku.php&quot; class=&quot;urlextern&quot; title=&quot;https://freebsd.seirios.org/doku.php&quot; rel=&quot;ugc nofollow&quot;&gt;FreeBSD利用者のための情報共有&lt;/a&gt;など様々な場所で情報ややり方が公開されているので、探してみてください。
&lt;/p&gt;

&lt;p&gt;
今回のシステムは、基本的に、OSのDistributionだけで、ほとんどの部分が構築できます。実際、自分が使っているDistributionに含まれないツールは
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sudo (doasに移行したいがまだなにもしてない)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; smartmontools (Diskの &lt;strong&gt;S.M.A.R.T&lt;/strong&gt; 情報を取得するために導入&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
だけです。これらをpkgからInstallするだけです。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;将来、SAMBAに対応させたいという気持ちもあるのですが、それはVMから供給する手もあるかなぁ...&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OS\u306eInstall&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;os\u306einstall&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4691-5579&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;osの設定&quot;&gt;OSの設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
インストールが済んだら、OSの設定です。
&lt;/p&gt;

&lt;p&gt;
この記事はあくまでパリピな鯖を飼うことが目的なので、細かい設定は書きません。ちょっと気をつけておくと幸せなところだけをピックアップします。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OS\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;os\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5580-5870&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit9&quot; id=&quot;etcsysctlconf&quot;&gt;/etc/sysctl.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
10GNICをJumbo Payload で利用するので、以下の設定を投入する
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;kern.ipc.nmbjumbo16=262144
kern.ipc.nmbjumbo9=262144
kern.ipc.nmbjumbop=262144
kern.ipc.nmbclusters=262144
hw.intr_storm_threshold=9000
net.inet.raw.maxdgram=16384
net.inet.raw.recvspace=16384&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/sysctl.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etcsysctlconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5871-6184&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit10&quot; id=&quot;etcrcconf&quot;&gt;/etc/rc.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
当然NICにJumbo Payload設定を投入する必要があります。ただし、Jumbo Payloadを利用する場合には、以下の点に注意が必要です。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; PCだけJumbo Payloadの設定をしても、Switch側のMTUが1500では意味がありません。トラブルの元となります。Switch側のMTUも9000以上に設定しておくこと&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 私の場合、SwitchがApresia社の機器なので、MTUを9044に設定してあります。 &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 同一セグメントに接続している全てのInterfaceでMTUを同じ値（今回は9000）に揃えましょう。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今回利用しているIntel NICは、Payloadとして最大で16114 Byteにすることができます。しかし、Switchの都合で、9000 Bytesに設定します。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code&quot;&gt;cloned_interfaces=&amp;quot;lagg0&amp;quot;

ifconfig_ix0=&amp;quot;mtu 9000 up&amp;quot;
ifconfig_ix1=&amp;quot;mtu 9000 up&amp;quot;
ifconfig_lagg0=&amp;quot;laggproto lacp laggport ix0 laggport ix1 mtu 9000 inet 192.0.2.11/24&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/rc.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etcrcconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;6185-7159&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit11&quot; id=&quot;zpoolzfs_の作成&quot;&gt;Zpool/ZFS の作成&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
今回のパリピNASのようなDiskの多いマシンの場合、Diskが壊れることを常に考えておく必要があります。
&lt;/p&gt;

&lt;p&gt;
壊れることに対処するには、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAIDのような「対故障性の高い」形式を利用する　→ 今回はRAID-Z2を利用&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 壊れたDiskを交換する際に分かりやすいようにする準備を整える → gpartを利用して、Disk自体にラベルをつけておく&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 壊れたときに交換しやすいように、HotSwapできる構成をとる → ケースは全て HotSwap 可能なものを選択&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
といった準備が必要になります。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; gpartでlabelつけを行う&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 一例として、Boot用のSSD(250G)にlabelを割り当てる場合を以下に記載します。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;# gpart add -l sata1p1 /dev/ada0p1
# gpart add -l sata1p2 /dev/ada0p2
# gpart add -l sata1p3 /dev/ada0p3&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; diskに割り当てたlabelをみたい場合、&lt;code&gt;gpart show -l&lt;/code&gt; などとしてください。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;# gpart show
=&amp;gt;       40  488397088  ada1  GPT  (233G)
         40     409600     1  efi  (200M)
     409640  479838200     2  freebsd-ufs  (229G)
  480247840    8149288     3  freebsd-swap  (3.9G)
# gpart show -l
=&amp;gt;       40  488397088  ada1  GPT  (233G)
         40     409600     1  sata1p1  (200M)
     409640  479838200     2  sata1p2  (229G)
  480247840    8149288     3  sata1p3  (3.9G)&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ここで割り当てたlabelは &lt;code&gt;/dev/gpt/sata1p1&lt;/code&gt; のような形で利用することができます。fstabなどで指定するDisk名にも利用できるので、便利です。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAID-Z2でFilesystemを構築する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; NASの場合、特にatimeをonにしておくと遅くなるので、atimeはoffにしておくことをお勧めします。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今回は、新規SSD 12台でRAID-Z2を構築する場合を記載しますが、HDDでも手順は同様です。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;# : # GPTにしてLabelをつける
# for i in `seq 0 11`; do
j=`expr ${i} + 1`
gpart create -s gpt da${i}
gpart add -t freebsd-zfs -l ssd_hba${j} da${i}
done
# : # RAID-Z2 SSD poolを作成する
# mkdir /zfs
# zpool create SSD raidz2 /dev/gpt/ssd_hba*
# : # iSCSI export用のzvolを構築する
# zfs create -o volmode=dev -V 16T SSD/zvol&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
これで、iSCSI用ZFS Volumeが完成します。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Zpool\/ZFS \u306e\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zpoolzfs_\u306e\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;7160-9497&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;nasとしての設定&quot;&gt;NASとしての設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ここまでできれば、あとは iSCSI Targetとしての設定を行うだけです。
&lt;/p&gt;

&lt;p&gt;
FreeBSDでは、Systemに当初からiSCSI Targetになるためのdaemonであるctldがあるので、その設定を行います。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;NAS\u3068\u3057\u3066\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nas\u3068\u3057\u3066\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;9498-9759&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit13&quot; id=&quot;etcctlconf&quot;&gt;/etc/ctl.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
ctldは、設定ファイルとして &lt;code&gt;/etc/ctld.conf&lt;/code&gt;を読み込むので、ctld.confを設定します。
詳しい内容はmanページを見てくださいね。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#
# ctl.conf : FreeBSD iSCSI target configuration
#

# iSCSI portal configuration

portal-group pg0 {
    discovery-auth-group no-authentication
    listen 192.0.2.10:3260
}

# iSCSI target configuration
target iqn.2018-05.org.dsk.example:target0 {
    alias nasvol
    auth-group no-authentication
    portal-group pg0

    lun 0 {
        device-id zvol12t
        serial 1
        path /dev/zvol/SSD/vol
    }
}&lt;/pre&gt;

&lt;p&gt;
そして、/etc/rc.confに以下の行を追記します。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ctld_enable=&amp;quot;YES&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/ctl.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etcctlconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;9760-10479&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;終わりに&quot;&gt;終わりに&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
えー、とても長くなりました。それでもNFSには到達できませんでしたし、文章も下手ですね。すみません。疲れたでしょう？
&lt;/p&gt;

&lt;p&gt;
パリピなNASを動かし始めてそろそろ2週間が経つのですが、とても快適です。
というよりも、このNASの限界性能を要求するような状況が未だ発生していないのですが、置き換え前のNASよりも反応が早くて(当たり前だよ)とても快適になりました。
&lt;/p&gt;

&lt;p&gt;
一つだけ問題があるとすると、深夜でも鯖部屋に入ると七色の電飾が延々回り続けるPCのおかげで、部屋の中の雰囲気がとても怪しいことです。
正直、押し込める場所を持たない一般のご家庭では、24時間稼働はちょっと悩ましいところでしょうか。
&lt;/p&gt;

&lt;p&gt;
でもいいんです。今回の記事は「逸般の誤家庭に置く」NASなのですから。
&lt;/p&gt;

&lt;p&gt;
FreeBSDはLinuxに比べて大変にマイナーな、情報も集めにくいOSですが、様々なNetwork系サーバーを構築するには軽くてキビキビ動く、とても可愛いOSです。
興味を持つ方が増えたら幸いです。
&lt;/p&gt;

&lt;p&gt;
今回は生NASを生に作ってみましたが、&lt;a href=&quot;https://www.xigmanas.com&quot; class=&quot;urlextern&quot; title=&quot;https://www.xigmanas.com&quot; rel=&quot;ugc nofollow&quot;&gt;XigmaNAS&lt;/a&gt;というFreeBSDを元にしたフリーのNASアプライアンスもありますから、興味があればどうぞ。
&lt;/p&gt;

&lt;p&gt;
是非是非機会があれば試してみてくださいね。
&lt;/p&gt;

&lt;p&gt;
それでは〜
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u7d42\u308f\u308a\u306b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u7d42\u308f\u308a\u306b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;10480-&amp;quot;} --&gt;
&lt;!-- cachefile /home/www/freebsd.seirios.org/dokuwiki/data/cache/7/78953455f275753211822a61dc46c94c.xhtml used --&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 03 Mar 2020 06:20:05 +0000</pubDate>
        </item>
    </channel>
</rss>
