Làm thế nào để sao lưu Citrix Xen VM miễn phí với Xen-pocalypse (Bash)

Mục lục:

Làm thế nào để sao lưu Citrix Xen VM miễn phí với Xen-pocalypse (Bash)
Làm thế nào để sao lưu Citrix Xen VM miễn phí với Xen-pocalypse (Bash)

Video: Làm thế nào để sao lưu Citrix Xen VM miễn phí với Xen-pocalypse (Bash)

Video: Làm thế nào để sao lưu Citrix Xen VM miễn phí với Xen-pocalypse (Bash)
Video: Cách điều khiển bật tắt bóng đèn từ xa đơn giản - Biến công tắc thường thành công tắc thông minh - YouTube 2024, Tháng tư
Anonim
Bạn đã bao giờ cần phải sao lưu máy ảo Citrix Xen của bạn (VM) nhưng không muốn phá vỡ ngân hàng làm việc đó? HTG chỉ có kịch bản bash cho bạn với Xen-pocalypse.
Bạn đã bao giờ cần phải sao lưu máy ảo Citrix Xen của bạn (VM) nhưng không muốn phá vỡ ngân hàng làm việc đó? HTG chỉ có kịch bản bash cho bạn với Xen-pocalypse.

Hình ảnh của h.koppdelaney, Stuck in Custom và Hotfortech.

Một trong những điều tốt đẹp trong Citrix Xen là nhiều tính năng của nó là miễn phí phụ trách. Với điều đó đã nói, nếu bạn muốn có tính năng "Tự động bảo vệ và khôi phục VM", bạn sẽ phải bắt đầu thanh toán cho giấy phép "Advance". Thậm chí sau đó, bạn chỉ trả tiền cho các bản sao lưu ở mức đĩa, không đủ cho nhiều loại khối lượng công việc như Thư mục hoạt động, Cơ sở dữ liệu & Vv Để khắc phục điều này, bạn có thể muốn “Chụp nhanh bộ nhớ trực tiếp và hoàn nguyên”, có thể lưu toàn bộ trạng thái máy, bao gồm cả nội dung của RAM. Tuy nhiên, tính năng đó là một phần của phiên bản “Doanh nghiệp” và “Bạch kim”, thậm chí còn đắt hơn. Không phải là chúng tôi ở HTG đang loại bỏ giá trị của một phần mềm sao lưu thực sự, nhưng nếu bạn đang sử dụng ngân sách eo hẹp và không bận tâm đến hoạt động sao lưu, bạn có thể thấy Xen-pocalypse là một giải pháp hoàn hảo hợp lý trước khi bạn thực hiện cam kết ngân sách.

Tổng quan

"Use case": Bạn có một vài máy ảo yêu cầu sao lưu. Việc "tắt máy ảo và xuất nó dưới dạng tệp" từ "Trung tâm Xen" bằng cách sử dụng các nhấp chuột phải hoạt động ok, nhưng bạn muốn quá trình này diễn ra tự động và theo lịch biểu. Kịch bản Bash này sử dụng lệnh "XE" để thực hiện các nhiệm vụ của nó. XE là giao diện dòng lệnh Xen (CLI), tương đương tự động để phát hành “nhấp chuột phải” trong “Trung tâm Xen”. Chúng ta sẽ gọi script từ Cron, nó sẽ cung cấp phần “lập lịch trình”. Ở dạng đơn giản nhất, luồng sao lưu là:

  • Tắt VM mục tiêu.
  • Xuất VM như một tập tin vào vị trí sao lưu.
  • Nếu VM được bật, trước khi sao lưu bắt đầu, nó sẽ được bật lại.

Chúng ta hãy nứt:)

Lấy tập lệnh

Xen-pocalypse có thể được tự do thu được từ github, sử dụng các phương pháp git thông thường. Với điều đó đã nói, nếu bạn chưa thạo trong git, bạn có thể lấy tệp zip bằng liên kết này. Khi kịch bản cần chạy trên một trong các máy chủ Xen của bạn, bạn nên giải nén nó ở đó để các quyền thực thi được giữ nguyên.

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

Trong khi ở trên sẽ hiệu quả, bạn nên sử dụng phương pháp GIT, để bạn có thể hưởng lợi từ các bản cập nhật trong tương lai.

Nhận SendEmail (tùy chọn)

Chúng tôi đã viết về chương trình permail SendEmail trong quá khứ, vì vậy không cần phải nhắc lại ở đây. Đủ để nói, nó hoạt động theo cùng một cách trên Linux như trên Windows.

Trong khi kích hoạt email là tùy chọn, nó rất được khuyến khích bởi vì sau đó kịch bản sẽ có thể:

  • Thông báo cho bạn khi nó bắt đầu và kết thúc chạy.
  • Thông báo cho bạn về bất kỳ lỗi nào mà nó có thể phát hiện và xử lý.
  • Thông báo về việc không đủ điều kiện dự phòng do vấn đề về không gian. (Hành vi này có thể bị tắt nếu không muốn)

Tải xuống máy chủ Xen và trích xuất.

wget https://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz

Lưu ý vị trí bạn đã trích xuất nó. Bạn sẽ cần nó cho các tập tin cài đặt.

Xác định thẻ

Citrix Xen cung cấp cho bạn khả năng cấu hình “Trường tùy chỉnh” cho khả năng lọc. Chúng tôi sẽ tạo ra các lĩnh vực và sau đó cư chúng với các thông tin được sử dụng bởi Xen-pocalypse. Xen-pocalypse nhận ra 3 TAG kiểm soát chỉ định tên của thẻ để sao lưu và cha mẹ cho các mối quan hệ con. Nếu bạn không có ý định sử dụng phương thức nhập tệp, bạn PHẢI tạo ít nhất trường tên thẻ sao lưu.

Để thực hiện việc này, hãy mở máy chủ hoặc thậm chí là các thuộc tính của máy ảo. Trong ngăn dẫn hướng, chọn “Trường tùy chỉnh”.

Nếu đây là lần đầu tiên bạn xác định mối quan hệ (như trong ví dụ trên), bạn sẽ không có bất kỳ trường nào để nhập dữ liệu vào, vì vậy bạn cần phải tạo chúng. Để thực hiện việc này, nhấp vào “Chỉnh sửa trường tùy chỉnh” trong hộp thoại bật lên, nhấp vào “Thêm…”
Nếu đây là lần đầu tiên bạn xác định mối quan hệ (như trong ví dụ trên), bạn sẽ không có bất kỳ trường nào để nhập dữ liệu vào, vì vậy bạn cần phải tạo chúng. Để thực hiện việc này, nhấp vào “Chỉnh sửa trường tùy chỉnh” trong hộp thoại bật lên, nhấp vào “Thêm…”
Tạo ba (3) trường “Văn bản”. Một sẽ được gọi là "BackupTAG" và những người khác "Phụ huynh" và "Trẻ em".
Tạo ba (3) trường “Văn bản”. Một sẽ được gọi là "BackupTAG" và những người khác "Phụ huynh" và "Trẻ em".

Chú thích: Tên của các trường tùy chỉnh, đã được "mã hóa cứng" vào tập lệnh, vì vậy bạn PHẢI không đi chệch khỏi chính tả ở trên, trừ khi bạn thay đổi mã có liên quan.

Khi tất cả các trường đã được tạo, bạn sẽ thấy:

Đóng cửa sổ.Bây giờ bạn sẽ có các trường “BackupTAG”, “Phụ huynh” và “Trẻ em” để điền vào, như trong hình bên dưới.
Đóng cửa sổ.Bây giờ bạn sẽ có các trường “BackupTAG”, “Phụ huynh” và “Trẻ em” để điền vào, như trong hình bên dưới.
Image
Image

Bây giờ tất cả những gì bạn phải làm là chỉ định máy ảo nào thuộc về “BackupTAG”. Ví dụ, trong công ty nơi tập lệnh được phát triển, chúng tôi có các máy ảo được sao lưu hàng tuần vào Thứ Năm và Thứ Sáu, lịch trình cho các máy ảo sản phẩm Atlassian của chúng tôi và một số được sao lưu chỉ hàng tháng. Vì vậy, tổng quan của chúng tôi trông giống như:

Ví dụ: “fri hàng tuần” là văn bản chúng tôi đã nhập vào “Trường tùy chỉnh” “BackupTAG”. Neat huh?:)
Ví dụ: “fri hàng tuần” là văn bản chúng tôi đã nhập vào “Trường tùy chỉnh” “BackupTAG”. Neat huh?:)

Cha mẹ & Trẻ em (tùy chọn)

Vẻ đẹp thực sự của kịch bản này là nó hỗ trợ các mối quan hệ "cha mẹ" với "con". Tức là, có thể thiết lập một danh sách các máy ảo “con” sẽ được tắt và sao lưu trước cha / mẹ, và rằng những đứa trẻ này sẽ chỉ được bật lại khi cha mẹ đã hoàn tất sao lưu và đã được quay trở lại trên.Điều này rất hữu ích trong trường hợp việc tắt VM phụ sẽ khiến cho dịch vụ ở trẻ trở nên không khả dụng. Điều đó có nghĩa là dịch vụ trên máy ảo con sẽ không khả dụng hai lần, một lần cho quá trình sao lưu của trẻ và một lần cho cha mẹ. Tạo mối quan hệ này khắc phục được vấn đề đó.

Ví dụ, tất cả các máy ảo Atlassian của chúng tôi đã sử dụng một máy ảo DataBase (DB) duy nhất, cũng được thiết lập để được sao lưu. Vì vậy, bằng cách lưu ý rằng máy ảo DB là một "cha mẹ" cho các máy ảo khác, một thứ tự thích hợp tắt máy -> sao lưu -> khởi động, có thể được đảm bảo.

Tại thời điểm viết bài này, chức năng này có một vài cảnh báo:

  1. Tên của các máy ảo có mối quan hệ như vậy không thể chứa khoảng trắng. Bạn sẽ phải loại bỏ dấu cách khỏi các tên máy ảo của mình, vì chúng sẽ được phân tách bằng dấu cách, như trong ví dụ bên dưới.
  2. Chỉ có thể có một phụ huynh. Chỉ định nhiều hơn một thậm chí không được lên kế hoạch, chưa kể đến thử nghiệm.

Để tạo mối quan hệ này, hãy đi vào các thuộc tính của máy ảo. Nếu đây là "phụ huynh", hãy viết con của họ là ai và nếu đây là "đứa trẻ", hãy viết cha mẹ là ai. Ví dụ:

Lưu ý: Không chỉ định Phụ huynh cho một đứa trẻ có thể khiến trẻ bắt đầu trước khi cha mẹ của nó sẵn sàng và có thể khiến chúng được sao lưu hai lần.
Lưu ý: Không chỉ định Phụ huynh cho một đứa trẻ có thể khiến trẻ bắt đầu trước khi cha mẹ của nó sẵn sàng và có thể khiến chúng được sao lưu hai lần.

Phương pháp FILE (Tùy chọn)

Vì lý do lịch sử, Xen-pocalypse cũng hỗ trợ nhận danh sách các máy ảo được sao lưu dưới dạng tệp văn bản. Mặc dù “mã” vẫn còn trong đó, nhưng chức năng này không thua kém phương thức của TAG và do đó nó không được khuyến nghị. Với điều đó đã nói, nếu bạn thích sử dụng phương pháp liệt kê vì một số lý do, các hạn chế sau sẽ áp dụng:

  1. Tên của các máy ảo không thể chứa bất kỳ dấu cách hoặc ký tự đặc biệt nào.
  2. Chỉ có thể có một tên máy ảo trên mỗi dòng.
  3. Không cho phép các dòng trống.

Để tạo danh sách, hãy sao chép tên máy ảo từ trung tâm Xen hoặc thực thi trên máy chủ Xen:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

Sao chép danh sách ở trên vào một tệp văn bản thông thường.

Vị trí sao lưu

Trong khi ngẫu nhiên poking xung quanh trong Citrix Xen, tôi đã thấy rằng kho lưu trữ (SRs) có sẵn để sử dụng theo "/ var / run / sr-mount /% UUID%" nơi UUID là định danh duy nhất của SR, có thể được thu được từ GUI.

Điều này có nghĩa là chúng ta có thể sử dụng thuật sĩ “Next -> Next -> Finish” để tạo mount cho vị trí sao lưu mong muốn, và sau đó có kịch bản sử dụng đường dẫn đó (như được tạo ra để gắn kết với lệnh gắn kết), nhưng thực hiện vì vậy nằm ngoài phạm vi của hướng dẫn này.

Để tạo một "gắn kết" mới, bấm chuột phải vào tên máy chủ và chọn SR mới.

Trong ví dụ này, chúng ta sẽ trỏ Xen đến một cửa sổ chia sẻ, vì vậy chọn “Windows File Sharing (CIFS)”:
Trong ví dụ này, chúng ta sẽ trỏ Xen đến một cửa sổ chia sẻ, vì vậy chọn “Windows File Sharing (CIFS)”:
Hoàn thành Next -> Next -> Finish.
Hoàn thành Next -> Next -> Finish.

Nhận UUID của SR

Để có UUID của SR, chỉ cần nhấp vào tên của nó trong Trung tâm Xen và chuyển đến tab "Chung".

Để sao chép UUID, chỉ cần nhấp chuột phải vào nó, chọn "copy".
Để sao chép UUID, chỉ cần nhấp chuột phải vào nó, chọn "copy".
Với thông tin này trong tầm tay, bạn đã sẵn sàng để chỉnh sửa các tập tin cài đặt.
Với thông tin này trong tầm tay, bạn đã sẵn sàng để chỉnh sửa các tập tin cài đặt.

Định cấu hình tệp Cài đặt.

Dự án Xen-pocalypse đi kèm với một mẫu tập tin “cài đặt”. Mẫu này phải được chỉnh sửa để phản ánh thiết lập của bạn và được chuyển làm đối số đầu tiên cho tập lệnh. Tệp cài đặt chỉ định những điều sau:

Phương pháp để có được các máy ảo được sao lưu - Phương thức mặc định là các TAG. Bạn có thể thay đổi điều này thành FILE, nhưng điều này không được khuyến khích.

Địa điểm của điểm đến dự phòng - Nếu bạn đã làm theo hướng dẫn đến thời điểm này, bạn chỉ phải thay thế% UUID% bằng SR khi thu được từ phía trên.

Vị trí của SendEmail - Nếu bạn đã chọn bật Email, bạn cần nhập vào nơi bạn đã trích xuất tệp thực thi perl tại đây.

Chi tiết email -Một lần nữa, nếu bạn đã bật email, bạn cần xác định các chi tiết như: Tới, Từ, Servername / IP & etc ’.

Nén - Điều này được đặt thành “Không” theo mặc định, bởi vì trong khi kích hoạt nó sẽ tạo ra một tệp sao lưu nhỏ hơn, nó cũng sẽ làm cho quy trình sao lưu chạy trong một khoảng thời gian dài hơn đáng kể.

Kiểm tra dung lượng trống trên đích - Điều này sẽ có kiểm tra tập lệnh sao lưu của máy ảo sẽ không làm cho không gian trống của vị trí dự phòng giảm xuống dưới 10 GB. Điều này được thực hiện để đảm bảo số lượng máy ảo được sao lưu thay vì chỉ một máy ảo rất lớn. Việc tính toán được thực hiện bằng cách sử dụng tổng kích thước đĩa tổng của tất cả các HD liên kết với máy ảo.

Gỡ lỗi - Mặc định là đã tắt gỡ lỗi với giá trị “0” (số không). Bạn không cần phải bật tính năng này, nhưng nếu bạn làm như vậy, nhiều thông tin hơn sẽ được ghi lại trong phân đoạn gỡ rối.

Thực hiện / Lập kế hoạch

Trong hình thức đơn giản nhất của nó, một lời gọi của Xen-pocalypse sẽ giống như:

./Xen-backup.sh settings.cfg weekly-fri

Trong trường hợp ở trên, chúng tôi nằm trong thư mục chứa tập lệnh và tệp cài đặt. "Tag" kịch bản sẽ tìm kiếm là "fri hàng tuần".

Như đã nói ở trên, chúng ta sẽ sử dụng Cron để lên lịch thực thi. Trước khi chúng ta đi vào cấu hình, nó là rat khuyen khich bạn cấu hình gói SSMTP đã được cài đặt trên máy chủ Xen của bạn. Trong khi đây là một bước tùy chọn, làm như vậy sẽ cung cấp cho bạn một bộ sưu tập rửa ngược. Có một "nhà sưu tập rửa ngược" như vậy có thể cảnh báo bạn về những điều mà kịch bản không thể thực hiện được.

Nhập vào bản chỉnh sửa của cron bằng cách phát hành:

crontab -e

Nếu bạn đã làm theo các hướng dẫn ở trên và bạn muốn thêm bản sao lưu đã lên lịch vào Thứ Sáu lúc 18:01 (6:01 CH), hãy nhập thông tin bên dưới:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

Ở trên là chính xác giả sử tập lệnh và tập tin cài đặt của bạn là cả hai dưới "/ root / Xen-pocalypse-master /".

Xử lý sự cố

Mặc dù tôi đã nỗ lực rất nhiều để làm cho kịch bản trở nên dễ sử dụng và dễ hiểu nhất có thể, “Thế giới là một phòng thí nghiệm lớn hơn”. Thông tin dưới đây có thể giúp bạn xác định nguồn gốc của những rắc rối của bạn là gì.

Phát triển

Bạn có thể muốn sử dụng một lớp lót này để nhanh chóng "xem" tất cả các tác vụ đang diễn ra, để xem chúng có thực sự tiến triển hay không hoặc chúng thực sự bị kẹt hay không.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

Để ngừng xem, sử dụng Ctrl + C để phanh “vòng lặp while”.

Ghi nhật ký

Tất cả "đăng nhập" được thu thập bởi các máy chủ Xen chạy kịch bản trong cơ chế syslog. Điều này tất nhiên có thể được xem với:

less +F /var/log/messages

Bạn đang tìm kiếm từ khóa “Xen-pocalypse”.

Lưu ý: Citrix đã đặt hai (2) ngày duy trì chính sách cho syslog của máy chủ của nó. Bạn có thể muốn ghi nhớ điều đó cho các postmortems.

Gỡ lỗi

Như đã lưu ý trong phân đoạn tệp cài đặt, có một chỉ thị để bật gỡ lỗi. Việc bật gỡ lỗi sẽ khiến cho tập lệnh tạo đầu ghi chi tiết vào bảng điều khiển và chuyển nó khỏi gửi email và thực sự thực hiện xuất, trừ khi các cờ có liên quan cũng được đặt. Các cờ có thể được ghi chú trong mẫu tệp cài đặt và chúng cho phép bạn định nghĩa chi tiết những gì bạn muốn gỡ lỗi.

Tôi hy vọng rằng bạn không cần gỡ lỗi và bạn đang gặt hái được thành quả lao động của mình:)

Lực đẩy, người đàn ông của tôi, bạn chuẩn bị trở thành số một decepticon…

Đề xuất: