Công nghệ Snapshot


(Post 02/12/2005) Snapshot là một trong những tính năng mới của Windows Server 2003 sẽ sớm được sử dụng trong hầu hết các trung tâm dữ liệu. Mỗi snapshot là hình ảnh nhất quán của hệ thống tệp (file system) tại một thời điểm…

Ngay cả sau khi người dùng đã thay đổi dữ liệu, snapshot vẫn lưu lại cho chúng ta một bản sao chỉ đọc giống hệt như khi chúng ta “chụp ảnh” hệ thống. Các snapshot được giữ nguyên qua những lần khởi động lại và có thể truy nhập trực tuyến như mọi file system khác, với những công cụ và giao diện tương tự. Một số sản phẩm snapshot thậm chí còn có thể trải dài trên nhiều file system.

Công nghệ này thực ra đã tồn tại trong mấy năm qua. Nó gần như là chuẩn trong các sản phẩm NAS như phần cứng của NetAppliances (NetApp) hay phần mềm của Mountain View Data (MVD). Trong sản phẩm Persistent Storage Manager (PSM), Columbia Data Products (CDP) đã đưa snapshot vào Microsoft Server Appliance Kit và các giải pháp trên Windows của các nhà sản xuất thiết bị gốc (OEM) khác. Veritas cũng có snapshot trong file system VxFS cho Solaris, Linux và các hệ Unix khác. Chúng ta cũng có được công nghệ snapshot dựa trên volume từ LVM của nhân Linux 2.4, tích hợp với tất cả các file system chuẩn.

Snapshot khác với nhân bản (replication). Mặc dù có một số đặc tính của snapshot nhưng việc nhân bản dữ liệu liên quan tới nhiều vấn đề khác biệt căn bản so với công nghệ snapshot. Một trong số đó là các sản phẩm nhân bản thường sao chép dữ liệu từ máy này sang máy khác trong khi các snapshot nằm trên cùng một máy với dữ liệu hoạt động.

Không phải là một bản sao

Mặc dù snapshot có vẻ như là một cách lưu các bản sao của tất cả các tệp trên cùng một máy nhưng công nghệ này còn làm được nhiều hơn thế. Nếu xét theo nghĩa đen thì công nghệ snapshot làm ít hơn rất nhiều! Nếu snapshot là các bản sao thực sự thì 5 snapshot sẽ chiếm dung lượng bằng 5 lần dữ liệu gốc. Ngược lại, các sản phẩm snapshot sử dụng cơ chế Copy-On-Write (COW), chỉ chép dữ liệu khi một ứng dụng thay đổi hay xoá nó. Thường thì “bản sao” này là một con trỏ chỉ tới một khối dữ liệu trống mới.

Khi bạn “chụp ảnh” một file system hoạt động, hệ thống chỉ phải làm rất ít việc, chẳng hạn như đặt các cờ và tạo một số cấu trúc dữ liệu nhỏ nhưng đối với các khối dữ liệu hay các tệp thì có thể coi như không có chuyện gì xảy ra. Vì thế, ngay cả với những hệ thống tải nặng với dung lượng dữ liệu khá lớn, việc “chụp một bức ảnh” chỉ mất có vài giây.

Mặc dù tất cả các tệp đều có thể nhìn thấy ngay lập tức trong snapshot nhưng công việc thực sự chỉ được thực hiện khi một ứng dụng làm thay đổi dữ liệu. Khi đó, dữ liệu cũ được chép vào snapshot và một cờ được thiết lập để vùng dữ liệu đó không được chép lại vào lần thay đổi sau, trừ khi một snapshot mới được tạo ra. Những dữ liệu không thay đổi trong file system hoạt động sẽ không được chép vào snapshot. Do đó, dung lượng đĩa cần cho một snapshot phụ thuộc vào mức độ thay đổi của dữ liệu chứ không phải độ lớn của file system ban đầu.

Truy nhập các snapshot

Mỗi sản phẩm có một cách riêng để truy nhập các tệp trong snapshot. Trong NetApp Filer có một thư mục giả được đặt tên là “.snapshot” trong mỗi thư mục của file system hoạt động. MVD dùng một cơ chế tương tự nhưng đặt tên các thư mục đó là “.snap” (với người dùng Windows, dấu . có thể được thay thế bởi dấu ~).

Với phương pháp này, mỗi người dùng có thể vào thư mục .snap từ bất kỳ thư mục nào. Ví dụ như từ thư mục /home/tuan, người dùng Tuấn có thể thấy các thư mục Wed7am hay weekly.1 tương ứng với mỗi snapshot được lưu. Các tệp hay thư mục tồn tại vào thời điểm 7 giờ sáng ngày thứ tư sẽ được tìm thấy trong thư mục /home/tuan/.snap/Wed7am thậm chí cả sau khi chúng đã bị xoá. Trong trường hợp xấu nhất, nếu thư mục cha /home/tuan đã bị xoá thì Tuấn vẫn có thể chuyển tới thư mục gốc và xem thư mục /.snap/Wed7am/home/tuan.

PSM cũng làm theo cách tương tự nhưng thay vì tạo ra các thư mục giả trong mỗi thư mục con, các snapshot của sản phẩm này được lưu trong một thư mục đặc biệt mức cao nhất của hệ thống NTFS. Phiên bản cũ của F:\myfile có thể nằm trong F:\snapshots\hourly.5\myfile. Trong Windows 2003, bạn phải chia sẻ ổ đĩa gốc (\\localhost\f$) trước tiên rồi sau đó mới có thể View, Copy hay Restore một tệp từ các tab mới của hộp thoại Properties. Cũng có những tiện ích bổ sung để thực hiện các chức năng trên trên các máy trạm Windows khác.

VxFS của Veritas gắn mỗi snapshot với một thiết bị khối (block device) đặc biệt có thể tải (mount) được như một file system VxFS độc lập. Veritas gọi chúng là Storage Checkpoints để phân biệt với các file system snapshot (giống với các vùng đệm chứa tệp mở hơn) và các VxVM snapshot – những mirror volume. Trong LVM, bạn tạo ra một volume lôgic mới như một snapshot rồi mount nó thành một file system có kiểu phù hợp.

Sao lưu trực tuyến

Các snapshot giữ nguyên phân quyền của các tệp và thư mục ban đầu. Kỹ thuật COW cho phép lưu giữ đồng thời một số lớn các phiên bản. Vì thế, các snapshot thường được dùng như các bản sao trực tuyến.

Snapshot bảo vệ dữ liệu khỏi các sửa đổi vô tình, ví dụ như việc ghi đè hay xoá nhầm một tệp, và phần lớn các sự cố do lỗi của người dùng liên quan tới tệp. Không giống như quá trình lựa chọn cho khôi phục từ băng từ, khi người dùng muốn khôi phục một tệp từ các bản sao lưu trực tuyến, anh ta có thể duyệt rất nhiều phiên bản khác nhau và chọn tệp thích hợp nhất. Ngoài ra, khác với khôi phục từ băng từ, phần lớn người dùng có thể tự làm trong vài phút mà không cần đến sự giúp đỡ của trung tâm.

Tuy nhiên, snapshot không chống lại được các hỏng hóc về phần cứng hay hệ thống. Một người quản trị ác ý có thể xoá các snapshot.Vì thế, snapshot không thay thế được việc sao lưu bằng băng từ hay nhân bản dữ liệu sang các địa điểm khác.

Quản lý tệp mở

Cũng giống như các bản sao trên băng từ, nếu bạn muốn khôi phục dữ liệu cũ, trước hết bạn phải có được một “bức ảnh” nhất quán của dữ liệu. Các sản phẩm snapshot đưa file system tới trạng thái ổn định bằng cách dồn (flush) hết các nhật ký, bộ đệm dữ liệu (data buffer), … ra đĩa rồi tạm thời ngăn tất cả các thao tác IO trong quá trình “chụp ảnh”. Việc đó giúp tránh các hỏng hóc của file system. Ngay cả LVM, một chương trình quản lý volume, cũng có mức tích hợp cơ bản này với các file system Linux chuẩn.

Tuy nhiên các ứng dụng vẫn có thể có các bộ đệm bên trong chưa được dồn ra đĩa hay đang trong quá trình ghi một lượng lớn dữ liệu trong lúc hệ thống đang tạo snapshot. Cách đơn giản nhất để tránh điều đó là tắt các ứng dụng khi tạo snapshot. Các hệ quản trị cơ sở dữ liệu và các ứng dụng cao cấp khác thường có chế độ sao lưu nóng cho phép ổn định dữ liệu trên đĩa của chúng mà không phải tắt (shutdown) hẳn.

Dù với phương pháp ổn định dữ liệu nào thì thời gian ngừng hoạt động của các ứng dụng vẫn khá nhỏ vì việc tạo snapshot hoàn thành rất nhanh. Hơn thế, các snapshot có thể được dùng để tối ưu hoá việc sao lưu bằng băng từ. Bạn chỉ việc sao lưu một snapshot thay vì cả file system và nhờ đó tiết kiệm rất nhiều thời gian. Cách tiếp cận này hơi khác với Open File Manager (OFM) vốn không đòi hỏi phải tắt các ứng dụng. Một OFM tìm một thời điểm có vẻ không có tác vụ ghi đĩa nào và xác suất dữ liệu trên đĩa ổn định là cao hơn. PSM bao gồm cả các tính năng OFM tổng quát với các thiết lập do người dùng điều chỉnh.

Windows 2003 đi xa hơn nữa với việc giới thiệu một cơ sở hạ tầng hoàn chỉnh gọi là Volume Shadow Copy Service có khả năng yêu cầu các ứng dụng “nằm yên” (quiesce) trong quá trình “chụp ảnh”. Khả năng đó giúp tự động hoá những việc như đưa một CSDL vào chế độ “hot standby” và giúp cho tất cả các loại sao lưu trở nên tin cậy hơn nhưng cũng đòi hỏi mỗi ứng dụng tự hỗ trợ nó.

Các ứng dụng khác

Một số sản phẩm snapshot có tính năng thao tác nhanh cho phép người quản trị quay lui (rollback) toàn bộ file system về một trạng thái trong quá khứ. Đó là một phương pháp khôi phục nhanh chóng sau khi bị virus tấn công mà bạn không biết chính xác những tệp nào bị hỏng hay một chiến lược quay lui hiệu quả trước khi cài đặt một bản patch hoặc một ứng dụng mới. Windows 2003, NetApp và MVD Powered NAS đều có tính năng này.

Snapshot cũng có thể là một cách làm nhanh chóng, dễ dàng để tạo ra các bản sao của dữ liệu sống cho các mục đích hỗ trợ quyết định mà không làm gián đoạn các hoạt động kinh doanh. CDP và Veritas thậm chí còn hỗ trợ các snapshot có thể ghi được nhằm giúp bạn thay đổi dữ liệu snapshot trực tuyến theo các điều kiện giả định được thiết lập trước.

Lập lịch

Nhiều nhà quản trị hệ thống giả lập lịch sao lưu ra băng từ bằng cách tạo các snapshot hàng ngày, hàng tuần và hàng tháng. Với các hệ thống hỗ trợ hàng trăm snapshot cho mỗi file system, việc làm đó có thể được thực hiện thường xuyên hơn nhiều. Phần lớn các sản phẩm hiện tại có tiện ích quản trị giúp bạn làm điều đó một cách dễ dàng.

Mặc dù Windows 2003 đặt mặc định việc tạo snapshot vào 7 giờ và 12 giờ hàng ngày nhưng Warren Miller, Phó chủ tịch Product Marketing của Columbia Data Products nói rằng họ thường thấy khách hàng lập lịch tạo snapshot hàng giờ và lưu các snapshot theo giờ trong 3 ngày, các snapshot theo ngày trong 3 tuần và các snapshot theo tháng trong 3 năm. Ông cũng dự đoán rằng trong tương lai, khả năng sử dụng snapshot sẽ được đưa trực tiếp vào các sản phẩm cho người dùng cuối và được các ứng dụng tự kích hoạt khi chúng thấy thích hợp nhất.

Quản lý không gian

Không gian đĩa cần cho các snapshot bắt đầu từ số 0 và tăng dần theo thời gian. Nếu bạn muốn đảm bảo sự sẵn sàng của các bản sao trực tuyến, bạn sẽ phải lập kế hoạch và giám sát không gian đĩa một cách cẩn thận.

Số snapshot mà một hệ thống có thể hỗ trợ phụ thuộc vào (1) số lượng và thời gian lưu giữ các snapshot được tạo ra và (2) số lượng và kiểu ghi xảy ra giữa các snapshot. Nếu bạn có một hệ thống đang hoạt động, hãy đo độ thay đổi của các tệp trong một thời gian nhất định và ước đoán dung lượng cần thiết cho mỗi chế độ lập lịch.

Ngay cả với những kế hoạch tốt nhất, bạn vẫn cần biết điều gì xảy ra khi không còn đủ không gian đĩa để chép dữ liệu cũ vào một snapshot. Một số hệ thống tự động xoá các snapshot cũ hay có độ ưu tiên thấp cho tới khi có đủ không gian – đôi khi có thể xoá hết. Một số hệ thống vô hiệu các snapshot nhưng không xoá chúng. Một số khác lại để mặc cho file system hoạt động bị đầy – những hệ thống kiểu này sẽ khiến cho người dùng lẫn lộn.

Để làm nhẹ bớt các vấn đề trên, một số sản phẩm có cơ chế xoá các snapshot mỗi khi đạt tới một giới hạn nào đó. Một số khác cho phép bạn dùng một volume riêng cho các snapshot. Các bạn có thể xem bảng dưới đây để biết thêm chi tiết.

Nếu bạn muốn sử dụng một cách hiệu quả nhất không gian đĩa, NetApp cung cấp một cơ chế duy nhất gọi là “file folding”. Khi kích hoạt cơ chế này, các khối dữ liệu trên file system hoạt động được so sánh với những khối tương ứng trong các snapshot gần nhất. Nếu tìm thấy các khối giống nhau (có thể xảy ra trong trường hợp một tệp đã được ghi đè với một bản sao giống hệt), hệ thống sẽ hợp nhất chúng bằng cách thao tác trên các con trỏ inode. Tuy nhiên, để có được điều đó chúng ta phải đánh đổi hiệu năng của hệ thống.

Tác động tới hiệu năng của hệ thống

Các snapshot buộc hệ thống phải chịu đựng một số gánh nặng để đổi lấy sự tiện lợi. Do cơ chế COW, hiệu năng ghi, nhất là lần ghi đầu tiên vào một tệp, sẽ bị giảm đi. Ngoài ra, hiệu năng đọc của một snapshot cũng sẽ bị ảnh hưởng nếu cách triển khai của snapshot phải xác định dữ liệu vẫn còn thuộc file system hoạt động hay đã được chép vào snapshot.

CK Chan, Tổng Giám đốc của Network Appliances, SE Asia, nói rằng “tác động tới hiệu năng khi sử dụng snapshot là không đáng kể vì NetApp đã xây dựng các snapshot như một phần của file system”. Hơn nữa, ông ta cho rằng “có thể dùng hết 255 bản snapshot mà vẫn không nhận thấy hiệu năng giảm chút nào”.

Mặc dù các phát biểu trên hơi có vẻ lạc quan nhưng báo cáo từ các nhà cung cấp khác cũng cho kết quả tương tự, hiệu năng chỉ giảm từ 3 tới 15%. Tuy nhiên, cần nhớ rằng hiệu năng khi sử dụng một số lớn snapshot sẽ thay đổi đáng kể tuỳ theo lượng dữ liệu thay đổi giữa các snapshot. Vì vậy, nếu bạn định tạo nhiều snapshot trên hệ thống chạy thật, hãy thử nghiệm thật kỹ để xác định số snapshot tối đa tương ứng với mức hiệu năng mà bạn có thể chấp nhận.

Ngoài những thứ đã nêu trên đây, có rất nhiều sản phẩm snapshot khác trên thị trường, đặc biệt là trong các ứng dụng NAS. Là một cấu phần trung tâm của chiến lược sao lưu, các snapshot không chỉ giảm bớt gánh nặng của công việc sao lưu mà còn giúp người dùng phục hồi tệp một cách nhanh chóng và dễ dàng hơn so với các băng từ, đem lại cho bạn những lựa chọn khôi phục bạn chưa bao giờ có.

(theo Network Computing)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s