簡體   English   中英

零停機時間將 ceph 存儲桶遷移到新用戶

[英]Migrate ceph buckets to new user with zero downtime

我有一個包含數百萬個對象的 ceph/radosgw 存儲桶,我需要將存儲桶的所有權更改給另一個用戶。

通常,這是通過將存儲桶link到新用戶,然后將其中的所有文件chown來完成的,如下所示:

radosgw-admin bucket unlink --uid=user1 --bucket=bigbucket
radosgw-admin bucket link --uid=user2 --bucket=bigbucket
radosgw-admin bucket chown --uid=user2 --bucket=bigbucket

不幸的是, chown操作必須遍歷存儲桶中的每個 object才能更新元數據。 這導致停機時間延長 window(有時顯然是每百萬個對象 1 小時),舊用戶和新用戶都無法訪問存儲桶的全部內容。

有什么方法可以在不需要停機的情況下更改存儲桶所有權? 一些想法:

  • 兩個用戶是否可以同時擁有一個存儲桶或特定對象?
  • 我們可以創建新用戶,然后只更改他們的uid或其他一些元數據,授予他們訪問舊用戶存儲桶的權限嗎?
  • 問題可以在客戶端解決,還是可以通過代理解決?

您可以向存儲桶添加存儲桶策略以訪問兩個用戶,直到通過chown命令完成遷移:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"AWS": ["arn:aws:iam:::user/user1", "arn:aws:iam:::user/user2"]},
    "Action": "*",
    "Resource": [
      "arn:aws:s3:::bigbucket/*"
    ]
  }]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM