Trong khi các phương pháp sao lưu truyền thống sử dụng tốt với máy chủ vật lý thì với môi trường ảo hóa, các phương pháp này không còn mang lại hiệu quả cao. Bởi vì kiến trúc của môi trường ảo hóa hoàn toàn khác với môi trường vật lý truyền thống, các phương pháp sao lưu truyền thống có thể gây nghẽn mạng, gây ra vấn đề về hiệu năng của máy và mất rất nhiều thời gian để hoàn thành việc sao lưu. Môi trường ảo hóa đòi hỏi các phương pháp sao lưu tăng cường sức mạnh của kiến trúc ảo hóa để thực hiện sao lưu với hiệu xuất cao và tác động tối thiểu đến máy ảo.
a. sao lưu mức hình ảnh
Với hệ thống ảo hóa, chúng ta sẽ đạt hiệu quả cao hơn nếu sao lưu các tệp tin lớn thành nhiều đĩa ảo (vmdk) ở lớp ảo hóa thay vì truy cập vào hệ điều hành để sao lưu các dữ liệu cá nhân. Kiểu sao lưu này gọi là sao lưu mức hình ảnh vì chúng ta sao lưu một đĩa ảo giống hệt với các tệp tin đang chạy trên đĩa của máy ảo. Phương pháp này hiệu quả hơn vì chỉ cần sao lưu một tệp tin lớn thay vì hàng ngàn tệp tin nhỏ. Trong khi đó, phương pháp này cũng có hạn chế là khi sao lưu mức hình ảnh, chúng ta sao lưu cả khối đĩa trống và các tệp tin đã bị xóa
trước đó thì trên bản sao lưu nó cũng không tồn tại. ví dụ: nếu chúng ta có một máy tính có ổ cứng ảo với dung lương 80GB nhưng nó chỉ đang sử dụng 20GB và 60GB trống, việc sao lưu mức hình ảnh sẽ tạo ra một bản sao lưu với dung lượng 80GB. Để khắc phục điều này, các người ta thường kiểm tra các khối đĩa ở lớp ảo hóa để phát hiện ra các khối đĩa trống và bỏ qua chúng. Trong khi kiểm tra các khối đĩa trống thì các phần mềm bảo vệ dữ liệu cho ảo hóa cũng sử dụng một thuật toán chống trùng lặp để phát hiện ra các khối trùng lặp và bỏ qua việc sao lưu đối với những khối này.
Chúng ta sẽ tự hỏi làm cách nào mà phương pháp sao lưu mức hình ảnh có thể phát hiện ra những tệp tin đang chạy trên máy ảo và tránh việc làm hỏng dữ liệu trong quá trình sao lưu nếu nó không thể theo dõi bên trong hệ điều hành khách. Điều này được giải quyết bằng một trình điều khiển đặc biệt được thực thi bên trong máy ảo. Khi bắng đầu sao lưu, trình điều khiển này sẽ buộc hệ điều hành và các ứng dụng chạy trên hệ điều hành dừng quá trình ghi dữ liệu lên đĩa. Sau đó quá trình sao lưu được thực hiện tại lớp ảo hóa, đồng thời tạo ra các ổ đĩa ảo tạm thời để hệ điều hành khách và các ứng dụng có thể ghi dữ liệu vào đó trong quá trình sao lưu. Khi quá trình sao lưu được hoàn thành, tất cả các tệp tin đĩa tạm thời được sao chép trở lại ổ đĩa cứng của máy ảo và các tệp tin đĩa ảo được xóa đi.
Một quan điểm sai lầm của sao lưu mức hình ảnh là chúng ta chỉ sao lưu một tệp tin lớn quy nhất, điều này có nghĩa là nếu như khối đĩa thay đổi thì chúng ta sẽ phải tiến hành sao lưu lại. Với phương pháp sao lưu truyền thống thì chỉ có các tệp tin thay đổi được sao lưu trong bản sao lưu gia tăng. Với bản sao lưu cấp hình ảnh, một ứng dụng sao lưu có thể theo dõi tất cả các khối đĩa đã thay đổi kể từ lần sao lưu cuối cùng để nó biết khối đĩa nào cần sao lưu khi thực hiện sao lưu. Quá trình này có thể làm tăng thời gian sao lưu vì các ứng dụng sao lưu cần tính toán một hàm băm cho mỗi khối và sau đó quét toàn bộ ổ đĩa ảo và so sánh với bbanwgr băm để xác định xem khối dữ liệu nào đã được thay đổi so với lần sao lưu trước. Để tăng tốc độ sao lưu gia tăng, hầu hết các hang sao lưu sử dụng CBT để truy cập qua API vStorage để bảo vệ dữ liệu. Điều này cho phép các
ứng dụng sao lưu đơn giản là truy vấn VMkernel để tìm ra các khối đĩa đã thay đổi kể từ lần sao lưu cuối cùng, điều này làm tăng rất nhiều tốc độ sao lưu gia tăng.
Sao lưu mức hình ảnh cung cấp một số lợi thế so với sao lưu truyền thống như: - các máy ảo được đóng gói thành một tệp tin duy nhất và dễ dàng di chuyển các
máy ảo tới bất kì thiết bị lưu trữ nào khác.
- Dễ dàng phục hồi hơn rất nhiều vì việc duy nhất chúng ta cần làm là sao chép máy ảo từ một ổ đĩa sao lưu đến ổ đĩa của máy chủ vật lý và chạy máy ảo đó.
b. sao lưu mức tệp tin
Sao lưu mức tệp tin truyền thống được thực hiện bằng cách sử dụng một agent bên trong hệ điều hành khách có nhiệm vụ sao lưu tất cả các tệp tin cá nhân. Điều này có thể được thực hiện trong môi trường ảo hóa nhưng nó sẽ gây ra việc sử dụng tài nguyên quá mức trên các máy chủ lưu trữ, có thể gây ảnh hưởng tiêu cực đến các máy ảo khác trên máy chủ đó. Sao lưu sử dụng các agent trên hệ điều hành của máy ảo cần được điều hướng thông tin qua lớp ảo hóa để thực hiện sao lưu trên lớp hệ điều hành khách như sau:
Sao lưu một máy ảo sử dụng một agent bên trong hệ điều hành có thể làm tăng chi phí về mạng, vào ra đĩa cứng cũng như việc sử dụng CPU trên máy chủ trong quá trình sao lưu. Điều này dẫn đến máy chủ có ít tài nguyên để cung cấp cho các máy ảo khác. Nếu có nhiều bảo sao lưu cùng chạy trên hệ thống thì vấn đề sẽ vô cùng tồi tệ và nghiêm trọng có thể dẫn đến máy chủ không còn khả năng cung cấp tài nguyên cho bất kì máy ảo nào.
Hầu hết các công cụ sao lưu ảo hóa thực hiện việc sao lưu mức hình ảnh tại tầng ảo hóa bên ngoài hệ điều hành khách, nhưng phương pháp này vẫn có thể khôi phục lại các tệp tin cá nhân nếu muốn. Điều này có thể xảy ra do các phần mềm sao lưu có thể gắn các ổ đĩa ảo được sao lưu và duyệt hệ thống tệp tin để có thể truy cập vào bất kì tệp tin được sao lưu nào. Bởi vì điều này, sao lưu mức tệp tin không còn cần thiết trong môi trường ảo hóa nữa mà thay vào đó ta thực hiện phục hồi mức độ tệp tin qua các bản sao lưu mức hình ảnh cho hầu hết các hệ điều hành.
c. snapshot máy ảo
Snapshot là một tính năng tuyệt vời của ảo hóa cung cấp khả năng sao lưu khi nâng cấp, vá các phần mềm và hệ điều hành. Snapshot là một hình ảnh trong một thời gian của máy ảo, nó lưu trữ các thông tin trên đĩa, trên bộ nhớ hệ thống của máy ảo. Chúng ta có thể tạo ra nhiều bản snapshot của máy ảo, do đó chúng ta có thể có nhiều điểm khôi phục sẵn sàng để được khôi phục. Khi chúng ta tạo một snapshot tất cả các tiến trình ghi vào tệp tin trên ổ đĩa cứng được dừng lại và ổ đĩa cứng được chuyển sang trạng thái chỉ đọc từ thời điểm đó. Tất cả các tệp tin được ghi vào ổ cứng sau thời điểm chúng ta snapshot sẽ được ghi vào một tệp tin –delta. vmdk được tạo ra khi chúng ta tiến hành snapshot. Khi chúng ta xóa tất cả các snapshot của máy ảo, tất cả các tệp tin –delta. vmdk được hợp nhất với nhau để trở thành tệp tin vmdk trên đĩa. Nếu chúng ta xóa đi một snapshot nào đó, nó sẽ hợp nhất với bản snapshot trước nó và xóa tệp tin –delta. vmdk đó đi.
Hình 2.3. snapshot
Quá trình xóa nhiều snapshot đã thay đổi trên các phiên bản vSphere. Với tất cả các phiên bản, khi chúng ta xóa đi một snapshot, trước khi dữ liệu được ghép lại với tệp tin trên đĩa gốc, một helper snapshot được tạo ra để lưu trữ các bản ghi ổ cứng mà được ghi trong khi các snapshot bắt đầu ghi dữ liệu trở lại ổ cứng gốc. Trong các phiên bản cũ hơn 4. 0 của vSphere, nếu một máy ảo có 3 snapshot hoạt động và chúng ta xóa đi tất cả, quá trình xóa sẽ là snapshot 3 sẽ được sao chép vào snapshot 2 sau đó sẽ được sao chép vào snapshot 1, sau đó sẽ được chép vào tệp tin đĩa gốc và cuối cùng là helper snapshot dẽ sao chép các tệp tin đến ổ đĩa gốc.
Quá trình xóa các snapshot yêu cầu không gian đĩa cứng lớn vì mỗi snapshot sẽ tăng dữ liệu tương đương với dữ liệu của những bản snapshot được thêm vào nó. Nếu không có đủ không gia đĩa trống, các snapshot có thể không được tạo ra hoặc xóa đi. Trong các phiên bản mới từ vSphere 4. 1, thay vì mỗi snapshot được sát nhập vào snapshot trước đó, các snapshot được lần lượt sát nhập vào ổ đĩa gốc. Vì vậy nếu một máy ảo có 3 snapshot đang hoạt động và chúng ta xóa tất cả các snapshot, quá trình xóa sẽ là snapshot 1 được cao chép vào đĩa gốc, snapshot 2 được sao chép vào đĩa gốc, snapshot 3 được sao chép vào đĩa gốc và cuối cùng helper snapshot được sao chép vào các tệp tin trên đĩa gốc.
Hình 2.5. xóa nhiều snapshot mới
Một Snapshot duy nhất không bao giờ vượt quá dung lượng của các tệp tin trên đĩa gốc. Bất kì khi nào một khối đĩa được ghi vào, nó tạo ra các tệp tin delta và chỉ đơn giản là cập nhật nếu thay đổi được tạo ra. Tuy nhiên, không gian kết hợp của nhiều bản chụp có thể lớn hơn kích thước của tệp tin trên đĩa gốc. Snapshot ban đầu có kích thước chỉ 16MB sau đó nó tăng trưởng theo các khối 16MB khi các tệp tin trên đĩa của máy ảo được ghi vào. Bất cứ khi nào một yêu cầu thực hiện thay đổi một tệp tin trên đĩa cứng của máy ảo thì nó sẽ thay đổi trong các
tệp tin delta. Nếu một khối đĩa đã thay đổi trước đó được ghi vào tệp tin delta, tiếp tục được thay đổi thì không làm tăng dung lượng của tệp tin delta vì về căn bản chúng chỉ cần cập nhật các khối dữ liệu. Tỉ lệ tăng trưởng của một snapshot phụ thuộc vào hoạt động ghi dữ liệu vào ổ cứng của máy ảo sau khi snapshot được tạo ra. Các máy chủ có ứng dụng thao tác dữ liệu như SQL, Exchange sẽ có các tệp tin snapshot phát triển nhanh. Mặt khác, các máy chủ như máy chủ web, máy chủ ứng dụng sẽ có tốc độ tăng trưởng chậm hơn rất nhiều. Khi chúng ta tạo ra nhiều snapshot, các tệp tin delta mới được tạo ra và các tệp tin delta cũ được đưa về trạng thái chỉ đọc. với nhiều snapshot, mỗi tệp tin delta có khả năng phát triển lớn bằng tệp tin trên đĩa gốc.
Snapshot máy ảo không nên được coi là một phương pháp chính để sao lưu các máy ảo. Snapshot hữu ích cho việc sao lưu ngắn hạn, nó cần thiết để bảo vệ trạng thái của máy ảo. các snapshot làm giảm hiệu suất của máy ảo khi nó lớn lên và nó cũng tiêu thụ không gian đĩa cứng lớn của các kho dữ liệu. Ngoài ra, vì ổ cứng của máy ảo được chia ra, nó tạo ra một số vấn đề và có thể ngăn một số hoạt động của máy ảo và các tính năng sử dụng ổ đĩa. Snapshot cần được theo dõi chặt chẽ. Các tệp tin trên đĩa gốc có thể được phát triển lớn hơn so với không gian vốn có của nói khi các snapshot được xóa đi.
Trong khi snapshot máy ảo không được coi là phương pháp sao lưu chính thì nó tạo ra môi trường tốt nhất để thực hiện sao lưu mức hình ảnh. Thực hiện snapshot trước khi sao lưu mức hình ảnh là rất cần thiết để đảm bảo các khối đĩa không bị thay đổi trong khi các tệp tin ảo hóa đnag được sao lưu. Snapshot làm cho các đĩa ảo của máy ảo ở trạng thái chỉ đọc và sao lưu mức hình ảnh có thể đọc quyền truy cập vào đĩa cứng và sao chép nó. Sau khi hoàn tất các sao lưu, các snapshot được xóa đi và tất cả các thay đổi được ghi trở lại đĩa gốc. Hầu như tất cả các phương pháp sao lưu dựa trên snapshot máy ảo để tiến hành sao lưu mức hình ảnh.
d. các trạng thái sao lưu phù hợp
Khi một snapshot máy ảo được thực hiện, các dữ liệu trên đĩa của máy ảo được giữ nguyên, tuy nhiên, có thể tồn tại các dữ liệu trên bộ nhớ mà chưa được ghi
vào đĩa. Điều này có thể làm mất dữ liệu hoặc có thể gây ra việc dữ liệu được sao lưu bị lỗi một phần hoặc không đầy đủ. Bởi vậy, trước khi thực hiện snapshot cần tạm thời dừng hệ điều hành và các ứng dụng sau khi chúng đã ghi toàn bộ dữ liệu vào ổ cứng. Sau khi hoạt động này kết thúc, snapshot được thực hiện và hệ điều hành cùng với các ứng dụng có thể hoạt động bình thường. Hành động này đảm bảo dữ liệu có thể được phục hồi một cách chính xác nhất. Có nhiều trạng thái khác nhau mà một máy chủ có thể đạt được khi quá trình snapshot được thực hiện.
- Crash consistent: trạng thái này giống như một máy tính vật lý bị hỏng hoặc nó bị tắt nhưng không bị tắt hoàn toàn. Tất cả các giao dịch đang chờ để thực thi và dữ liệu trong bộ nhớ của máy ảo không được ghi vào đĩa. Đây là trạng thái mặc định nếu chúng ta tạo một snapshot mà máy ảo không được dừng và các ứng dụng vẫn tiếp tục giao tiếp với ổ cứng.
- File System consistent: trong trạng thái này, hệ điều hành được dừng lại, hệ điều hành được cho phép viết tất cả các dữ liệu đang chờ vào đĩa trước khi thực hiện snapshot. Trạng thái này tốt hơn trạng tháu Crash consistent vì hệ điều hành được đảm bảo ở trạng thái thích hợp để sao lưu nhưng các ứng dụng trên hệ điều hành chưa chắc đã sẵn sàng.
- Application consistent: trạng thái này là trạng thái mà cả hệ điều hành và ứng dụng được dừng lại và lưu toàn bộ dữ liệu vào ổ cứng để có thể phục hồi đúng cách. Đây là trạng thái tốt nhất để một máy ảo được đảm bảo sao lưu đúng. Thông thường, điều này bao gồm cả các ứng dụng giao dịch dựa trên cơ sở dữ liệu như máy chủ email và hệ thống tài chính.
Sao lưu ứng dụng phù hợp là vô cùng quan trọng để đảm bảo rằng dữ liệu của chúng ta được sao lưu đúng. Hầu hết các công cụ sao lưu tận dụng các ứng dụng VMware Tools được cài đặt trên các máy ảo để dừng hệ điều hành và ứng dụng trước khi tạo ra một snapshot cho việc sao lưu.
e. VCB và các vStorage API
Sản phẩm đầu tiên của VMware để an toàn dữ liệu là VMware Consolidated Backup (VCB). VCB hoạt động như một máy chủ proxy để giảm tải việc sao
lưu từ các máy ảo bằng cách găn các ổ đĩa ảo lên máy chủ VCB và sau đó sao lưu mức hình ảnh mà không cần đến máy chủ hoặc máy ảo. Điều này chuyển việc sao lưu từ máy ảo đến máy chủ sang việc sao lưu từ máy ảo sang máy chủ proxy.
Hình 2.6. mô hình có VCB Proxy
Với việc phát hành vSphere, VMware đã loại bỏ VCB và Proxy, thay vào đó nó sử dụng các API vad SDK để các nhà cung cấp sao lưu có thể kết nối trực tiếp đến mục tiêu lưu trữ để sao lưu máy ảo. các vStorage API mới cho bảo vệ dữ liệu (VADP) bao gồm các chức năng mới như CBT và khả năng tương tác trực tiếp với nội dung của ổ đĩa ảo. việc này cung cấp hiệu quả sao lưu tốt hơn và