あのなつ日記

毎日、色々な事を考えてます。

ZFS on Mac 奮闘記

奮闘記と言うほどでもなく、さっくりと動いてしまった。
ただ、ネット上では『ZFS on Mac』の情報は驚くほど少ないので、一助になればと書いてみました。

 

1.インストール

 

公式サイトから、最新のdmgを落としてきてインストールする。
このときに、Macのセキュリティとプライバシーに引っかかるんだけど、

「許可をするのに、このインストーラーを終わらせてから」

と、終わろうとさせると、

「インストール中です」

の狭間で、どうしようもなくなる。
まあ、このまま無視してもインストールは完了するので、後でなんとかなる。

 

2.フォーマット

 

インストールすると、Macのディスクユーティリティに ZFSが出てくるので、これでフォーマットするだけ。

 

 

だった筈なんだけど、用意したHDDがWindowsで使用していたもので、MBRでフォーマット済だったために、ちょっとはまった。

Error: -69821: Partitioning scheme does not support requested file system(s) partition type(s)

が出て、ディスクユーティリティからZFSでフォーマット出来ないのだ。 なので一度、コマンドラインから、

diskutil eraseDisk JHFS+ tempName GPT /dev/disk2

っと、GPTにして、事なきを得た。

 

disk2〜disk5までのフォーマットが終わった状態。
TYPEのところが、『FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF』となっているけど、気にしない。

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         1.0 TB     disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1.0 TB     disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD - Data     977.9 GB   disk1s1
   2:                APFS Volume Preboot                 83.2 MB    disk1s2
   3:                APFS Volume Recovery                528.9 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4
   5:                APFS Volume Macintosh HD            11.4 GB    disk1s5

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk2s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk2s3

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk3s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk3s3

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk4s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk4s3

/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk5
   1:                        EFI EFI                     209.7 MB   disk5s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk5s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk5s3

 

3.RAIDZの作成

 

色々とググった結果、以下のパラメータでcreateすることにした。

sudo zpool create -f -o ashift=12 -O casesensitivity=insensitive -O normalization=formD tank raidz disk2s2 disk3s2 disk4s2 disk5s2

一応、解説しておくと、

ashift=12
セクタサイズを4096にする。

casesensitivity=insensitive
ディレクトリ名やファイル名の大文字小文字を区別しない。

normalization=formD
ディレクトリ名やファイル名の並び順を正規化形式Dとする。

tank
名前は何でもいいのですが、ZFS界隈ではこの名前をつけたりするのが一般的。

名前以外のパラメータは、この通りにしておいた方が無難。
みんなそうしているみたいで、特にMacの場合には、諸々とエラーの原因になることがあるそうで。

 

が、しかし、、。
以下のエラーを得てしまった。

Failed to load ZFS module stack.
Load the module manually by running '/sbin/kextload /Library/Extensions/zfs.kext' as root.
The /dev/zfs device is missing and must be created.
Try running 'udevadm trigger' as root to create it.

ちなみに言われたとおり、

sudo /sbin/kextload /Library/Extensions/zfs.kext

を実行するも、

/Library/Extensions/zfs.kext failed to load - (libkern/kext) system policy prevents loading; check the system/kernel logs for errors or try kextutil(8).

これでググったりして、30分ぐらいロスしてしまったけど、なんの事は無い、インストール時に無視したツケが回ってきていただけだった。

セキュリティとプライバシー > 一般 に何か出てたので、許可したらすんなりいった。
GUIだと画面に出てくるんだけど、コマンドラインでやっているので、知らない間にこっそりと出ているので要注意だ。

あと、bashで作業するので、bashのフルアクセスも許可しておくと無難かも。

 

で、以下の結果。

$ zpool list
NAME   SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  5.44T  2.64M  5.44T        -         -     0%     0%  1.00x  ONLINE  -
$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         1.0 TB     disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1.0 TB     disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD - Data     977.8 GB   disk1s1
   2:                APFS Volume Preboot                 83.2 MB    disk1s2
   3:                APFS Volume Recovery                528.9 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4
   5:                APFS Volume Macintosh HD            11.4 GB    disk1s5

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk2s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk2s3

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk3s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk3s3

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk4s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk4s3

/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk5
   1:                        EFI EFI                     209.7 MB   disk5s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               1.5 TB     disk5s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk5s3

/dev/disk6 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +4.3 TB     disk6
   1:                ZFS Dataset tank                    4.3 TB     disk6s1
$ zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

	NAME         STATE     READ WRITE CKSUM
	tank         ONLINE       0     0     0
	  raidz1-0   ONLINE       0     0     0
	    disk2s2  ONLINE       0     0     0
	    disk3s2  ONLINE       0     0     0
	    disk4s2  ONLINE       0     0     0
	    disk5s2  ONLINE       0     0     0

errors: No known data errors

 

 

4.パーミッション

 

ユーザーレベルが使用できるように適当に。

$ sudo chmod 777 /Volumes/tank

 

5.ドライブの切り出し

 

tankのまま使用してもいいんだけど、ZFSは多層的に管理できるので、Usersと言う名前で、切り出してみた。

$ sudo zfs create tank/Users
$ sudo chmod 777 /Volumes/tank/Users

 

 

しかし、これが問題点になるとは、、、。

 

6.問題点

 

さっくりと設定できて、サクサク動いて、通常使用でも問題は起きてないんだけど、ちょっと不満点が。

ZFSは多層的に管理されているんだけど、dfコマンドはそれに対応していない。
なので、tankはみられるけど、その下のtank/Usersはみられないし、tankとして使っている容量にtank/Usersは含まれていない、、、。

リンゴマークから、このマックについても多分、単純に dfコマンドを実行しているだけなんだろう、結果は同じ。

 

 

一応、zfsコマンドではみられる。

$ zfs list -r tank
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank         301G  3.53T  1.81M  /Volumes/tank
tank/Users   301G  3.53T   301G  /Volumes/tank/Users

tank/Usersを切り出さなかったら良かったのか?
切り出さなくてもみられなかったのか?
今となっては、謎。

そして、この点に関しては、不便極まりない、、、。

外付けHDDボックス購入

MacSSDがいっぱいになってきたので、HDDを増設することにした。

1.5TBのHDDが10台ほど余っているので、箱だけ買って適当にRAIDを組み上げようと画策。
っと、思って買ったんだけど、Macって、ソフトウェア(or BIOS)だけでRAID5が組めないのかーー。

 

仕方がないので、ZFSで構築することにした。

ZFSとは、ライセンス問題が解消されればAppleLinuxも組み込みたい意向は示している画期的なファイルシステムだ。
(Ubuntuのパッケージには入っているけど、Linux著作権委員会から文句が飛んでいるらしい。)

 

ZFSは出始めの頃に、FreeBSDで試したっきり。
ちょっとググっても、ZFS on Macの情報は驚くほど少ない。

はてさて。

同じ箱でRAID5付のは5,000円ぐらい高い、、。

はら八


2016.09.30 @Faceook********************

バイト先が外苑前に引っ越してきてから、昼飯に苦労している。

絶対的な数が少ない上に、ランチの時間が14時までが多い。
混雑を避けて、13時半~14時半をランチに当てているのがアダになっている。

あと、麹町に比べてちょっとお高いですね。
大体、100~200円ぐらいお高い感じ。

今日の蕎麦屋は美味かったよ。
なんか、コダワッている風だった。

サラダにかかっているのは、蕎麦の実を揚げたものだし。
蕎麦自体も風味が良かった。

しかも、イチョウ並木の真ん前。
窓際の席だったけど、絶景だった。

食べログ→ 青山 はら八

********************2016.09.30 @Faceook


銀座スイス

カツカレーの発祥って、どこの店だか知っている?

諸説あるけど、カツカレーと認識したものを初めて出したのは、銀座スイス。
読売ジャイアンツ千葉茂が、カツとカレーを一緒に食べたいと言い出したのがきっかけ。

銀座スイスのもう一つの店舗が築地にあるので、打ち合わせのついでに寄ってみた。

旨いよ。

すっごい濃厚なので、好みが別れるかなぁ。
昔の凝った洋食屋のカレーみたいな感じ。


食べログ→ バー&グリル 銀座スイス 築地店

シェイクシャック

シェイク シャック バーガーに行ってみた。
名前にちなんで、黒ゴマシェイクとシャックバーガーを頼んでみた。

肉肉しくて、旨かった!

しっかし、外苑前に越してから、シャレオツ過ぎて、おっさんにはちょっと違和感。

食べログ→ シェイクシャック Shake Shack

魔法に頼っちゃ、いけないよ!


2016.09.21 @Faceook********************

先日、長女が、朝のまどろみの中で何とは無しに、TVでプリ○ュアを視ていた。
オレはリビングでコンピュータをいじっていたので、横目に入ってきていた。

で、その話の結論が、

『魔法にばっかり頼っちゃいけない』

だった。Σ( ̄▽ ̄ι)

頼れねーし、そもそも、使えねーし( ̄△ ̄)。
30分費やして得た教訓がそれかいっ!!

しかもその理由が、「達成したときの感動が無いから」だって。
はぁぁぁあああああ?
どれだけ自分本位だよっ!( ̄∀ ̄メ)

日曜日の朝から疲れちゃったよ~(ノД`)

********************2016.09.21 @Faceook


「アラバ」か?「アレバ」か?

教育勅語って、いいこと書いてあるんだけど、左翼系の先生に教わっていたせいか、子供の頃はキチンと読まずに悪いものと決めつけていたよ。

その先生曰く「天皇のために死ね」と書いてあると言っていた。
多分、「一旦緩急あれば、義勇公に奉じ」の箇所だと思うんだけど、これはそういう意味ではないよ。

”聖書を読みとく鍵は聖書の中にあり”で読み解くと、文中、

  • 今上天皇のことは「朕」
  • 歴代天皇のことは「皇祖皇宗」
  • 天皇のって、意味を用いるときは「皇」

となっているので、「公」はそのまま公(おおやけ)と言う意味ではないかな?

しかしながら、「以って、天壌無窮の皇運を扶翼すべし」につづいているから、なんとも言えない。
「それによって、天壌無窮(=永遠)の皇運(=天皇の手による政治)を扶翼すべし(=助けよう)」だからね。

実はこの一文にはレトリックが隠されているのではないか?

一つはよく言われる「一旦緩急あれば」の文法上の誤り問題。

wikiにはこうある。

----------------------
条件節を導くための仮定条件でなくてはならず、和文の古典文法では「未然形+バ」、つまり「アラバ」が正しく、「アレバ」は誤用である、とする説である。
これに対して、教育勅語は漢文訓読調であるから、条件節であっても「已然形+バ」とするのが普通であり、誤りではないとする説もある。
----------------------

ネットでググっても、どちらかの説を主張して、そこで議論は終わっているような感じ。
要はどっちでもいいっぽい。

しかし上記は、レトリックの導入部に過ぎなかった。
(から始まる、ココからオレ説*゚∀゚)ノ)

何故、(”あらば”ではなく)「一旦緩急”あれば”」としたのか?
思いつくのは、『史記 袁オウ伝』からの引用ということだ。
引用の形を取ることで、その後に続く語句も引用であると印象付けたかったのではないか?

「義勇公に奉じ」に該当する故事成語は無い。
「義勇」で思い浮かぶのは、「論語」の「義を見てせざるは勇無きなり」

あまりにも有名なこの句は、江戸時代を通じて朱子学の命題とされてきた。
「義」とは何ぞや?
「勇」とは何ぞや?
これに解題を与えることが、日常的に寺子屋等で行われていたと言われてた。

正に上記はこれに対する(政府公式の)解題という形になっているのではないでしょうか?
それを元に読み解くと、下記のようになるのではないでしょうか?

”義”も”勇”も、各人それぞれ考え方はあるでしょうけど、一旦緩急あれば、私(わたくし)ではなく、公(おおやけ)で考えましょう。

以上、漢籍好きの妄想でした。Σ( ̄▽ ̄ι)