ラベル TrueNAS の投稿を表示しています。 すべての投稿を表示
ラベル TrueNAS の投稿を表示しています。 すべての投稿を表示
2021年10月30日土曜日

TrueNAS (FreeNAS) で定期的なスナップショット取得を行う

TrueNAS (旧FreeNAS) はスナップショットによるボリュームのバックアップ取得を取得する機能がある。前回、以下記事にて手動によるスナップショット取得手順を記載した。

今回は自動ではなく、TrueNAS (FreeNAS) の機能を使ってスナップショットを定期的に取得する方法を記載する。なお、手順はFreeNAS 11.3で確認をしたものとなるが、TrueNASでも同一手順にて設定できることを確認している。

環境

FreeNAS 11.3-U4.1で確認したが、TrueNASでも同様に実施可能となる。

手順

1. 定期的なスナップショットタスクを作成

「Tasks / Periodic Snapshot Tasks」にて「ADD」を選択する。

すると、定期スナップショットの設定画面が表示されるので、以下を参考に設定する。

設定項目 設定例 説明
Dataset pool-01 スナップショット取得対象を指定する。
Recursive チェックを外す スナップショット取得対象配下のデータセットもスナップショット取得対象に含める場合はチェックする。
Snapshot Lifetime 3 Days スナップショット保持期間。
Schedule the Periodic Snapshot Task Custom (0 3 * * *) スナップショット取得スケジュール。設定値はcronの記載方式で表示されるが、GUIにてcronの記述を意識することなくスケジュール設定ができる (設定手順は次手順にて説明)。
Begin 00:00:00 スナップショット取得が有効となる開始時間。デフォルトのままでOK。
End 23:59:00 スナップショット取得が有効となる終了時間。デフォルトのままでOK。
Allow Taking Empty Snapshots チェック データセット内にデータがない場合もスナップショット取得を行う場合はチェック。
Enabled チェック 本スケジュールタスクを有効にする場合はチェック。

2. スナップショットの取得スケジュールを設定

スナップショット取得のスケジュールは、デフォルトで以下が定義されている。

設定値 説明
Hourly 1時間毎 毎時0分取得
Daily 1日毎 12:00AM取得
Weekly 1週間毎 12:00AM取得
Monthly 1か月毎 12:00AM取得
Custom 上記以外のタイミングで取得

「Custom」を選んだ場合はスケジュール設定画面が表示されるので、取得時間や頻度を選択する。取得間隔として、分、時間、日、月、曜日などを指定し選ぶことができる。今回は、毎日の3:00AM取得にて取得する設定を行った。

3. スナップショット取得結果確認

実際に、スナップショットが取得された結果は「Storage / Snapshots」から確認できる。スナップショットは毎日3:00に取得されており、3日間保持されていることがわかる。

まとめ

以上でTrueNAS (FreeNAS) で定期的なスナップショットを取得する手順は完了となる。FreeNASのGUIはシンプルかつ綺麗に作られており、初見であっても非常に簡単に設定できた。

2020年12月19日土曜日

TrueNAS CORE 12.0にopen-vm-toolsをインストールする

2020年12月現在、FreeNASは11.3が最新バージョンとなるが、次期バージョンからはTrueNASに統合されることが発表されている。

TrueNASはFreeNASとインストール手順や操作手順はほぼ同一となるよう構成されているので、FreeNASを使っていればTrueNASの構築は特に苦労することなく実施できるだろう。

ただし、ひとつ違いがあり、FreeNASにはデフォルトでインストールされていたopen-vm-toolsが、TrueNASには導入されていない。ESXi上の仮想マシンとしてTrueNASをインストールする場合は不便なので、手動でインストールする手順を確認してみた。

環境

  • ESXi 6.7
  • TrueNAS 12.0

手順

1. pkgのリポジトリ設定を修正

TrueNASはFreeBSDベースのストレージOSとなる。FreeBSDではyumでもaptでもなくpkgによるパッケージ管理を行う。

しかし、TrueNASではpkgの外部リポジトリの設定がデフォルトで無効化されているため、pkgコマンドを実行してもエラーになる。そこで、外部リポジトリの設定を有効化させるため、「/usr/local/etc/pkg/repos/」配下の以下2つの設定ファイルをsedにて修正する

# sed -ie 's/enabled: yes/enabled: no/g' /usr/local/etc/pkg/repos/local.conf
# sed -ie 's/enabled: no/enabled: yes/g' /usr/local/etc/pkg/repos/FreeBSD.conf

念のため、修正後のファイルを確認しておく。「FreeBSD.conf」の設定がenabled: yesになっていることを確認する。

# cat /usr/local/etc/pkg/repos/local.conf
local: {
    url: "file:///usr/ports/packages",
    enabled: no
}
# cat /usr/local/etc/pkg/repos/FreeBSD.conf
FreeBSD: {
    enabled: yes
}

2. pkgにてopen-vm-toolsをインストール

pkg updateを実行し、リポジトリへアクセスできることを確認しておく。

# pkg update
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
Fetching packagesite.txz: 100%    6 MiB   6.7MB/s    00:01
Processing entries: 100%
FreeBSD repository update completed. 31973 packages processed.
All repositories are up to date.

問題なければ、pkg install open-vm-tools-nox11でインストールを行う。

# pkg install open-vm-tools-nox11
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        pkg: 1.14.6 -> 1.15.10 [FreeBSD]

Number of packages to be upgraded: 1

The operation will free 31 MiB.
7 MiB to be downloaded.

Proceed with this action? [y/N]: y ←★yを入力
[1/1] Fetching pkg-1.15.10.txz: 100%    7 MiB   6.9MB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.14.6 to 1.15.10...
[1/1] Extracting pkg-1.15.10: 100%
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        open-vm-tools-nox11: 11.0.1_3,2 -> 11.1.5,2 [FreeBSD]

Number of packages to be upgraded: 1

The process will require 2 MiB more space.
1 MiB to be downloaded.

Proceed with this action? [y/N]: y ←★yを入力
[1/1] Fetching open-vm-tools-nox11-11.1.5,2.txz: 100%    1 MiB   1.3MB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Upgrading open-vm-tools-nox11 from 11.0.1_3,2 to 11.1.5,2...
[1/1] Extracting open-vm-tools-nox11-11.1.5,2: 100%

3. TrueNASを再起動

最後にTrueNASを再起動して完了となる。

# reboot

4. ESXiでVMware Toolsの動作を確認

最後にTrueNASをインストールしたESXiにて仮想マシンの情報を確認し、VMware Toolsとしてopen-vm-toolsを認識していればOKとなる。


参考

2020年10月24日土曜日

FreeNASのスナップショットからコピーしたiSCSIボリュームを作成する手順

以前、FreeNASをインストールし、iSCSIストレージとして構築する手順を記載した。

FreeNASは、近年のストレージOSでは標準機能となっている「スナップショット」によるボリュームのデータ静止点の確保ができる。スナップショットは実際のデータのコピーが発生しないため即座に完了する特徴があり、取得したスナップショットからリストアも一瞬で完了する。

さらにスナップショットのデータを別のボリュームとしてコピーして利用することもできる。これにより、もとのボリュームのデータは残しつつ、ボリューム内の一部データだけをリストアするといった使い方ができる。

今回、FreeNASで取得したスナップショットを使って、コピーしたiSCSボリュームをESXiにマウントする手順を記載する。

環境

  • FreeNAS : FreeNAS-11.3-U4.1
  • vCenter Server : vCSA 6.7
  • ESXi : 6.7

FreeNASにてスナップショットを取得

1. スナップショットを作成

「Storage / Snapshots」画面にて「Add」を選択する。

「Dataset」にスナップショットを取得する対象のDatasetを選択する。今回は「pool-01」を選択した。「Name」はデフォルトで取得日時が付与された名前で設定されているので、好みに応じて変更すればよい。

2. スナップショットをコピー

作成したスナップショットの右側にある「>」マークにて展開するすると、「CLONE TO NEW DATASET」が表示されるので選択する。
※なお、「ROLLBACK」はスナップショットにてボリュームそのものをリストアする際に使用する。

スナップショットのコピー名称は「<スナップショット名>-clone」とデフォルトで設定されるが、こちらも好みに応じて変更すればよい。

スナップショットのコピーは「Storage / Pools」から確認できる。もとの「pool-01」配下に、先ほど作成したスナップショットのコピーが作成されていることがわかる。

FreeNASにてiSCSIの設定を行う

1. iSCSIのLUN (=Extent) を作成

「Sharing / iSCSI / Extents」にてiSCSI用のLUNを作成する。この際に、「Path to the extent」にてスナップショットのコピー配下に存在するファイルを指定する。今回はスナップショットのコピー配下の「extent-01」を指定した。

なお、「Extent Size」は既存のファイルを指定する場合は0を指定する

2. LUNとターゲットの紐づけ

「Sharingi / SCSI / Associated Targets」にて、先ほど作成したLUNにESXiからアクセスできるように、ターゲットと紐づけの設定を行う。

vCenter Serverにて新しいデータストアとしてマウント

1. ESXiでLUNを認識していることを確認

vSphere Clientにログインし、任意のESXiを右クリックして、「ストレージ」→「ストレージの再スキャン」を選択する。

これにより、ESXiの「設定」→「ストレージデバイス」に先ほどFreeNASで設定したiSCSIのLUNが表示されるはずだ。

2. データストアを「新しい署名を割り当て」して作成

コピーされたデータストアはそのままでは自動でマウントされないため、任意のESXiを右クリックして、「ストレージ」→「新しいデータストア」を選択する。

新しいデータストアを作成する際に、先ほどFreeNASで設定したLUNを選択する。データストア名は、マウント時に自動で設定されるため、ここではデフォルトのままにしておけばよい。

マウントオプションの画面では、「署名 ~ を持つ未解決のVMFSボリュームがこのディスク上で検出されました。」とメッセージが表示されるので、必ず「新しい署名を割り当て」を選択する。

あとはデフォルトのままでウィザードを終了する。問題なければ、「snap-XXXXXXXX-<コピー元のデータストア名>」という名前でデータストアがマウントされるはずだ。

まとめ

このようにFreeNASではスナップショット機能があり、バックアップ・リストアを瞬時に実行することや、スナップショットからコピーしたボリュームを作成することができる。

今回は手作業によるスナップショット取得を行ったが、FreeNASでは定期的なスナップショット取得と保存期間の管理を設定することができるので、その手順については別途記事にすることにする。

2020年9月18日金曜日

FreeNAS 11.3をESXiにインストールしてiSCSIストレージを構築する

3年前にFreeNAS 9.10を使ってiSCSIストレージをESXi上に構築する方法を記事にした。

3年も経ったことによってFreeNASのバージョンは11.3と2つもメジャーバージョンアップしている。また、自宅のiSCSIストレージはQNAPのNASを利用しているが、管理GUIの動作が重く検証作業に影響が出ていることから、今回、FreeNAS 11.3にてiSCSIストレージを構築しなおすことにした。

FreeNASのダウンロード

FreeNASは以下から最新版をダウンロードできる。770MBほどの容量となる。

ハードウェア要件は以下の通りとなる。メモリの最低8GBというところがハードルが高くて躊躇したが、8GB以下のメモリでもインストールすることは可能なので検証用途なので今回は4GBでインストールすることにした。

  • CPU : 64bitプロセッサ
  • メモリ : 最低8GB
  • インストールディスク容量 : 最低8GB

FreeNASのインストール

FreeNASをインストールするための仮想マシンは、以下の設定にて作成する。この設定は最小構成以下の設定であり、安定した稼働を求めるのであれば、メモリは8GB以上にする必要があるので注意すること。

  • ゲストOSファミリ : その他
  • ゲストOSのバージョン : FreeBSD 11 (64ビット)
  • CPU : 2コア
  • メモリ : 4096MB
  • ハードディスク : 8GB

FreeNASの初期設定

1. OSインストール

FreeNASのISOからブートさせると、シンプルなインストール画面が表示されるので、「Install/Upgrade」を選択する。

RAMが8GB以下だと以下の通り警告が表示されるが、そのまま「Yes」を選択してインストールを進めることができる。

Boot Modeは「Boot via BIOS」を選択する。

2. インストール完了後、再起動

「Reboot System」を選択して再起動を行う。

3. IPアドレス設定

再起動を行うとConsole Setup画面が表示される。デフォルトではDHCPが有効になっているが、毎回IPアドレスが変わると扱いづらいので、固定IPアドレスとする設定を行う。

「1」を選択し、以下の通り設定する。

  • Select an interface : 1
  • Remove the current settings of this interface? : n
  • Configure interface for DHCP? (y/n) : n
  • Configure IPv4? (y/n) : y
  • Interface name : 任意の名前
  • IPv4 Address : 192.168.11.14/24
  • Configure IPv6? (y/n) : n

4. デフォルトゲートウェイ設定

引き続きConsole Setup画面にて「4」を選択し、以下の通り設定する。

  • Configure IPv4 Default Route? (y/n) : y
  • IPv4 Default Route : 192.168.11.31
  • Configure IPv4 Default Route? (y/n) : n

以上でConsole Setup画面は終了となる。引き続き、Webの管理GUIで作業を行う。

5. 管理GUIログイン

ブラウザにて以下のアドレスを入力する。

  • http://<設定したIPアドレス>/

管理GUIでは以下のユーザでログインする。

  • ユーザ : root
  • パスワード : インストール時に設定したパスワード

6. タイムゾーンの設定

デフォルトではタイムゾーンが日本時間になっていない。「System / General」にて「Asia/Tokyo」に変更しておこう。

7. NTPの設定

「System / NTP Servers」にてNTPサーバを設定する。デフォルトでは0.freebsd.pool.ntp.orgなどが設定されているが、環境に応じて変更しておこう。

8. ホスト名の変更

「Network / Global Configuration」にてホスト名を変更する。ドメイン名は不要であったとしても空白で設定はできないので、何かしら設定をしておくこと。

プールの作成

この段階では、FreeNASのOSインストール領域しかなく、データ領域がないため、仮想マシンに仮想ディスクの追加を行ったのち、「プール」と呼ばれるデータ保存領域を作成する。

1. 仮想マシンにディスクを追加

これは通常の手順でVMware Host Clientなどから仮想マシンにハードディスクを追加すれば問題ない。今回は100GBのディスクを追加した。

2. プールを作成

「Storage / Pools」にてプールを新規作成する。先ほど追加したディスクが「da1」という名前で選択できるようになっているので、プールのディスクとして選択し、プールを作成する。

なお、ディスク1本で作成することになるので、「Stripe (=RAID 0)」によるプールとなる。仮想環境なのでRAID 1などで冗長化する必要はないので、Stripeの設定で特に問題はない。

FreeNASのiSCSI設定

引き続き、FreeNASでiSCSIの設定を行う。

1. ポータルを作成

「Sharing / iSCSI / Portals」にて以下の通り、ポータルを作成する。

設定項目 設定値
Discriptsion portal-01
IP Address 192.168.11.14

2. 接続可能とするイニシエータグループを作成

「Sharingi / SCSI / Initiators」にてターゲットに接続可能とするイニシエータグループを作成する。今回は特に接続制限を設けないため、「Allow All Initiators」とした。

設定項目 設定値
Allow All Initiators チェック

3. ターゲットの作成

「Sharingi / SCSI / Targets」にてターゲットを作成する。ターゲットには先ほど設定したポータルとイニシエータグループを設定する。

設定項目 設定値
Target Name target-01
Portal Group ID 1 (potral-01)
Initiator Group ID 1 (ALL Initiators Allowed)

4. エクステント (提供するディスク) の作成

「Sharingi / SCSI / Extents」にてエクステントを作成する。エクステントとは、iSCSIにて提供するディスク領域の設定となる。今回は、iSCSIのエクステントとして「/mnt/pool-01/extent-01」というファイルを作成する設定とした。

(2020/11/28追記)
「Disable Physical Block Size Reporting」の設定値をチェックしない場合、vCenter ServerやESXiにてボリュームをVMFSやRDMでマウントしようとした際に以下のようなメッセージで失敗するので注意すること。

VMFS データストア データストア名 の作成に失敗しました: 操作に失敗しました。診断レポート: Unable to create Filesystem, please see VMkernel log for more details: Failed to create VMFS on device naa.6589cfc000000f7c96869c6c450b7a8f:1

設定項目 設定値
Extent name extent-01
Extent type File
Path to the extent /mnt/pool-01/extent-01
Extent size 10 GiB
Disable Physical Block Size Reporting チェック

5. ターゲットとエクステントの紐づけを作成

「Sharingi / SCSI / Associated Targets」にてターゲットとエクステントの紐づけを作成する。

設定項目 設定値
Target target-01
LUN ID 1
Extent extent-01

6. iSCSIサービスの起動

FreeNASはデフォルトではiSCSIのサービスが起動していないため、「Services」にて起動させる。再起動時にも自動でサービスが起動するよう、「Start Automatically」も有効にしておく。

ESXiにてiSCSIターゲットに接続

最後に動作確認として、ESXiにてiSCSIターゲットに接続し、LUNが問題なく認識するか確認してみよう。

1. ESXiでソフトウェアiSCSIを設定

ソフトウェアiSCSIの設定にて、以下を追加する。

  • 動的ターゲットの追加 : 192.168.11.14 (FreeNASのIPアドレス)

2. FreeNASのLUN表示されることを確認

ストレージデバイス一覧にて、FreeNASのLUNが表示されることを確認する。以下のように「FreeNAS iSCSI Disk」と表示されるLUNがあれば、問題なく認識されている。


まとめ

以上で、FreeNAS 11.3をiSCSIストレージとして構築することができた。メモリが4GBとなり推奨構成よりも少ない環境ではあるが、実際のメモリ使用率は2GB程度となっており、現時点では稼働に問題は発生していないので、検証環境のiSCSIストレージとしては十分に使えそうだ。

人気の投稿