Google cloud platform 使用相同的设备路径或UUID连接磁盘

Google cloud platform 使用相同的设备路径或UUID连接磁盘,google-cloud-platform,google-compute-engine,Google Cloud Platform,Google Compute Engine,我将一个磁盘连接到一个实例&我已经拍摄了它的快照。 几天后,磁盘坏了,我想恢复磁盘。 我实施的是: 存储快照的元数据(拍摄时) 当恢复请求到来时,我从快照创建新磁盘 分离主机内作为/dev/sdz连接的原始磁盘 将新创建的磁盘附加到同一实例 通过这种方式,用户将看到磁盘已使用他拍摄的快照进行了恢复 现在,我看到这种方法的问题是: 由于原始磁盘是以/dev/sdz的形式连接的,因此在分离和连接新磁盘之后,新磁盘应仅被视为/dev/sdz, 否则,应用程序或上层可能会中断 那么,谷歌云API是否提供

我将一个磁盘连接到一个实例&我已经拍摄了它的快照。 几天后,磁盘坏了,我想恢复磁盘。 我实施的是:

存储快照的元数据(拍摄时) 当恢复请求到来时,我从快照创建新磁盘 分离主机内作为/dev/sdz连接的原始磁盘 将新创建的磁盘附加到同一实例 通过这种方式,用户将看到磁盘已使用他拍摄的快照进行了恢复

现在,我看到这种方法的问题是: 由于原始磁盘是以/dev/sdz的形式连接的,因此在分离和连接新磁盘之后,新磁盘应仅被视为/dev/sdz, 否则,应用程序或上层可能会中断

那么,谷歌云API是否提供了任何条款来处理这个问题

请注意:我使用的是GoogleAPI python客户端库&代码是用python编写的


我相信你指的是磁盘的索引。然而,我不确定这一点。如果是这种情况,您只需要确保新磁盘的索引与删除的磁盘的索引匹配

也就是说,如果您可以修改fstab,那么有更好的方法可以做到这一点。例如,您可以通过挂载/dev/disk/by id/使用deviceName,在这种情况下,您只需确保新磁盘与旧磁盘具有相同的deviceName即可

另一种选择是使用文件系统的UUID进行装载。由于这些新磁盘是旧磁盘的快照,因此它们将具有相同的UUID

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

除非完全重新格式化分区,否则这种情况不会改变。在fstab中,您可以使用UUID=ef7481ea-a6f9-425b-940f-56e9c93492d,而不是/dev/sdz1。您好,Stephen,我试图描述的问题是分离旧磁盘并连接新磁盘&希望新磁盘与旧磁盘标识相同。如果在分离之前原始磁盘是/dev/sdf,那么我需要做的是确保连接的新磁盘仅标识为/dev/sdf。我正在使用python库来分离、附加。因此,我无法执行涉及进入主机内部的操作。我希望API或库有这个规定。让我知道我是否可以澄清我的问题。我正在维护deviceName,但我不确定这是否足够,因为维护deviceName将确保它在/dev/disk/by id/目录中显示相同,但我认为-设备路径将不同。我只想提到的是,在AWS中,只有通过API才能读/写/dev/i-think,GCP中可能有一些等价物。不,假设存在某种东西,您可以始终使用/dev/disk/by-id。1。如果我在连接新磁盘时提供相同的deviceName,那么我就不必担心设备路径或设备名称,对吗?2.这不会破坏应用程序,对吗?3.UUID应该与其磁盘快照相同。请确认以上三点。根据UUID将fstab设置为装载磁盘。如果您在GCP中创建一个磁盘映像并从中创建一个新磁盘,它将维护UUID,从而维护设备入口点。示例:UUID=1123c451-a8f8-42af-9988-ebb42e0f7051/mnt/backup/snapshots ext4默认值1但是,如果你不完全了解自己在做什么,你应该建议你的老板在教你的同时让一个IT人员临时做这件事,留给你知道如何正确完成的任务。这对你来说是非常危险的,因为你显然不是这方面的专家。我这么说是因为云计算中的错误通常很难恢复,而且可能会让你立即被解雇,因为你会给你的公司造成巨大的损害。如果这是一个房屋项目,那么你可以努力学习。哦,我建议不要在关键的操作应用程序中使用python,比如备份、恢复或数据调整,但这仅仅是个人经验,而不是正确的方法。ls-l/dev/disk/by-*/是您的朋友。