web-dev-qa-db-ja.com

LinuxのZFSを0.6.2から0.6.3にアップグレードすると、zpoolがCentOSをUbuntuコマンドに変換するのを読めなくなった

アップグレード後ubuntu 13.10サーバーを使用してSudo apt-get upgradeと再起動すると、zpoolが表示されません。

messier@ANDERSON:~$ Sudo zpool status
no pools available
messier@ANDERSON:~$ Sudo zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
messier@ANDERSON:~$

Linux github上のzfsを調べたところ、 CentOSの修正 が見つかりました。これは、古いカーネルモジュールを削除してから、ソフトウェアを再インストールして新しいカーネルモジュールを取得することです。

$ find /lib/modules/$(uname -r)/extra -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ find /lib/modules/$(uname -r)/weak-updates -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ yum reinstall zfs-release
$ yum reinstall $(rpm -qa | egrep "zfs|spl")

これは修正されていると人々は言っています。この修正をubuntuサーバーで実行する方法がわかりません。お手伝いありがとう!

最終編集:zfs更新のバグについてこのページにアクセスした場合。最も簡単な解決策は、Scott Simonが言ったようなものです。

# apt-get update
# apt-get dist-upgrade
# reboot
6
Reissem
_$ Sudo find /lib/modules/$(uname -r)/updates -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ Sudo apt-get install --reinstall ubuntu-zfs
$ Sudo apt-get install --reinstall $(dpkg-query --show --showformat='${binary:Package}\n' | egrep 'spl|zfs')
_

UbuntuはすべてのdkmsをCentOSのように/lib/modules/$(uname -r)/updatesおよび/lib/modules/$(uname -r)/extraではなくfind /lib/modules/$(uname -r)/weak-updatesに保持します。

_yum resinstall_は_apt-get install --reinstall_と同等です。
Ubuntuのzfsメタパッケージは、CentOSの_ubuntu-zfs_ではなく_zfs-release_です。
_rpm -qa_は_dpkg-query --show --showformat='${binary:Package}\n'_と同等です

_apt-get_は既にそれを処理する可能性があるので、findコマンドを実際に実行する必要があるかどうかもわかりませんが、実行してもプロセスは中断されません。

dpkgについての知識や経験がある人なら、わずかに効率的なコマンドを記述できるかもしれませんが、ほとんどの目的にはこれで十分だと思います。

6
84104

公式バグページ には、UbuntuおよびDebianユーザー向けのこの修正が含まれています。

# apt-get update
# apt-get dist-upgrade
# reboot
3
Scott Simon

(このカーネルpve-headers-2.6.32-26-pveを使用して)proxmox 3.2にdebian-zfsをインストールしました。これは、アップグレード後に修正した方法です。

aptitude purge dkms debian-zfs spl-dkms zfs-dkms

すべてのプロンプトに対して「はい」を選択して、すべてを削除しました。その後、dkmsの残りがないかどうかを確認しました。以下のコマンドでは、空のディレクトリが表示されます。

ls /lib/modules/2.6.32-26-pve/updates/dkms/

そこ(上記のディレクトリ)に何かがある場合は、すべて削除する必要があります(他のカスタムカーネルモジュールがない場合)

次に、それは次のように簡単でした:

apt-get install debian-zfs

次に、私のプールをインポートします(私のプールはタンクと呼ばれます)。

zpool import tank

すべてのドラマが発生する前にzfsが適切にエクスポートされなかったため、zfsは混乱しました。

cannot import 'tank': pool may be in use on another system

それは問題ではありません、私はこれでもう一度試しました:

zpool import -f tank

上記は機能しました、そして私はこのコマンドで私のプールを見ることができました:

zpool status
    root@proxmox-01:~# zpool status
  pool: tank
 state: ONLINE
  scan: scrub repaired 0 in 0h8m with 0 errors on Tue Jul  8 20:39:13 2014
config:

        NAME                                           STATE     READ WRITE CKSUM
        tank                                           ONLINE       0     0     0
          raidz2-0                                     ONLINE       0     0     0
            scsi-SATA_WDC_WD1001FALS-_WD-WMATV4198253  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30398837  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30404054  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30406039  ONLINE       0     0     0

errors: No known data errors

嬉しかったです。しかし、proxmoxはもう少し難しいものでした。 proxmoxに追加した「ストレージ」のディレクトリ構造が自動的に作成されるため、proxmoxのマウントポイントをいじる必要がありました。

まず、/tankを使用して、du -hs /tankが素敵なzfsプールではなかったかどうかを確認します。私のプールには、12KBをはるかに超える多くのものが含まれています。

Zfsプールをエクスポート(切断)しますzpool export tank

EMPTY /tankディレクトリをrm -R /tankで削除しました(再確認してください!!)

次に、プール(接続)zpool import tankをインポートすると、zfsストレージが機能し、proxmoxからアクセスできるようになります。

これが私が最初にzfsをproxmoxで動作させる方法です:

http://www.anotherlan.com/proxmox-zfs-on-linux-local-storage

2
Egidijus

ユーザー84104のソリューションは「機能しました」。最初の行をやりました。その後、残りはうまくいきませんでした。 Sudo apt-get remove ubuntu-zfs dkmsを試してからSudo apt-get install ubuntu-zfs dkmsを試したところ、同じエラーが発生しました。 Dkmsは、zfs/0.6.3およびspl/0.6.3が3.11.0-23-genericカーネルに付属するものと異なることを認識しませんでした。そこで、Sudo dkms remove zfs/0.6.3 --allSudo dkms remove zfs/0.6.3 --allを使用して、両方のモジュールをSudo dkms install zfs/0.6.3 --forceSudo dkms install spl/0.6.3 --forceを使用して強制的にインストールしました。

基本的には、ソリューションはdkmsを使用してモジュールを削除してから、0.6.3のインストールを強制的に戻すことです。

0
Reissem