Chiến lược sao lưu đơn giản cho các trường hợp / khối lượng Amazon EC2?


13

Bạn đã nhập Sao lưu giới thiệu cho Hình ảnh Windows được hỗ trợ EBS của Amazon EC2 010 ...

Tôi đã duyệt bộ não của mình để tìm chiến lược sao lưu đơn giản cho máy chủ windows 2008 duy nhất của chúng tôi chạy SharePoint Services. Đây là hình ảnh được hỗ trợ bởi EBS của một máy chủ với một khối lượng dữ liệu. Tôi không cần bất cứ điều gì kỳ lạ. Tôi chỉ cần một bản sao lưu hàng ngày trên mạng (mất dữ liệu trong một ngày không phải là thảm họa).

Chúng tôi đã tạo và lưu hình ảnh AMI được hỗ trợ EBS (Windows 2008) mà chúng tôi cảm thấy thoải mái khi sử dụng. Chúng tôi bắt đầu thực hiện sao lưu bằng cách tạo một hình ảnh EBS AMI mới. Điều này thực sự đơn giản, nhưng máy chủ đang chạy được đặt ngoại tuyến trong 10 - 15 phút đầu tiên để tạo hình ảnh - không lý tưởng.

Cách tiêu chuẩn để tạo các bản sao lưu dường như là tạo các ảnh chụp nhanh của các tập được đính kèm với một thể hiện đang chạy. Một lần nữa, nó khá đơn giản và máy chủ vẫn có thể sử dụng được trong quá trình tạo ảnh chụp nhanh. Catch-22 rõ ràng là bạn không thể đơn giản khởi chạy một thể hiện mới trực tiếp từ ảnh chụp nhanh.

Tôi biết cách gói một cá thể đang chạy vào bộ lưu trữ S3 và sau đó đăng ký AMI từ nhóm S3. Điều này cho phép tôi chụp bản sao lưu của một cá thể đang chạy và, nếu cá thể đang chạy bị mất, hãy đăng ký AMI từ nhóm S3 và khởi chạy AMI mới để khôi phục lại cá thể, nhưng điều này có vẻ thực sự khó hiểu và nó có vẻ vô lý tung hứng qua lại giữa Bảng điều khiển AWS và trình cắm S3 Organizer cho Firefox để thực hiện điều này. (Vui lòng không đề cập đến cách tiếp cận dòng lệnh, đây là khóa học cấp 010).

Từ việc chơi xung quanh với các hình ảnh được hỗ trợ bởi EBS, cách tiếp cận sau đây có vẻ hiệu quả với tôi (tất cả được thực hiện trong Bảng điều khiển AWS):

1.Đối với các bản sao lưu của bạn, chỉ cần chụp nhanh khối lượng hệ thống (/ dev / sda1) nếu cần. 2.Nếu bạn mất cá thể đang chạy, hãy làm như sau: a Tạo một âm lượng mới từ bản sao lưu ảnh chụp nhanh cuối cùng của bạn b. Khởi động một phiên bản khác của AMI bắt đầu của bạn (phải được hỗ trợ bởi EBS). d.Không thể tích hệ thống hiện có từ phiên bản dừng mới và loại bỏ. e.Đặt âm lượng mới được tạo dưới dạng âm lượng hệ thống (/ dev / sda1) vào thể hiện đã dừng. f.Re-start ví dụ mới. Tôi đã thử nghiệm điều này một vài lần và nó có vẻ hiệu quả với tôi.

Câu hỏi: Có điều gì sai với phương pháp này?

Câu trả lời:


9

Cách tiếp cận của bạn nghe có vẻ rất tốt - nhưng tôi có thể nghĩ ra một cách có thể để cải thiện nó.

Để giảm tác động của việc mất dữ liệu kể từ lần sao lưu cuối cùng và lỗi âm lượng EBS (không thể, nhưng vẫn có thể), bạn có thể lưu trữ dữ liệu của mình trên một khối EBS riêng biệt so với các tệp hệ thống của bạn và sao lưu âm lượng dữ liệu thường xuyên hơn âm lượng hệ thống .

Với chiến lược hiện tại của bạn, bạn sẽ mất bất kỳ dữ liệu nào được tạo giữa thời điểm sao lưu cuối cùng và thời gian cá thể của bạn thất bại. Với cách tiếp cận mới, khối lượng dữ liệu sẽ được ghi đúng cho đến khi xảy ra lỗi, vì vậy bạn chỉ có thể gắn lại nó vào thể hiện mới của mình sau khi nó chạy và chạy.


Điểm tuyệt vời.
John Miner

4

Tôi tạo ảnh chụp nhanh cho mọi khối lượng trong tài khoản của mình bằng tập lệnh bash

#!/bin/bash

ec2-describe-volumes | awk '{ print $2 }' | sort -u >  /tmp/ebs_volumes

for i in $(cat /tmp/ebs_volumes); do
   echo $i;
   ec2-create-snapshot $i;
done

3
Làm thế nào để bạn cắt tỉa ảnh chụp nhanh cũ?
rmalayter

1
+1 cho cảm hứng. (Tôi đã viết một số kịch bản cho mục đích tương tự của riêng tôi: serverfault.com/questions/275245/... )
Jonik

0

Đây là tập lệnh sẽ tạo bản sao lưu AMI cho tất cả các phiên bản ec2 trong VPC của bạn

#!/bin/bash
#Script to Automate AMI backup

echo "----------------------------------\n   `date`   \n----------------------------------"

aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-xxx |   awk '{ print $8 }' | sort -n   | grep  "i-" > /tmp/instanceid.txt

echo "Starting the Daily AMI creation: "

 #To create AMI from instance-id 

for i in $(cat /tmp/instanceid.txt); do
        echo "Creating AMI for Instance id $i ......."


echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt

aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by ami-backup.sh" --no-reboot | grep -ir ami | awk '{print $4}' > /tmp/amiID.txt

echo  "AMI Name is: `cat /tmp/aminame.txt`\n"

done

echo done
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.