9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Truenas Core+Nextcloud環境構築

Last updated at Posted at 2021-07-05

はじめに

従来は膨大なドキュメントのデータを6TBのHDD上に、研究用のデータをオンラインストレージのSeafileで200GBのSSD上に保存していたが、容量が圧迫されていたため、保存環境の見直しを行った。

従来環境

  • OS
    • Ubuntu Mate 18.04 LTS Desktop
  • ストレージ
    • 100GB SATA SSD
      • OS用
    • 6TB HDD
      • ドキュメント保存用
    • 200GB SATA SSD
      • オンラインストレージ用
  • サービス
    • ドキュメント保存用
      • SFTP
    • オンラインストレージ
      • Seafile
        • 高速な同期が可能だが、著名度に難あり。Joplinとの直接の提携ができない。
    • 研究ノート(Markdown)
      • Joplin
        • 内部リンク、Mermaidなども使えて、重宝している。

必要なこと

今回の環境構築にあたって、保存環境に必要なことを記述する。

  • NASに求める条件
    • データの冗長性の確保
      • 今まではHDD一個に保存していたため、データが消える可能性が大いにあった。
    • 容量の拡大
      • 6TBの容量に達したため、より大きな容量が必要であった。
    • 管理の簡単さ
      • GUIで状態の管理、機能の設定をできることを求める。
  • オンラインストレージに求める条件
    • NAS上での簡単な環境構築
    • 高速な同期
    • ファイルの編集履歴の保存
    • 削除したファイルの保存(ゴミ箱)
    • Joplinとの提携の容易さ
    • 知識のない家族でも簡単にインストール、利用ができること
  • ドキュメント保存
    • 高速な転送
  • 研究ノート
    • Joplinを用いる

新環境

必要な条件から新環境を決定した。

ソフトウェア構成

  • NAS OS
    • Truenas Core
  • オンラインストレージ
    • Nextcloud
      • プラグインから簡単にインストール可能
      • 同期は遅いがMemcache(データをメモリ上にキャッシュ)を設定すればある程度の高速化は可能
      • SeafileはTruenasのプラグインにはなかった。
  • ドキュメント保存
    • Webdav
      • 保存にはSFTPでアクセスする
      • SFTPの設定が面倒な端末では閲覧はWebdavで行う
  • 研究ノート
    • Joplin
      • Nextcloudとの直接提携可能

ハードウェア構成

  • 5.25インチベイ 3個
    • 5.25インチベイ3個を3.5インチベイ5個に変換が可能な部品を購入。
    • 冷却が必須なため、ファンがついているものを選んだ
    • レールがついているため、簡単にHDDの抜き差しが可能
  • 3.5インチベイ 8個
    • ファンがついているため、冷却が可能
    • レールがついているため、簡単にHDDの抜き差しが可能
  • ZFS VDEV
    • RAIDZ2
      • 2個のHDDまで壊れても元のデータが復元可能
      • 1個のHDDが壊れた後のResilveringでもう一個が壊れる可能性が十分にあるためRAIDZ1にはしなかった。
    • 6 x 3TB SATA HDD (12TB利用可能)
    • RAIDZには書き込み方式の一つであるCMRが必須
  • メモリ
  • SATA端子
    • 端子が足りなかったため、追加
      • (JMB585) 2 x PCIe3.0 -> 5 x sata3.0アダプタ
  • SATA15pin電源端子
    • 端子が足りなかったため、追加
      • IDE4pin -> 5 x SATA15pin

環境構築

Truenas CORE

インストール手段は省略する。設定内容について述べる。

  • snapshot
    • 毎日深夜に一回、二週間保存
  • SMARTテスト
    • 毎日深夜に一回
  • スクラブ
    • 毎日深夜に一回
  • UPS
    • 20分間電源が再生しない場合はシャットダウン
  • 管理画面へのアクセス
    • ルーター上でポートフォワーディングを行う。9022 -> 22
    • パスワード認証を無効化。公開鍵認証を利用
    • SSHトンネルでlocalhost:1443からアクセスできるようにする
    • SSH config設定内容
Host truenas_gui
User (ユーザー名)
HostName (グローバルIP)
IdentityFile ~/.ssh/truenas
ForwardX11 yes
Compression yes
Port 9022
LocalForward 1443 localhost:443   

Nextcloud

  • TruenasのプラグインからNextcloudをインストール
  • グローバルIPからアクセスできるように/usr/local/www/nextcloud/config/config.phpの以下の行を編集
'trusted_domains' =>
array (
  0 => 'localhost',
  1 => '(ローカルIP)',
  2 => '(グローバルIP)',
),

Memcacheがないため、Shellから設定

  • Shell上で以下のコマンドを実行
pkg install p5-Locale-gettext help2man texinfo m4 autoconf
portsnap fetch extract
make config-recursive install -C /usr/ports/database/pecl-redis
  • /usr/local/etc/redis.confの以下の行を編集
    • portの行をport 0に変更
    • unixsocketの行を以下に変更
unixsocket /tmp/redis.sock
unixsocketperm 777
  • Shell上で以下のコマンドを実行
sysrc redis_enable=YES
service redis start
  • /usr/local/www/nextcloud/config/config.phpに以下の行を追加
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => 
array (
  'host' => '/tmp/redis.sock',
  'port' => 0,
),

Joplin

  • Joplinの設定から同期先としてNextcloudを設定
    • リンク:https://[グローバルIP]/remote.php/dav/files/[ユーザー名]/[joplinのディレクトリ]

ファイルの移行(ext4->zfs)

Shellで以下のコードを実行する。

fsck_ext2fs /dev/adXXpX
mount -t ext2ds /dev/adXXpX /mnt/(mount先)

rsyncを用いて内容を移行する

rsync -avh --info=progress2 (コピー元) (コピー先)
9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?