問題タブ [zfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2366 参照

rsync - Btrfs スナップショット WITH バックアップ

最初のバックアップでディスク全体をコピーし、次に rsync を使用する代わりにスナップショット ファイルをコピーして、btrfs ファイル システムをバックアップする方法はありますか (または、これは悪い考えですか)?

0 投票する
1 に答える
3285 参照

filesystems - ZFS でファイル作成時間を設定するにはどうすればよいですか?

ZFS を実行する NAS を取得したばかりで、ファイルをそこに転送するときに作成時間を保持したいと考えています。linux/ext4 (データが現在ある場所) と zfs ストアの作成時間または誕生時間の両方。zfs の場合、stat コマンドによっても報告されます。しかし、元のファイル システムの作成時刻を反映するように、ファイルの作成時刻を設定する方法がわかりませんでした。ファイル作成時間を設定するスクリプトを debugfs にフィードできる ext4->ext4 転送とは異なります。

ZFS の debugfs に似たツールはありますか?

PS。よりよく説明するには:

  • Ubuntu 14.04 ラップトップに接続された USB ドライブがあります。個々のファイルの作成日 (生年月日) を気にするファイル システムを保持しています。これらの作成タイムスタンプは、debugfs に基づくスクリプトを使用して頻繁に参照し、crtime として報告します。

  • ZFS を実行している NAS ボックスにデータを移動したいのですが、私が知っている方法 (scp -p -r、rsync -a、および tar など、私が試したもの) では変更時刻は保持されますが、作成時刻は保持されません。

  • 別の ext4 ファイル システムに移行する場合は、すばらしいツールを使用して問題を解決しますdebugfs。具体的には、ソース fs (ファイル システム) で (filename, crtime) ペアのリストを作成debugfs -wし、ターゲット fs で使用して、次の形式の行でスクリプトを読み取ることができます。

    set_inode_field filename crtime <value>

私はこれをテストしましたが、問題なく動作します。

  • しかし、私のターゲット fs は ext4 ではなく ZFS でありdebugfs、ターゲット マシンで実行されますが、そこではまったく役に立ちません。fsさえ認識しません。inode を直接編集してタイムスタンプを変更できるもう 1 つのデバッグ ツールは fsdb です。それもターゲットマシンで実行されますが、ZFSファイルシステムを認識できないようです。

  • NAS ボックスを売ってくれた人たちから、debugfs と fsdb は ZFS ファイルシステム向けではないと言われましたが、同等のものを見つけることができませんでした。それで、多くのグーグルと物事を試した後、誰かが答えを持っていることを期待して、今日ここに質問を投稿することにしました.

これがどれだけ大変なことになっているかに驚いています。すべてのタイムスタンプが同一になるようにデータセットを複製する方法の問題は、アーカイブの観点からは非常に自然なことのように思えます。

0 投票する
1 に答える
4173 参照

zfs - zpool を作成できません 1 つ以上の vdev が同じデバイスを参照しているか、デバイスの 1 つがアクティブな md または lvm デバイスの一部です""

新しいサーバーに zfs プールを作成しようとしています。OSはCentOS6.6です。カーネルは 2.6.32-504.16.2.el6.x86_64 です

デバイス文字別:

zpool create -f data-pool raidz2 sdb sdc sdd sde sdf sdg sdi sdh cache sda -m /data

'data-pool' を作成できません: 1 つ以上の vdev が同じデバイスを参照しているか、デバイスの 1 つがアクティブな md または lvm デバイスの一部です

ディスク パス別

'data-pool' を作成できません: 1 つ以上の vdev が同じデバイスを参照しているか、デバイスの 1 つがアクティブな md または lvm デバイスの一部です

lsblk からの出力:

マルチパスがインストールされていません

ディスクを使用できるものがわかりません。誰かが私を正しい方向に向けることができますか?

詳細情報 (fdisk の出力と /dev/disk/by-path/) を提供したいと思いますが、フォーラムはコードが多すぎると不満を漏らしています。

ありがとう!

0 投票する
1 に答える
684 参照

unix - root として GEOM_ELI 暗号化 ZFS プールをマウントする

GEOM_ELI の AES128 で暗号化された 3 ディスクの RAIDz1 プールがあり、バージョン 8 から FreeNAS で使用しています。多くの zpool のアップグレードがあり、全体として ZFS に非常に満足しています。

しかし最近、私は FreeNAS に不満を募らせています。何年にもわたって修正されていない大部分のバグ。しかし、全体的には、ほとんどが読み取り専用であるにもかかわらず、OSにフラッシュドライブを使用することを強く主張しています。これは依然として単一障害点であり、常に起動時間を数分延長しています。要するに、このプールで Vanilla FreeBSD を使用したいだけです。私はより多くの柔軟性を求めており、この素晴らしいオペレーティング システムで自分自身を教育したいと考えています。

さらに詳しい調査を行った結果、FreeBSD を単純に ZFS ボリュームにインストールして / としてマウントする方法に関する多くのチュートリアルを見つけました。後で、FreeBSD 10 がインストール中にこれを行うことがわかりました。これは控えめに言っても素晴らしいことです。

使用したチュートリアル

私は VMWare ワークステーションで VM を作成し、3 つの 2 TB ドライブを物理ディスクとしてパススルーし、すべてのステップを T までたどったところ、すべてがうまくいきました。実行しているコマンドと、実行している理由をよりよく理解したので、すでに多くのデータが存在する既存のプールに対してこれを実行したいと考えました。

デフォルトでは、FreeNAS はすべてのデータ ディスクの先頭に 2GB の SWAP パーティションを作成します。スワップ スペースを削除し、各ドライブに 1.5GB のパーティションを作成し、スワップ用に 512MB を残しました。必要に応じて変更しながら、すべての手順を実行しました。(私は 3 つのディスクを持っています。チュートリアルでは 4 について説明しています。私のプール名は foxhole です。チュートリアルは zroot です。) geom_eli を使用してボリュームの復号化に成功し、マウントに成功しました。

提供された手順をスキップしませんでした。与えられたすべてのコマンドをコピーし、テキスト ファイルに変更して、自分のケースに合うようにしました。

ここに私の問題があります。すべてをテストするために最終的に再起動した後、カーネルが起動し始め、マウントルート端末で吐き出されます。geom_eli はルート ボリュームを復号化しようとしなかったようです。なぜかという疑いがあります。私が間違っている場合は修正してください。チュートリアルの開始時に、暗号化されたボリュームの新しい geom を作成するコマンドが与えられます。

ボリュームが既に存在するため、「/boot/zfs/bootdir/daXp4.eli」ファイルを作成するコマンドを実行できません。

私は本当にこれが原因であると推測しています。実行しようとしたときにこれに気付きました:

「No Match」をくれました。

プールが復号化されたときにそれらが作成されたと思いました。

この投稿をお詫び申し上げます。あまり情報を与えずに、できるだけ多くの情報を提供しようとしています。私は過去18時間これに取り組んできました。頭脳明晰な方にぜひ見ていただきたいです。

有用な情報を見逃した場合は、お知らせください。

0 投票する
2 に答える
1940 参照

linux - /dev/null をファイル pattern に再帰的にコピーする

ディスク クォータに達した ZFS システムを使用しています。その結果、rmコマンドを使用できなくなりました。ただし、/dev/null特定のファイルにコピーして効果的に削除することはできます。

問題は、クリアしようとしているディレクトリのサイズが約 40 GB であり、周囲のある各ファイルが 3 レベル内に埋もれていることです。

これらのファイルを簡単に検索して置き換えるコマンドラインの方法はあります/dev/nullか? Python/Perl ではかなり簡単に実行できますが、コマンド ラインから試してみたいと思います。

0 投票する
1 に答える
46 参照

linux - Bash スクリプトはコマンドの結果を認識しませんでした

RAID システムのステータスを確認するための bash スクリプトがあります。

スクリプトを手動で実行すると機能するので、このスクリプトを cronjob として実行することにしました。しかし、cronjobs は毎回メールを送信します。これを修正するのを手伝ってくれることを本当に願っています。