Sử dụng công nghệ Volume Shadow Copy của Microsoft để sao lưu nhất quán
Khi tạo bản sao lưu cho máy ảo hoặc máy vật lý có các ứng dụng đang chạy, đặc biệt là các ứng dụng ghi dữ liệu với tần suất cao vào tệp và cơ sở dữ liệu, việc đảm bảo tính nhất quán của dữ liệu sao lưu là vô cùng quan trọng. Dữ liệu sao lưu nhất quán giúp quá trình khôi phục diễn ra suôn sẻ mà không gặp sự cố hỏng dữ liệu hay chậm trễ. Với mục đích này, Microsoft đã phát triển công nghệ VSS.
Bài viết blog này giải thích Volume Shadow Copy Service (VSS) là gì, cách thức hoạt động của nó, và lý do tại sao công nghệ này lại quan trọng đối với việc sao lưu các máy ảo và máy vật lý chạy hệ điều hành Windows.
VSS là gì?
Dịch vụ Bản sao Bóng Khối lượng (Volume Shadow Copy Service – VSS), một tính năng tích hợp sẵn của hệ điều hành Windows, hỗ trợ việc tạo các bản sao lưu nhất quán và nhận biết ứng dụng. Để đảm bảo tính nhất quán của dữ liệu sao lưu, các bước sau sẽ diễn ra:
- VSS tạm thời dừng các thao tác ghi do các ứng dụng thực hiện.
- Các vùng đệm từ bộ nhớ được ghi vào đĩa, tức là được xả ra và hệ thống tệp bị đóng băng.
- Một bản chụp khối lượng (volume snapshot), còn được gọi là bản sao bóng (shadow copy), được tạo trong hệ điều hành Windows.
Volume Shadow Copy, còn được gọi là Dịch vụ Ảnh chụp Nhanh Khối lượng (Volume Snapshot Service), là một tập hợp các COM (Mô hình Đối tượng Thành phần) giao diện trong Windows, cung cấp khung nền để tạo các bản sao lưu nhất quán cho các ứng dụng khác nhau. VSS lần đầu tiên được phát hành cùng với Windows XP và Windows Server 2003.
Tại sao bạn cần công nghệ VSS
Tính nhất quán của dữ liệu ứng dụng rất quan trọng đối với việc sao lưu máy ảo (VM) và máy chủ vật lý. Tính nhất quán đảm bảo rằng các ứng dụng đang chạy trên máy ảo hoặc máy chủ vật lý sẽ hoạt động đầy đủ chức năng sau khi được khôi phục từ bản sao lưu.
Nếu không có VSS, bạn sẽ nhận được bản sao lưu không nhất quán. Bản sao lưu như vậy được tạo ra bằng cách chỉ sao chép từng khối ở trạng thái của nó tại thời điểm sao chép. Giả sử một tệp đang được ứng dụng như cơ sở dữ liệu hoặc ứng dụng hệ thống sử dụng liên tục. Ứng dụng này liên tục thay đổi dữ liệu trong tệp đang mở bằng cách ghi/xóa các khối. Trong khi phần đầu tiên của tệp đang được sao chép, các khối được sử dụng bởi các phần khác của tệp đang thay đổi. Đến khi các phần còn lại của tệp được sao chép vào kho lưu trữ sao lưu, các khối trong phần đầu tiên đã thay đổi. Kết quả là bạn nhận được các khối dữ liệu không nhất quán và không đại diện cho một thời điểm cụ thể nào.
Một cách để tránh tình huống này là dựa trên ảnh chụp nhanh sao lưu máy ảo (VM). Khi quá trình sao lưu bắt đầu, một ảnh chụp nhanh (snapshot), tức là bản sao chính xác của máy ảo, sẽ được tạo ra. Trong quá trình này, tất cả các đĩa ảo (được biểu diễn dưới dạng các tệp .vmdk trong môi trường VMware) sẽ chuyển sang chế độ chỉ đọc. Để lưu trữ các thay đổi được thực hiện trong quá trình sao lưu trên đĩa chính, VMware ESXi tạo ra một tệp delta được liên kết với tệp chính .vmdk . Sau khi tệp delta được tạo, phần mềm sao lưu bắt đầu sao chép dữ liệu từ tệp chỉ đọc .vmdk . Khi quá trình sao lưu hoàn tất, tệp delta sẽ được hợp nhất với tệp .vmdk .
Cách tiếp cận này có thể hoạt động hiệu quả đối với các hệ thống tệp không có tải quá cao, chẳng hạn như lưu trữ tệp nội bộ hoặc máy chủ web. Tuy nhiên, nếu quá trình sao lưu bắt đầu vào thời điểm một số giao dịch đang chạy và các hoạt động I/O (đầu vào/đầu ra) đang diễn ra, dữ liệu có thể bị mất. Khi bạn sử dụng các ứng dụng hoặc cơ sở dữ liệu như Microsoft SQL Server, Active Directory hoặc Exchange Server, bạn không thể chỉ đơn giản đóng tệp rồi thêm dữ liệu vào đó. Trong trường hợp này, Dịch vụ Sao chép Bóng Thể tích (Volume Shadow Copy Service – VSS) có thể giúp đỡ. Công nghệ này cho phép tạo các bản sao tại một thời điểm cụ thể của các tệp đang mở và đang được sử dụng mà không làm ảnh hưởng đến tính toàn vẹn và khả năng sử dụng của các bản sao đó.
Cách thức hoạt động của Dịch vụ Sao chép Bóng Thể tích
Để hiểu cách VSS hoạt động, trước tiên chúng ta cần tìm hiểu các thành phần cấu thành tính năng này. Các thành phần cấp cao của VSS bao gồm:
- Nhà cung cấp VSS là thành phần cốt lõi của VSS, chịu trách nhiệm tạo các bản sao bóng (snapshot) của các khối lượng. Nhà cung cấp VSS có thể được triển khai dưới dạng phần mềm hoặc phần cứng. Nhà cung cấp VSS phần mềm theo cơ chế “copy-on-write” được tích hợp sẵn trong hệ điều hành Windows. Các nhà cung cấp phần cứng thường được sử dụng với hệ thống lưu trữ SAN (mạng lưu trữ). Các nhà cung cấp phần cứng giúp giảm tải cho hệ điều hành máy chủ khi tạo bản sao bóng.
- Các trình ghi (writer) là các thành phần phần mềm có nhiệm vụ ghi dữ liệu vào tệp và cơ sở dữ liệu để đảm bảo tính nhất quán. Mỗi ứng dụng hỗ trợ VSS sẽ thêm trình ghi của mình vào hệ điều hành trong quá trình cài đặt. Ví dụ về các ứng dụng cung cấp trình ghi VSS bao gồm Microsoft SQL Server và Exchange Server.
- Trình yêu cầu (requestor) là thành phần phần mềm ra lệnh cho nhà cung cấp VSS bắt đầu hoặc dừng hoạt động (tạo, xóa hoặc nhập các bản sao bóng). Yêu cầu có thể đến từ các thành phần gốc của Windows (như NTBackup hoặc Snapshot Manager cho Hyper-V) hoặc từ một ứng dụng của bên thứ ba như phần mềm sao lưu.
- Dịch vụ VSS là một thành phần của hệ điều hành đảm bảo rằng tất cả các thành phần khác có thể giao tiếp và phối hợp với nhau.
Các bản chụp nhanh (snapshot) được tạo ở cấp độ khối lượng (volume), và VSS hoạt động dựa trên các khối (và các khối này được các tệp sử dụng). Đó là lý do tại sao bạn không thể tạo bản chụp nhanh cho các tệp hoặc thư mục. Bản sao bóng (shadow copy) có thể được lưu trữ trên cùng một khối lượng hoặc trên một khối lượng khác. Vùng trên khối lượng được phân bổ để lưu trữ các bản sao bóng được gọi là vùng diff (diff area).
Thư mục System Volume Information được sử dụng để lưu trữ các tệp bản sao bóng của VSS. Các tệp này có các định danh như 3517271a-d214-3a47-c5ea-01137a4fe675.
Công nghệ VSS có thể được sử dụng như một công cụ tích hợp sẵn của Windows để lưu các bản sao tại một thời điểm cụ thể (snapshot) của các phân vùng đĩa. Các bản sao này cho phép bạn hoàn tác các thay đổi và khôi phục về trạng thái đã lưu của toàn bộ phân vùng hoặc các tệp cụ thể. Tuy nhiên, việc tạo một bản sao lưu thực sự để lưu trữ trên phương tiện bên ngoài được khuyến nghị nhằm bảo vệ dữ liệu một cách đáng tin cậy hơn.
VSS là một quy trình tăng dần – Windows có thể tạo nhiều bản chụp phân vùng liên tiếp nhau. Sau khi tạo bản sao bóng đầu tiên, VSS theo dõi các thay đổi trên đĩa bằng cách chia dữ liệu thành các khối 16 KB. Nếu có thay đổi trên đĩa, dịch vụ sẽ ghi toàn bộ khối này vào bản sao bóng. Do đó, không cần sao chép toàn bộ tập dữ liệu với mỗi bản chụp mới, mà chỉ các khối đã thay đổi mới được sao chép.
Các yêu cầu và giới hạn chính của VSS :
- Cần ít nhất 300 MB dung lượng đĩa để tạo các bản chụp VSS.
- Số lượng bản sao lưu khối tối đa theo mặc định là 64.
- Hệ thống Windows dành 10% dung lượng khối để lưu trữ các bản sao lưu khối.
Lưu ý rằng các bản sao lưu VSS được kích hoạt bởi ứng dụng sao lưu thường bị xóa sau khi công việc sao lưu hoàn tất.
Các công cụ tích hợp sẵn để quản lý bản sao lưu khối VSS
Bạn có thể sử dụng các công cụ tích hợp sẵn của Windows để quản lý bản sao lưu khối. Hiểu cách chúng hoạt động với các bản chụp nhanh có thể giúp bạn nắm rõ hơn về công nghệ VSS và khắc phục các sự cố có thể xảy ra (ví dụ: bản chụp nhanh VSS tạm thời không bị xóa sau khi tạo xong bản sao lưu).
Một số tùy chọn VSS có sẵn trong giao diện đồ họa (GUI) của Windows, nhưng tất cả các tùy chọn đều có thể truy cập qua dòng lệnh, điều này thú vị hơn đối với chúng ta. Có hai công cụ VSS mà bạn có thể sử dụng trong Windows PowerShell hoặc CMD:
vssadmin– có sẵn trên tất cả các phiên bản Windows bắt đầu từ Windows XP (bao gồm Windows 10), ngoại trừ Windows 8.diskshadow– chỉ có sẵn trên các phiên bản Windows Server. Đây là phiên bản nâng cao của vssadmin , cho phép bạn không chỉ làm việc ở chế độ tương tác mà còn có thể tạo các tập lệnh.
Lưu ý rằng hai tiện ích này khác nhau và hoạt động trong các bối cảnh khác nhau. Một bản sao bóng được tạo trong vssadmin không thể được quản lý trong diskshadow và ngược lại. Bạn có thể xem bản sao lưu được tạo bằng công cụ khác, nhưng không thể thực hiện bất kỳ thao tác nào với nó.
Giao diện lập trình ứng dụng (API) của Dịch vụ Bản sao Bóng (Volume Shadow Copy Service – VSS) được cung cấp để cho phép các ứng dụng sao lưu sử dụng VSS và tạo bản sao lưu nhận biết ứng dụng nhằm đảm bảo tính nhất quán của dữ liệu sao lưu.
Các máy ảo (VM) VMware chạy Windows sử dụng thành phần VMware VSS làm trình điều khiển VSS trong hệ điều hành Windows khách để thực hiện quá trình tạm dừng hệ thống (quiescing). Trình điều khiển này được cài đặt khi bạn Cài đặt VMware Tools. Trong các trường hợp khác, khi sử dụng các phiên bản Windows cũ, trình điều khiển SYNC sẽ được sử dụng. Dưới đây là Danh sách các hệ điều hành khách được hỗ trợ các hệ thống hỗ trợ quá trình tạm dừng có nhận biết ứng dụng trong môi trường VMware.
Cách tạo bản sao bóng (Shadow Copy)
Khi một bản sao bóng (bản chụp nhanh khối lượng) được tạo, kích thước của nó là 0 byte. Khi dữ liệu mới được ghi, dữ liệu này sẽ được ghi lên đĩa (nơi nó thường nên được lưu trữ), nhưng dữ liệu cũ sẽ được ghi vào bản sao bóng để bạn có thể khôi phục dữ liệu cũ đó sau này. Kích thước của bản sao bóng sẽ tăng lên do đó.
Có hai phương pháp chính để ghi dữ liệu khi tạo bản chụp nhanh:
Redirect on write (RoW): Ghi các khối dữ liệu mới vào bản chụp nhanh (bản sao bóng) và lưu trữ siêu dữ liệu chứa thông tin về vị trí các khối trên đĩa mà chúng phải được ghi vào. Phương pháp này cho phép ghi dữ liệu nhanh nhưng đọc dữ liệu chậm. Nếu bạn cần khôi phục về trạng thái ban đầu khi bản chụp nhanh được tạo, quá trình này mất vài giây bằng cách xóa bản chụp nhanh (gần như ngay lập tức). Phương pháp RoW được sử dụng cho các tệp VMDK ( tạo bản sao lưu của các đĩa ảo trên máy ảo ) trong VMware ESXi và VMware Workstation.Copy on Write (CoW): Ghi các khối dữ liệu mới vào vị trí cần thiết trên đĩa và gửi nội dung của các khối đã được ghi đè vào bản sao lưu. Việc ghi diễn ra chậm, nhưng việc đọc lại nhanh. Các bản sao lưu trước đó (trạng thái dữ liệu trước đó) sẽ bị xóa trong vài giây (gần như tức thì). Phương pháp CoW được sử dụng cho các bản chụp nhanh VSS.
Với rất nhiều ứng dụng khác nhau có thể ghi dữ liệu lên đĩa, Microsoft đã tạo ra một giao diện thống nhất với VSS để thông báo cho tất cả các ứng dụng rằng một bản chụp nhanh sắp được tạo sau khi khởi tạo quá trình tạo bản chụp nhanh. Ý tưởng của thông báo này là: Hệ thống sẽ tạo một bản chụp nhanh – tạm dừng các hoạt động ghi dữ liệu và xả bộ đệm ghi trên đĩa để đưa dữ liệu về trạng thái nhất quán.
Quy trình tạo ảnh chụp nhanh VSS như sau:
- Bên yêu cầu VSS kiểm tra các dịch vụ khả dụng mà nó có thể giao tiếp, liệt kê các thiết bị ghi và thu thập siêu dữ liệu.
- Sau khi thu thập danh sách các thiết bị ghi, bên yêu cầu sẽ giao tiếp với nhà cung cấp VSS và thông báo cho ảnh chụp nhanh về dữ liệu cần tạo cũng như vị trí lưu trữ ảnh chụp nhanh. Trong hầu hết các trường hợp, ảnh chụp nhanh được lưu trữ trên cùng một khối lượng trên đĩa gốc. Trong một số trường hợp khác, các nhà cung cấp phần cứng SAN có thể tạo một khối lượng riêng biệt cho bản chụp nhanh, được gọi là bản chụp nhanh lưu trữ.
-
Chuẩn bị sao lưu. Bước này bao gồm việc yêu cầu trạng thái thực tế của các trình ghi VSS (sau khi lấy được siêu dữ liệu) và chuẩn bị cho thao tác quan trọng nhất khi các trình ghi phải thực hiện lần lượt. Các trình ghi được thông báo rằng chúng phải chuẩn bị cho việc tạo bản chụp nhanh. Bộ đệm hệ thống được xả, và ứng dụng bị đóng băng để đảm bảo có thể tạo ra một bản sao dữ liệu nhất quán. Mỗi trình ghi phải hoàn thành trong khoảng thời gian được phân bổ là 60 giây theo mặc định. Microsoft Exchange Server chỉ có 20 giây cho thao tác này (thời gian này do Microsoft quy định).
Lưu ý: 20 giây là khoảng thời gian rất ngắn. Nếu ứng dụng không thể hoàn thành trong khoảng thời gian này, các trình ghi sẽ trả về lỗi và bản sao lưu sẽ không được tạo. Nếu hiệu suất lưu trữ không đủ để đáp ứng giới hạn thời gian này, bạn có thể thử nâng cấp phần cứng để khắc phục vấn đề này. Ví dụ: bạn có thể thay thế ổ cứng HDD bằng ổ SSD. Ngoài ra, bạn có thể thử di chuyển các tác vụ khác sang một hệ thống lưu trữ khác và chỉ sử dụng hệ thống lưu trữ chuyên dụng cho máy chủ chạy Microsoft Exchange Server. Kiểm tra nhật ký để xác định trình ghi nào đã thất bại trong tác vụ tạo ảnh chụp nhanh.
-
Nếu mọi thứ đều bình thường và hoạt động hệ thống bị tạm dừng, thì VSS sẽ thông báo rằng nhà cung cấp có thể tạo bản sao bóng. Chỉ có 10 giây để tạo bản sao bóng. Các yêu cầu I/O của hệ thống tệp sẽ tạm thời không khả dụng trong khoảng thời gian này. Đây cũng là thời điểm bạn có thể tạo bản sao máy ảo (VM). Sau khi 10 giây trôi qua, tất cả các trình ghi sẽ được giải phóng và các hoạt động đầu vào/đầu ra (I/O) sẽ hoạt động trở lại.
Lưu ý: Nếu các trình cung cấp VSS mất hơn 10 giây để cam kết bản sao bóng, thao tác sẽ thất bại.
- VSS thông báo cho các chương trình ghi rằng các ứng dụng có thể tiếp tục ghi dữ liệu vào đĩa sau khi yêu cầu I/O đã được giải đông. Nếu chúng ta sử dụng một ứng dụng sao lưu và sao lưu sử dụng dịch vụ VSS của Windows đã được tạo ra, snapshot VSS có thể được xóa. Thao tác này có thể được thực hiện bởi ứng dụng sao lưu. Ngoài ra, bạn có thể xóa một snapshot volume với
diskshadowhoặcvssadmin.Nếu bạn gặp vấn đề với VSS, nhiều trường hợp khởi động lại máy tính có thể khắc phục vấn đề khi các phương pháp khác không hiệu quả. Một số vấn đề liên quan đến hạn chế thời gian (ví dụ, 10 giây để tạo một snapshot) có thể được khắc phục bằng cách nâng cấp phần cứng, bao gồm các thiết bị đĩa, hoặc bằng cách giảm tải.
Hãy thử tạo snapshot thủ công và kiểm tra liệu bạn có phù hợp với thời gian 20 giây được cấp phát (sử dụng Exchange Server làm ví dụ). Trong trường hợp thất bại, khởi động lại, giảm tải, và thử lại.
Từ Windows Server 2012, VSS hỗ trợ chia sẻ tệp SMB trong Windows. Công nghệ VSS rất hữu ích với chia sẻ tệp vì các tệp có thể được ghi liên tục bởi người dùng và ứng dụng, điều mà làm sao lưu chia sẻ thành thách thức nếu không có VSS. NAKIVO Backup & Replication 10.7 hỗ trợ sao lưu tệp tin chia sẻ.
Cách Dịch Vụ Sao Chép Bóng Tối Khối Lượng (VSS) Hoạt Động trong Giải pháp của NAKIVO
Chúng ta đã khám phá cách VSS hoạt động nói chung. Bây giờ, hãy xem cách công nghệ VSS hoạt động khi tạo bản sao lưu VMware vSphere VM với phần mềm sao lưu chuyên dụng như NAKIVO Backup & Replication.
Nói tóm lại, Dịch vụ Sao Chép Bóng Tối Khối Lượng hoạt động như sau: Yêu cầu gọi VSS được khởi động. Nhà cung cấp chuyển hướng các chương trình ghi để ghi dữ liệu vào một tệp nhật ký và bắt đầu tạo snapshot khối lượng. Sau khi yêu cầu dừng từ người yêu cầu được gửi đến nhà cung cấp (thường sau khi snapshot đã sẵn sàng), nó bắt đầu di chuyển dữ liệu từ tệp nhật ký vào khối lượng.
Trong trường hợp này, NAKIVO Backup & Replication trở thành người yêu cầu VSS khi sao lưu một VMware vSphere VM sử dụng VSS.
- Trước khi bản sao lưu VM bắt đầu, giải pháp NAKIVO ghi dữ liệu qua trình ghi VSS của nó.
- Khi quá trình sao lưu bắt đầu, NAKIVO Backup & Replication yêu cầu nhà cung cấp VSS bắt đầu làm việc. Trình ghi chuyển hướng dữ liệu vào tệp nhật ký trong khi khối lượng “đóng băng”.
- NAKIVO Backup & Replication bắt đầu tạo snapshot trên lớp VM. Nó có thể mất từ vài giây đến vài phút, tùy thuộc vào tải lưu trữ VMFS. Trong thời gian này, trình ghi tiếp tục ghi dữ liệu vào tệp nhật ký.
- Snapshot của VM đã được tạo thành công. NAKIVO Backup & Replication, với tư cách là bên yêu cầu, gửi tín hiệu đến nhà cung cấp để ngừng hoạt động.
- Nhà cung cấp VSS chuyển các thay đổi từ tệp nhật ký sang khối lượng. NAKIVO Backup & Replication sao chép khối dữ liệu của ảnh chụp nhanh máy ảo (VM) vào kho lưu trữ sao lưu.
Bạn có thể định cấu hình chế độ nhận biết ứng dụng để đảm bảo tính nhất quán của dữ liệu sao lưu trong trình hướng dẫn tại bước
Options. Bằng cách này, bạn kích hoạt VSS trên một máy chạy Windows để sao lưu chính máy đó.
Kết luận
Dịch vụ Sao chép Bóng Thể tích (VSS) là một công nghệ tuyệt vời để duy trì tính nhất quán cho các bản sao lưu máy ảo, nhưng nó chỉ hoạt động trên các máy chạy Windows. Để tạo các bản sao lưu nhất quán cho các máy chạy Linux, bạn nên triển khai các tập lệnh đặc biệt trước khi đóng băng và sau khi giải phóng. Giải pháp NAKIVO cũng cung cấp các bản sao lưu nhất quán tự động cho các máy chủ và máy trạm Linux.



