{"id":440,"date":"2017-08-23T13:46:40","date_gmt":"2017-08-23T05:46:40","guid":{"rendered":"https:\/\/blog.haostudio.net\/hwp\/?p=440"},"modified":"2017-08-23T13:47:41","modified_gmt":"2017-08-23T05:47:41","slug":"%e5%9c%a8-debian-9stretch-%e4%b8%ad%e5%ae%89%e8%a3%9d-zolzfs-for-linux","status":"publish","type":"post","link":"https:\/\/blog.haostudio.net\/hwp\/%e5%9c%a8-debian-9stretch-%e4%b8%ad%e5%ae%89%e8%a3%9d-zolzfs-for-linux\/","title":{"rendered":"\u5728 Debian 9(Stretch) \u4e2d\u5b89\u88dd ZOL(ZFS for Linux)"},"content":{"rendered":"<!--more-->\n<h2>\u5728 Debian 9 \u4e2d\u5b89\u88dd ZOL(ZFS for Linux)<\/h2>\n<p>\u7531\u65bcDebian \u4e26\u6c92\u6709\u5c07ZFS \u7d0d\u5165\u5b98\u65b9\u5957\u4ef6, \u6240\u4ee5\u53ea\u80fd\u5f9ebackports \u53d6\u5f97ZFS \u5957\u4ef6. \u4ee5\u4e0b\u5b89\u88dd\u9069\u7528\u65bcDebian 8(Jessie), Debian 9(Stretch)<\/p>\n<p>Add jessie-backports repository (ZFS packages are in contrib area):<\/p>\n<pre><code># echo &quot;deb http:\/\/ftp.debian.org\/debian jessie-backports main contrib&quot; &gt;&gt; \/etc\/apt\/sources.list.d\/backports.list\n1. apt update\n<\/code><\/pre>\n<p>\u5b89\u88ddKernel headers:<\/p>\n<pre><code># apt install linux-headers-$(uname -r)\n<\/code><\/pre>\n<p>\u5b89\u88ddZFS \u5957\u4ef6:<\/p>\n<pre><code># apt-get install -t jessie-backports zfs-dkms\n<\/code><\/pre>\n<p>\u8f09\u5165 zfs module<\/p>\n<pre><code># echo &quot;zfs&quot; &gt; \/etc\/modules-load.d\/zfs.conf\n1. modprobe zfs\n<\/code><\/pre>\n<p>\u6e2c\u8a66 zfs \u662f\u5426\u6210\u529f<\/p>\n<pre><code># zpool status\n<\/code><\/pre>\n<h4>Get Disk information<\/h4>\n<p>\u5728Linux \u4e2d, \u6211\u5011\u5e38\u7528\/dev\/sda, \/dev\/sdb \u4f86\u5b58\u53d6\u786c\u789f, \u4f46\u662f\/dev\/sda, \/dev\/sdb..\u7684\u9806\u5e8f\u4e26\u4e0d\u4fdd\u8b49\u5c0d\u61c9\u5230\u4e3b\u6a5f\u677f\u7684sata port.\n\u56e0\u6b64, \u8981\u5c0d\u61c9\u4e3b\u6a5f\u677f\u7684sata port \u4e2d\u7684\u786c\u789f\u88dd\u7f6e, \u9700\u8981\u63a1\u7528\u5176\u4ed6\u7684\u8fa8\u8a8d\u65b9\u5f0f.\n\u5df2\u7d93\u6709<a href=\"https:\/\/github.com\/louwrentius\/showtools\">\u795e\u4eba<\/a>\u5beb\u51fa\u597d\u7528\u7684shell script, \u6240\u4ee5\u5c31\u6293\u4e0b\u4f86\u4f7f\u7528\u5427.<\/p>\n<pre><code>#git clone https:\/\/github.com\/louwrentius\/showtools.git\n#cd showtools\n#.\/show disk -mp\n----------------------------------------------------------\n| Dev     | Model              | \/dev\/disk\/by-path       |\n----------------------------------------------------------\n| nvme0n1 |                    | pci-0000:07:00.0-nvme-1 |\n| sda     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-1  |\n| sdb     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-2  |\n| sdc     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-3  |\n| sdd     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-4  |\n| sde     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-5  |\n| sdf     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-6  |\n| sdg     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-7  |\n| sdh     | TOSHIBA MD04ACA400 | pci-0000:00:17.0-ata-8  |\n----------------------------------------------------------\n<\/code><\/pre>\n<p>\u5176\u4e2d\n<code>\/dev\/disk\/by-path<\/code> \u5c31\u662f\u5c0d\u61c9\u5230\u4e3b\u6a5f\u677f\u4e0a\u7684\u786c\u789f\u88dd\u7f6e. \u5f85\u6703\u5c31\u8981\u63a1\u7528\u9019\u500b\u540d\u7a31\u4f86\u8a2d\u5b9azpool.<\/p>\n<h4>\u5efa\u7acb Zpool<\/h4>\n<p>\u6211\u76ee\u524d\u6c7a\u5b9a\u63a1\u7528 &#8220;Raidz1 + Raidz1&#8221;, \u8a2d\u5b9a\u65b9\u5f0f\u5982\u4e0b:<\/p>\n<pre><code>#zpool create -f -o ashift=12 fspool raidz1 pci-0000:00:17.0-ata-1 pci-0000:00:17.0-ata-2 pci-0000:00:17.0-ata-3 pci-0000:00:17.0-ata-3 raidz1 pci-0000:00:17.0-ata-5 pci-0000:00:17.0-ata-6 pci-0000:00:17.0-ata-7 pci-0000:00:17.0-ata-8\n\n#zpool status\n    pool: fspool\n    state: ONLINE\n    scan: none requested\n    config:\n\n        NAME                        STATE     READ WRITE CKSUM\n        fspool                      ONLINE       0     0     0\n          raidz1-0                  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-1  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-2  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-3  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-4  ONLINE       0     0     0\n          raidz1-1                  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-5  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-6  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-7  ONLINE       0     0     0\n            pci-0000:00:17.0-ata-8  ONLINE       0     0     0\n\nerrors: No known data errors\n<\/code><\/pre>\n<p>\u5176\u4e2d\n<code>ashift=12<\/code> \u662f\u70ba\u4e86Advance Format \u7684\u786c\u789f\u683c\u5f0f.<\/p>\n<p>\u555f\u7528ZFS \u58d3\u7e2e\u529f\u80fd, \u53ef\u4ee5\u589e\u52a0\u8b80\u5beb\u901f\u5ea6. \u4f46\u662fCPU \u7b49\u7d1a\u4e0d\u80fd\u592a\u5dee\u5594. \u4e0d\u7136\u6703\u66f4\u6162.<\/p>\n<pre><code>#zfs set compression=on fspool\n<\/code><\/pre>\n<h3>\u555f\u7528 ZED \u670d\u52d9<\/h3>\n<p>ZOL (ZFS on Linux) \u6709\u63d0\u4f9b\u4e00\u500b\u53eb\u505a\n<code>ZED<\/code> \u7684\u670d\u52d9, \u53ef\u4ee5\u96a8\u6642\u76e3\u63a7ZFS \u7684\u72c0\u614b, \u4e26\u900f\u904ee-mail \u4f86\u901a\u77e5.<\/p>\n<h4>Install s-nail (as POSIX mailx incarnation)<\/h4>\n<p>\u6211\u6bd4\u8f03\u5e38\u7528gmail, \u4f46\u662flinux \u7cfb\u7d71\u5167\u5efa\u7684mail \u7a0b\u5f0f\u7121\u6cd5\u4f7f\u7528gmail \u4f86\u5bc4\u4fe1. \u56e0\u6b64\u5728\u555f\u7528 ZED \u4e4b\u524d, \u5148\u641e\u5b9ae-mail \u8a2d\u5b9a.\n\u4e0a\u7db2\u770b\u4e86\u4e00\u4e9b\u8cc7\u6599, \u6c7a\u5b9a\u63a1\u7528\n<code>s-nail<\/code> \u4f86\u53d6\u4ee3\u5167\u5efa\u7684mail \u6307\u4ee4. \u5b89\u88dd\u65b9\u5f0f\u5982\u4e0b:<\/p>\n<pre><code># apt-get install s-nail\n<\/code><\/pre>\n<p>\u5728\n<code>\/etc\/s-nail.rc<\/code> \u4e2d\u589e\u52a0\u4e0b\u5217\u8a2d\u5b9a:<\/p>\n<pre><code>set v15-compat\nset ssl-method=auto\nset smtp-use-starttls\nset smpt-auth=plain\nset smtp=smtp.gmail.com:587\nset user=&lt;the sender gmail addrss&gt;@gmail.com\nset password=&lt;the sender gmail password&gt;\n<\/code><\/pre>\n<p>\u5176\u4e2d\n<code>&lt;the sender gmail addrss&gt;@gmail.com<\/code> \u70ba\u767c\u4fe1\u8005\u7684gmail, <code>&lt;the sender gmail password&gt;<\/code> \u70ba\u767c\u4fe1\u8005\u767b\u5165gmail \u7684\u5bc6\u78bc.<\/p>\n<p>\u7531\u65bc\n<code>\/etc\/s-nail.rc<\/code> \u542b\u6709\u5bc6\u78bc\u5728\u88e1\u9762,\u6240\u4ee5\u6211\u5c07\u6a94\u6848\u5c6c\u6027\u6539\u6210<code>600<\/code>, \u589e\u52a0\u4e00\u9ede\u9ede\u5b89\u5168\u6027.<\/p>\n<pre><code># chmod 600 \/etc\/s-nail.rc\n<\/code><\/pre>\n<p>\u8a2d\u5b9a\u5b8c\u7562, \u6e2c\u8a66\u4e00\u4e0b\u5427<\/p>\n<pre><code># echo &quot;test mail&quot; | s-nail -s &quot;test subject&quot; &lt;target user&#039;s gmail&gt;@gmail.com\n<\/code><\/pre>\n<p>\u5176\u4e2d\n<code>&lt;target user&#039;s gmail&gt;@gmail.com<\/code> \u70ba\u6536\u4fe1\u8005\u7684gmail. \u82e5\u6210\u529f\u7684\u8a71, \u5728\u6536\u4fe1\u8005\u7684gmail \u4e2d\u6703\u6536\u5230\u4f86\u81ea<code>&lt;the sender gmail addrss&gt;@gmail.com<\/code>\u5bc4\u904e\u4f86\u7684\u6e2c\u8a66\u4fe1\u4ef6.<\/p>\n<p>\u82e5\u4e0d\u60f3\u8981\u5728\n<code>\/etc\/s-nail.rc<\/code> \u5bc6\u78bc\u5b58\u653e\u88e1\u9762\u7684\u8a71, \u90a3\u5c31\u5f97\u7528\u4e0b\u5217\u8d85\u7d1a\u9577\u7684\u6307\u4ee4\u4f86\u5bc4\u4fe1\u4e86.<\/p>\n<pre><code>#echo &quot;test e-mail1&quot; | s-nail -s &quot;test mail&quot; -S &#039;v15-compat&#039; -S &#039;ssl-method=auto&#039; -S &#039;smtp=smtp.gmail.com:587&#039; -S &#039;smtp-use-starttls&#039; -S &#039;smpt-auth=plain&#039; -S &#039;user=&lt;the sender gmail addrss&gt;@gmail.com&#039; -S &#039;password=&lt;the sender gmail password&gt;&#039;  &lt;target user&#039;s gmail&gt;@email_addr.com\n<\/code><\/pre>\n<h4>Start the ZED service<\/h4>\n<p>Ok,\n<code>s-nail<\/code> \u5b89\u88dd\u5b8c\u7562\u5f8c, \u6211\u5011\u5c31\u4f86\u7e7c\u7e8c\u8a2d\u5b9a <code>ZED<\/code> \u670d\u52d9\u5427.<\/p>\n<p>\u5728\n<code>\/etc\/zfs\/zed.d\/zed.rc<\/code> \u4e2d, \u4fee\u6539\u4e0b\u5217 3 \u9805\u8a2d\u5b9a, \u5176\u4e2d<a>xxx@gmail.com<\/code>code&gt;xxx@gmail.com&lt;\/code<\/a> \u70ba\u6536\u4fe1\u8005\u7684gmail :<\/p>\n<pre><code>ZED_EMAIL_ADDR=&quot;xxx@gmail.com&quot;\nZED_EMAIL_PROG=&quot;s-nail&quot;\nZED_NOTIFY_VERBOSE=1\n<\/code><\/pre>\n<p>\u555f\u52d5 zed \u670d\u52d9<\/p>\n<pre><code># systemctl restart zfs-zed.service\n<\/code><\/pre>\n<p>\u5982\u6b64, \u4ee5\u5f8c\u7576zfs \u6709\u4e8b\u4ef6\u767c\u751f\u6642, \u6bd4\u5982\u8aaa: \u5b8c\u6210 scrub \u6307\u4ee4\u5f8c, \u4f60\u5728gmail \u4e2d\u5c31\u53ef\u4ee5\u6536\u5230\u901a\u77e5\u4e86.<\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,99],"tags":[9,102,101,100,18],"class_list":["post-440","post","type-post","status-publish","format-standard","hentry","category-linux","category-storage","tag-debian","tag-nas","tag-s-nail","tag-zed","tag-zfs"],"_links":{"self":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/comments?post=440"}],"version-history":[{"count":3,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/440\/revisions"}],"predecessor-version":[{"id":443,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/440\/revisions\/443"}],"wp:attachment":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/media?parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/categories?post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/tags?post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}