2017-08-22 73 views
0

我有一個磁盤連接到實例&我拍了快照。 現在,幾天後 - 磁盤壞了,我想恢復磁盤。 我所實行的是:快照,當採取 連接具有相同設備路徑或UUID的磁盤

  • 當恢復請求到來時,我從快照創建新的磁盤
  • 脫離原盤的

    1. 存儲元數據(比如連接內部主機爲的/ dev/SDZ
    2. 附加新創建的磁盤到同一實例

    用這種方式,用戶將得到的觀點,即磁盤有使用他拍攝的快照進行了恢復。現在

    ,我用這種方法看到的問題是:作爲 原盤附着的的/ dev/SDZ,之後分離&重視新盤,新盤應被視爲的/ dev/sdz只, 否則應用程序或上層可能會中斷。

    那麼,google-cloud API提供了什麼規定來處理這個問題?

    請注意:我使用的是谷歌-API的Python客戶端庫代碼&在Python。

  • 回答

    0

    我相信你所指的名字是磁盤的「索引」。但我不確定。如果是這種情況,您只需確保新磁盤的索引與您刪除的磁盤的索引相匹配即可。

    這就是說,有更好的方法來做到這一點,如果你可以修改你的fstab。例如,您可以通過安裝/dev/disk/by-id/whatever來使用「deviceName」,在這種情況下,您只需確保新磁盤具有與舊磁盤相同的deviceName。


    另一種選擇是使用文件系統的UUID進行掛載。由於這些新磁盤是舊磁盤的快照,它們將具有相同的UUID。

    ls -l /dev/disk/by-uuid/ 
    

    這應該不會改變,除非您完全重新格式化分區。在你的fstab中,而不是/dev/sdz1,你可以使用UUID=ef7481ea-a6f9-425b-940f-56e9c93492dd或其他。

    +0

    您好史蒂芬,我試圖描述的問題是關於分離舊磁盤和附加新磁盤和期待新的磁盤被識別爲舊的一樣。 如果在分離之前原始磁盤是/ dev/sdf,那麼我需要做什麼,以確保被連接的新磁盤僅被標識爲/ dev/sdf。 我正在使用python庫來分離,附加。因此我不能執行涉及主機內部的操作。 我期待API或圖書館擁有此條款。 讓我知道我是否可以澄清我的問題是什麼。 – amitam

    +0

    我更新了我的答案,我希望有所幫助。 –

    +0

    我維護設備名稱,但我不確定是否足夠 ,因爲維護devicename將確保它在/ dev/disk/by-id /目錄中顯示相同,但​​我認爲 - 設備路徑不會是相同。 只是想提一下 - 在AWS中,通過API只能讀/寫/ dev/ 我認爲 - 在GCP中可能存在一些等同物。 – amitam