Mảng PowerMax cung cấp các tùy chọn sao chép cục bộ giàu tính năng trong SnapVX và các công nghệ sao chép. PowerMax REST API hỗ trợ tất cả các tính năng này và Dell Technologies cung cấp các hàm Python được viết sẵn như một phần của PyU4V — một gói Python để quản lý PowerMax REST API cũng như các mô-đun Ansible hỗ trợ SnapVX. Trong blog này, tôi cung cấp các ví dụ trong các lệnh gọi REST gốc và trong một ví dụ Python.
Nếu bạn không quen với REST, bạn sẽ thích đọc một hoặc cả hai blog sau:
- https://infohub.delltechnologists.com/p/getting-started-with-rest-api-1
- https://infohub.delltechnologists.com/p/getting-started-with-the-powermax-rest-api-time-for-a-rest
Tài liệu API đầy đủ có sẵn trên trung tâm dành cho nhà phát triển tại đây . Tất cả các điểm cuối REST cho SnapVX và các hoạt động sao chép đều nằm trong tài nguyên sao chép của API. Điều này có nghĩa là các địa chỉ URI được thêm tiền tố là URL cơ sở https://{{base_url}}/{{api_version}}/replication. Ngoài chức năng SnapVX và sao chép, bạn cũng có thể chỉ định các chính sách chụp nhanh cho các nhóm lưu trữ tại thời điểm tạo hoặc khi sửa đổi bằng cách sử dụng tài nguyên sloprovisioning. Các ví dụ sẽ xuất hiện ở phần sau trong blog này.
Quản lý ảnh chụp nhanh SnapVX bằng REST API
SnapVX cung cấp cho quản trị viên PowerMax khả năng chụp ảnh nhanh theo thời điểm trên một tập hợp các thiết bị để tạo ra hình ảnh thời điểm nhất quán của dữ liệu theo cách rất hiệu quả về không gian. Người dùng có thể thao tác các ảnh chụp nhanh cho mục đích khôi phục hoặc liên kết chúng với các ổ đĩa và trình bày chúng cho các máy chủ bằng cách sử dụng chế độ xem che để cung cấp bản sao của ảnh chụp nhanh.
Để biết chi tiết về chức năng SnapVX, hãy xem sách trắng Dell PowerMax và VMAX All Flash: TimeFinder SnapVX Local Replication . PowerMax REST API cung cấp tất cả các chức năng của Unisphere cho PowerMax với quản lý ảnh chụp nhanh và giống như quản lý UI được sắp xếp với nhóm lưu trữ. Nếu bạn cần thao tác ảnh chụp nhanh cho một ổ đĩa duy nhất, bạn có thể sử dụng các công cụ CLI hoặc thêm ổ đĩa vào nhóm lưu trữ riêng của nó.
Một số điểm cần nhớ khi chụp nhanh SnapVX:
- Ảnh chụp nhanh SnapVX không bao giờ bị thay đổi bởi quyền truy cập máy chủ và do đó, quản trị viên luôn có thể khôi phục ảnh chụp nhanh này cho đến khi ảnh chụp nhanh bị chấm dứt do hành động của người dùng hoặc hết hạn dựa trên giá trị thời gian hoạt động (nếu được thiết lập).
- Ảnh chụp nhanh chỉ tự động hết hạn khi chúng được hủy liên kết khỏi tất cả các nhóm lưu trữ mục tiêu.
- Snapshot có thể được thiết lập bảo mật tại hoặc sau thời điểm tạo. Sau khi thiết lập bảo mật, người dùng không thể chấm dứt snapshot cho đến khi thời gian tồn tại trôi qua hoặc sửa đổi tính bảo mật của snapshot đó ngoại trừ việc kéo dài thời gian tồn tại bảo mật.
- Khi liên kết ảnh chụp nhanh với API hoặc UI, nếu nhóm lưu trữ đích chưa tồn tại thì API sẽ tự động tạo nhóm lưu trữ với số lượng thiết bị và kích thước phù hợp, khớp với cấu hình thiết bị nguồn.
- Nếu bạn thêm thiết bị vào nhóm lưu trữ nguồn, bạn phải thêm thiết bị vào nhóm lưu trữ mục tiêu. Điều này không tự động và cần phải được lên kế hoạch. Quy ước đặt tên có thể giúp đơn giản hóa quy trình này.
- Mặc dù ảnh chụp nhanh SnapVX có cả số thế hệ và snapId, nhưng nếu tự động hóa, snapid được ưu tiên hơn vì số này là ID tham chiếu tĩnh.
Tạo và xác định SnapVX SnapShots bằng REST API
Tạo snapshot là một quá trình đơn giản. Một lệnh gọi POST của REST API được gửi đến phần mềm quản lý, hướng đến nhóm lưu trữ cần snap, chỉ định tên cho snapshot cùng với bất kỳ tham số tùy chọn nào cần thiết lập (ví dụ: bạn có thể thiết lập snapshot để bảo mật hoặc thiết lập thời gian tồn tại).
Sau đây là ví dụ về lệnh gọi POST và tải trọng để tạo ảnh chụp nhanh của nhóm lưu trữ, với ảnh chụp nhanh có tên là REST_SG_snapshot, thiết lập thời gian tồn tại là 10 ngày. (Các giá trị được cung cấp được đặt trong {} báo hiệu sự thay thế bắt buộc đối với các giá trị hoặc biến thực tế.)
https://unisphereIP:8443/univmax/restapi/{{api_version}}/replication/symmetrix/{symmetrixId}/storagegroup/{storageGroupId}/snapshot (BÀI ĐĂNG) Tải trọng { "snapshotName": "REST_SG_snapshot", "thời gian để sống": 10 }
PyU4V có các chức năng để kiểm soát hoàn toàn SnapVX, giúp API dễ sử dụng hơn. Sau đây là một tập lệnh đơn giản để tạo ảnh chụp nhanh và in kết quả trả về từ API.
nhập PyU4V conn = PyU4V.U4VConn(tên người dùng='smc', mật khẩu='smc', server_ip='unisphereip', port='8443', array_id=Không có, xác minh=Sai) #tạo ảnh chụp nhanh và gán thông tin trả về cho biến snap_details snap_details = (conn.replication.create_storage_group_snapshot( storage_group_id='snapsrc', snap_name='snap4blog', ttl=1, secure=False, giờ=Đúng)) #Lấy SnapIds cho tất cả các ảnh chụp nhanh cho nhóm lưu trữ có tên snap4blog all_sg_snaps = (conn.replication.get_storage_group_snapshot_snap_id_list( storage_group_id='snapsrc', snap_name='snap4blog')) #in chi tiết ảnh chụp nhanh được tạo ở trên in(snap_details) #Chỉ in snapid từ snap_details in(snap_details.get('snapid')) #In tất cả SnapId liên kết với snap4blog snapshot trên nhóm lưu trữ snapsrc in(tất cả các sg_snaps)
Kết quả được hiển thị bên dưới.
- Câu lệnh in đầu tiên hiển thị thông tin chi tiết về ảnh chụp nhanh vừa được tạo với các chi tiết như dấu thời gian, snapid, v.v.
- Dòng thứ hai chỉ in ra snapid được trích xuất từ JSON bằng khóa ‘snapid’.
- Dòng thứ ba in ra biến ‘all_sg_snaps’ hiển thị tất cả các id ảnh chụp nhanh có tên snap4blog được liên kết với nhóm lưu trữ snapsrc.
Để cung cấp dữ liệu ảnh chụp nhanh cho máy chủ, bạn có thể thêm một số lệnh gọi REST bổ sung để liên kết đến nhóm lưu trữ.
Đoạn mã sau đây thực hiện các tác vụ sau:
- Liệt kê bất kỳ nhóm lưu trữ nào có ảnh chụp nhanh được liên kết đến nó trên mảng thử nghiệm của tôi. Không có cái nào để bắt đầu.
- Tạo liên kết đến ảnh chụp nhanh hiện có bằng cách sử dụng snapid
- Chạy lại danh sách. Lần này có dữ liệu để hiển thị nhóm lưu trữ được liên kết.
#liệt kê bất kỳ nhóm lưu trữ nào đang được sử dụng làm mục tiêu được liên kết cho snapvx #ảnh chụp nhanh in(conn.common.get_request( target_uri=f'/100/sao chép/đối xứng/' f'000120200287/storagegroup?is_link_target=Đúng', resource_type=Không có)) #Liên kết ảnh chụp nhanh từ nhóm lưu trữ 'snapsrc' tới nhóm lưu trữ 'snaptgt', #điều này sẽ tạo nhóm lưu trữ snaptgt vì nó không tồn tại #có tên 'snap4blog' và giá trị snapid khớp với giá trị trong biến được đặt trước đó. conn.replication.modify_storage_group_snapshot_by_snap_id( src_storage_grp_id='snapsrc',tgt_storage_grp_id='snaptgt', snap_name='snap4blog', snap_id=snap_details.get('snapid'), liên kết=Đúng) #In danh sách cập nhật các nhóm lưu trữ được sử dụng làm mục tiêu chụp in(conn.common.get_request( target_uri=f'/100/sao chép/đối xứng/' f'000120200287/storagegroup?is_link_target=Đúng',0 resource_type=Không có))
Sau đây là đầu ra của các hàm hiển thị nhóm snaptgt trong danh sách sau khi liên kết được cấp.
SnapVX mang lại nhiều tính linh hoạt khi làm mới môi trường thử nghiệm và phát triển. Khả năng liên kết lại cùng một ảnh chụp nhanh (về cơ bản là xóa mọi thay đổi đối với bản sao mục tiêu trong khi vẫn giữ nguyên hình ảnh thời điểm) giúp đơn giản hóa đáng kể quá trình thử nghiệm lặp lại. Bạn cũng có thể nhanh chóng liên kết lại với một ảnh chụp nhanh khác hoặc hủy liên kết để sử dụng lại các khối lượng mục tiêu cho mục đích khác. Để liên kết lại ảnh chụp nhanh với PyU4V, chỉ cần thay đổi tham số trong lệnh gọi modify_storage_group thay vì “link=True”, chúng ta đặt “relink=True”.
Nếu bạn đang liên kết lại trực tiếp từ API, hãy sửa đổi nội dung cho lệnh gọi PUT để phản ánh rằng hành động này là liên kết lại, như được hiển thị ở đây:
https://UnisphereIP:8443/univmax/restapi/100/replication/symmetrix/{symmetrixId}/storagegroup/{storageGroupId}/snapshot/{snapshotId}/snapid/{snapId} (ĐẶT)
Khi bạn không còn cần snapshot nữa, đừng quên chấm dứt hoặc hủy liên kết bất kỳ mục tiêu nào được liên kết để cho phép hết hạn tự động nếu bạn đã đặt thời gian tồn tại. Tất cả các hành động đều sử dụng cùng một liên kết URI, tuy nhiên phương thức REST sẽ là PUT (với tải trọng đã sửa đổi) hoặc DELETE.
Nói chung, một cách thực hành tốt là áp dụng quy ước đặt tên thân thiện cho các nhóm lưu trữ đang được sử dụng làm mục tiêu snapvx để giúp chúng dễ nhận dạng trong đầu ra UI và API. Chỉ cần thêm _TGT vào tên sg có thể là đủ, nhưng quy ước đặt tên của bạn có thể là bất kỳ quy ước nào phù hợp nhất với tổ chức của bạn.
Chính sách chụp nhanh
Ngoài các snapshot thông thường, SnapVX cung cấp một cơ chế để người dùng gán chính sách snapshot cho các nhóm lưu trữ. (Chi tiết hơn về chính sách snapshot được mô tả trong sách trắng Dell PowerMax và VMAX All Flash: TimeFinder SnapVX Local Replication .) Gán chính sách snapshot có nghĩa là bạn sẽ có một vòng quay tự động và bảo quản một số lượng snapshot xác định cho các nhóm lưu trữ của mình với mục tiêu thời gian phục hồi được xác định rõ ràng. Người dùng không cần phải quản lý việc lập lịch — chính sách tự động hóa tất cả những điều đó và có thể được gán khi các nhóm lưu trữ được tạo hoặc vào thời điểm sau đó.
Việc liên kết các chính sách ảnh chụp nhanh với các nhóm lưu trữ có sẵn thông qua các lệnh gọi POST và PUT để tạo các nhóm lưu trữ. Một tập hợp các lệnh gọi API riêng biệt có sẵn để quản lý trực tiếp từ phần Chính sách ảnh chụp nhanh của tài liệu API .
Đối với Py4V trong Python, mã chỉ yêu cầu một biến bổ sung trên các hàm create và modify. Ví dụ sau sẽ tạo một chính sách snapshot (example_policy) sẽ chụp snapshot sau mỗi 12 phút, giữ lại tối đa 24 snapshot. Phần thứ hai tạo một nhóm lưu trữ liên kết với chính sách này. Lưu ý rằng có các chính sách mặc định đã được tạo trên tất cả các mảng mà người dùng có thể sử dụng mà không cần phải tạo bất kỳ thứ gì mới.
nhập PyU4V api = PyU4V.U4VConn(tên người dùng='smc',mật khẩu='smc', server_ip='unisphereip', xác minh=Không có, mảng_id='000297600841') api.snapshot_policy.create_snapshot_policy( snapshot_policy_name='example_policy', interval="12 Phút", local_snapshot_policy_snapshot_count=24) api.provisioning.create_non_empty_storage_group( srp_id="SRP_1", nhóm lưu trữ_id="blog_example_sg", số lượng=1, vol_size=1, cap_unit="GB",snapshot_policy_ids=["example_policy"], service_level="Kim cương", khối lượng công việc=Không có)
Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cơ bản để làm việc với ảnh chụp nhanh SnapVX bằng REST và Python!
Bài viết mới cập nhật
Nhà cung cấp đám mây được CloudPools hỗ trợ
Tính năng Dell PowerScale CloudPools của OneFS cho phép phân tầng, ...
Hiểu về các tùy chọn triển khai InsightIQ 5.0.0: Đơn giản so với mở rộng quy mô
Tổng quan InsightIQ 5.0.0 giới thiệu hai tùy chọn triển khai ...
Làm chủ việc giám sát và báo cáo với InsightIQ 5.0.0
Tổng quan Trong bối cảnh phức tạp của quản lý dữ ...
Cảnh báo trong IIQ 5.0.0 – Phần II
Bài đăng trước của tôi đã giới thiệu một trong những ...