Ubuntu

Linux/Ubuntu 上的 ZFS:在 Ubuntu 從 13.04 升級到 13.10 後幫助導入 zpool,設備 ID 已更改

  • August 18, 2014

我已將 Ubuntu 從 13.04 版更新到 13.10 版,卻發現 SATA 磁碟 ID 已更改,並且我的 ZFS 池現在失敗了。

在新的 Ubuntu 13.10 上,磁碟 ID 現在是 ata-* 而不是 scsi-SATA_*。

這是更新後的池狀態:

 pool: nestpool
state: UNAVAIL
status: One or more devices could not be used because the label is missing 
   or invalid.  There are insufficient replicas for the pool to continue
   functioning.
action: Destroy and re-create the pool from
   a backup source.
  see: http://zfsonlinux.org/msg/ZFS-8000-5E
 scan: none requested
config:

   NAME                                                STATE     READ WRITE CKSUM
   nestpool                                            UNAVAIL      0     0     0  insufficient replicas
     raidz2-0                                          UNAVAIL      0     0     0  insufficient replicas
       scsi-SATA_WDC_WD4000F9YZ-_WD-WCC1F0046946       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WCC4A0026423       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0011145       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0049294       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0051143       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0051756       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0056625       UNAVAIL      0     0     0
       scsi-SATA_WDC_WD4000F9YZ-_WD-WMC1F0200560       UNAVAIL      0     0     0
   logs
     mirror-1                                          UNAVAIL      0     0     0  insufficient replicas
       scsi-SATA_Samsung_SSD_840S1ATNEAD707062H-part2  UNAVAIL      0     0     0
       scsi-SATA_Samsung_SSD_840S1ATNEAD707066K-part3  UNAVAIL      0     0     0

在網際網路上進行了很長時間的研究後,我開始執行以下程序:

首先使用以下命令導出池:zpool export nestpool

然後嘗試使用以下命令重新導入池:zpool import -m -f -d /dev/disk/by-id nestpool

但導入失敗並顯示消息:無法導入“nestpool”:一個或多個設備目前不可用

這是zpool import的目前輸出

  pool: nestpool
    id: 3947768928242827823
 state: DEGRADED
status: One or more devices contains corrupted data.
action: The pool can be imported despite missing or damaged devices.  The
   fault tolerance of the pool may be compromised if imported.
  see: http://zfsonlinux.org/msg/ZFS-8000-4J
config:

   nestpool                                                DEGRADED
     raidz2-0                                              ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WCC1F0046946          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WCC4A0026423          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0011145          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0049294          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0051143          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0051756          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0056625          ONLINE
       ata-WDC_WD4000F9YZ-09N20L0_WD-WMC1F0200560          ONLINE
   cache
     ata-Samsung_SSD_840_PRO_Series_S1ATNEAD707062H-part1
   logs
     mirror-1                                              UNAVAIL  insufficient replicas
       ata-Samsung_SSD_840_PRO_Series_S1ATNEAD707062H      UNAVAIL  corrupted data
       ata-Samsung_SSD_840_PRO_Series_S1ATNEAD707066K      UNAVAIL

未正確辨識日誌分區,它們應該是ata-Samsung_SSD_840_PRO_Series_S1ATNEAD707062H-part2ata-Samsung_SSD_840_PRO_Series_S1ATNEAD707066K-part3。並且在導入期間的參數*-m*沒有幫助。

我找不到告訴zpool import為日誌設備使用不同路徑/ID 的方法。任何解決此問題的幫助和想法將不勝感激。我還能做些什麼來恢復這個池?

請嘗試zpool list。這將顯示該池是否對系統可用。

嘗試導入。也許一個zpool import -f nestpool

也許嘗試通過以下方式刪除不可用的日誌設備:

zpool remove nestpool mirror-1

從現在開始,為 L2ARC 和 ZIL 使用整個設備…

編輯:

您最簡單的解決方法是臨時創建您需要的符號連結/dev/disk/by-id以導入池。來自執行目前 ZFS 的 RHEL 系統的範例。

[root@Davalan /dev/disk/by-id]# ll
total 0
lrwxrwxrwx 1 root root  9 Oct 27 05:29 ata-STEC_M8IOPS-50_STM000136649 -> ../../sdc
lrwxrwxrwx 1 root root 10 Oct 27 05:29 ata-STEC_M8IOPS-50_STM000136649-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 ata-STEC_M8IOPS-50_STM000136649-part9 -> ../../sdc9
lrwxrwxrwx 1 root root  9 Oct 27 05:29 scsi-35000c5003af99fa7 -> ../../sdd
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000c5003af99fa7-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000c5003af99fa7-part9 -> ../../sdd9
lrwxrwxrwx 1 root root  9 Oct 27 05:29 scsi-35000cca0153ec2d0 -> ../../sdb
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca0153ec2d0-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca0153ec2d0-part9 -> ../../sdb9
lrwxrwxrwx 1 root root  9 Oct 27 05:29 scsi-35000cca01540e298 -> ../../sdf
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca01540e298-part1 -> ../../sdf1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca01540e298-part9 -> ../../sdf9
lrwxrwxrwx 1 root root  9 Oct 27 05:29 scsi-35000cca01540e340 -> ../../sde
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca01540e340-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-35000cca01540e340-part9 -> ../../sde9
lrwxrwxrwx 1 root root  9 Oct 27 05:29 scsi-SATA_STEC_M8IOPS-50_STM000136649 -> ../../sdc
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-SATA_STEC_M8IOPS-50_STM000136649-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Oct 27 05:29 scsi-SATA_STEC_M8IOPS-50_STM000136649-part9 -> ../../sdc9

引用自:https://serverfault.com/questions/565183