hệ thống sao lưu và phục hồi dữ liệu dựa trên s3 ver3

71 0 0
hệ thống sao lưu và phục hồi dữ liệu dựa trên s3 ver3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

tài liệu về an toàn thông tin cho đồ án tốt nghiệp của sinh viên trường KTMM giúp bạn tìm hiểu thêm về đề tài cũng như có thêm một lựa chọn cho báo cáo tốt nghiệp của mình khi cần thiết. tài liệu này đã được kiểm chứng và thông qua một cách thuận lợi và có điểm tốt nghiệp khá cao. Mình chém mô tả bừa để có thể đủ chữ và đăng lên. Nhưng tài liệu này thật sự rất ổn.

Trang 1

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU GIAO THỨC S3 VÀ XÂY DỰNGHỆ THỐNG SAO LƯU VÀ PHỤC HỒI DỮ LIỆU

Ngành: Công nghệ thông tinMã số: 7.48.02.01

Sinh viên thực hiện:

Đinh Hoàng TuấnLớp: CT2CN

Hà Nội, 2023

BAN CƠ YẾU CHÍNH PHỦ

Trang 2

HỌC VIỆN KỸ THUẬT MẬT Mﯯ¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU GIAO THỨC S3 VÀ XÂY DỰNGHỆ THỐNG SAO LƯU VÀ PHỤC HỒI DỮ LIỆU

Ngành: Công nghệ thông tinMã số: 7.48.02.01

Sinh viên thực hiện:

Đinh Hoàng Tuấn

Trang 3

DANH MỤC HÌNH VẼ

DANH MỤC BẢNG BIỂU

LỜI CẢM ƠN

LỜI NÓI ĐẦU

CHƯƠNG 1:TỔNG QUAN VỀ ĐỀ TÀI VÀ CÔNG NGHỆ SỬ DỤNG

1.1 Khảo sát các hệ thống sao lưu dữ liệu cho người dùng

1.1.1 Sao lưu đầy đủ (full backup)

1.1.2 Sao lưu tăng tiến (incremental backup)

1.1.3 Sao lưu khác biệt (differential backup) 10

1.2 Phát biểu bài toán 11

1.3 Giải pháp và công nghệ sử dụng 12

CHƯƠNG 2:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 29

2.1 Tổng quan về hệ thống 29

2.2 Biểu đồ use case 29

2.2.1 Danh sách use case của hệ thống 29

2.2.2 Biểu đồ use case tổng quát 30

2.2.3 Chức năng đăng nhập 30

2.2.4 Chức năng đăng xuất 31

2.2.5 Chức năng quản lý tiến trình sao lưu 32

2.2.6 Chức năng khôi phục dữ liệu 36

Trang 4

2.3.3 Chức năng khôi phục dữ liệu 42

2.3.4 Chức năng cập nhật cài đặt 42

2.3.5 Chức năng xem thông tin chung 43

2.4 Thiết kế cơ sở dữ liệu 43

2.5 Tổng kết chương 44

CHƯƠNG 3:XÂY DỰNG HỆ THỐNG 45

3.1 Phân tích mã nguồn Duplicati 45

3.1.1 Cấu trúc mã nguồn Duplicati 45

3.1.2 S3 module 47

3.2 Xây dựng hệ thống sao lưu dữ liệu người dùng 48

3.2.1 Chỉnh sửa giao diện 48

3.2.2 Lập trình xử lý nghiệp vụ 52

3.3 Triển khai hệ thống 53

3.4 Kiểm thử và đánh giá hệ thống 54

3.4.1 Kiểm thử tính năng sao lưu dữ liệu 54

3.4.2 Kiểm thử tính năng phục hồi dữ liệu 56

3.4.3 Đánh giá hệ thống 57

3.5 Tổng kết chương 57

TỔNG KẾT 58

TÀI LIỆU THAM KHẢO 59

Trang 5

DANH MỤC HÌNH VẼ

Hình 1.1 Sao lưu đầy đủ (full backup) 7

Hình 1.2 Sao lưu tăng tiến (incremental backup) 8

Hình 1.3 Sao lưu đầy đủ tổng hợp (synthetic full backup) 9

Hình 1.4 Sao lưu khác biệt (differential backup) 10

Hình 1.5 Kiến trúc giao thức S3 13

Hình 1.6 Sơ đồ đánh giá policy của AWS 15

Hình 1.7 Thư mục cần sao lưu 16

Hình 1.8 Quá trình thực hiện sao lưu của Duplicati 17

Hình 1.9 Quá trình xử lý khối dữ liệu 18

Hình 1.10 Mô hình mã hoá và giải mã bằng thuật toán AES 25

Hình 2.1 Sơ đồ tổng quan hệ thống 29

Hình 2.2 Biểu đồ use case tổng quát 30

Hình 2.3 Biểu đồ use case đăng nhập 30

Hình 2.4 Biểu đồ use case đăng xuất 31

Hình 2.5 Biểu đồ use case quản lý tiến trình sao lưu 32

Hình 2.6 Biểu đồ use case khôi phục dữ liệu 36

Hình 2.7 Biểu đồ use case cập nhật cài đặt 36

Hình 2.8 Biểu đồ use case xem thông tin chung 37

Hình 2.9 Biểu đồ tuần tự cho chức năng đăng nhập 38

Hình 2.10 Biểu đồ tuần tự cho chức năng xem tiến trình 38

Hình 2.11 Biểu đồ tuần tự cho chức năng tạo mới tiến trình 39

Hình 2.12 Biểu đồ tuần tự cho chức năng cập nhật tiến trình 39

Hình 2.13 Biểu đồ tuần tự cho chức năng xoá tiến trình 40

Hình 2.14 Biểu đồ tuần tự cho chức năng export dữ liệu tiến trình 40

Hình 2.15 Biểu đồ tuần tự cho chức năng chạy tiến trình 41

Hình 2.16 Biểu đồ tuần tự cho chức năng xem log tiến trình 41

Hình 2.17 Biểu đồ tuần tự cho chức năng khôi phục dữ liệu 42

Hình 2.18 Biểu đồ tuần tự cho chức năng cập nhật cài đặt 42

Hình 2.19 Biểu đồ tuần tự cho chức năng xem thông tin chung 43

Trang 6

Hình 2.20 Sơ đồ thiết kế cơ sở dữ liệu của Duplicati 43

Hình 3.1 Giao diện màn hình sao lưu cơ sở dữ liệu 51

Hình 3.2 Giao diện màn hình khôi phục cơ sở dữ liệu 51

Hình 3.3 Triển khai hệ thống 54

Hình 3.4 Cơ sở dữ liệu cần sao lưu 54

Hình 3.5 Nhập thông tin cơ sở dữ liệu cần sao lưu 55

Hình 3.6 File sao lưu được tải lên Amazon S3 55

Hình 3.7 Nhập thông tin cơ sở dữ liệu để phục hồi 56

Hình 3.8 Cơ sở dữ liệu được phục hồi 56

Trang 7

DANH MỤC BẢNG BIỂU

Bảng 2.1 Danh sách use case của hệ thống 29

Bảng 2.2 Đặc tả use case đăng nhập 30

Bảng 2.3 Đặc tả use case đăng xuất 31

Bảng 2.4 Đặc tả use case xem tiến trình 32

Bảng 2.5 Đặc tả use case tạo mới tiến trình 32

Bảng 2.6 Đặc tả use case tạo mới tiến trình 33

Bảng 2.7 Đặc tả use case xoá tiến trình 34

Bảng 2.8 Đặc tả use case export dữ liệu tiến trình 34

Bảng 2.9 Đặc tả use case chạy tiến trình 35

Bảng 2.10 Đặc tả use case xem log tiến trình 35

Bảng 2.11 Đặc tả use case khôi phục dữ liệu 36

Bảng 2.12 Đặc tả use case cập nhật cài đặt 37

Bảng 2.13 Đặc tả use case xem thông tin chung 37

Trang 8

LỜI CẢM ƠN

Sau thời gian học tập và rèn luyện tại Học viện Kỹ thuật Mật mã, giờ đến lúc những kiến thức của em được vận dụng vào thực tiễn công việc Em lựa

chọn đồ án tốt nghiệp đề tài: “Nghiên cứu giao thức S3 và xây dựng hệ thống

sao lưu và phục hồi dữ liệu” để giúp em củng cố và học tập, rèn luyện thêm về

những kĩ năng, kiến thức để trang bị cho tương lai Có được thành công này, ngoài sự nỗ lực học hỏi của bản thân còn có sự hướng dẫn tận tình của các thầy cô, các anh chị và các bạn trong trường.

Lời đầu tiên em xin gửi lời cảm ơn chân thành đến Ban Giám đốc Trường Học viện Kỹ thuật Mật mã và các quý thầy cô trong trường nói chung và Khoa Công nghệ thông tin nói riêng, đã tận tình chỉ dạy, truyền đạt những kiến thức, kinh nghiệm cho em từ đó giúp em có được những kiến thức cũng như kĩ năng cần thiết hình thành nên nền tảng nghề nghiệp cơ bản.

Đặc biệt, em xin chân thành cảm ơn giảng viên hướng dẫn, TS Phạm Văn Hưởng, người đã tận tình hướng dẫn, chỉ bảo cho em trong suốt quá trình nghiên cứu, thực hiện và hoàn thành đề tài Một lần nữa, xin chân thành cảm ơn thầy và chúc thầy dồi dào sức khoẻ.

Cùng với đó em xin cảm ơn đến những người thân, bạn bè đã đồng hành và hỗ trợ em hoàn thành đồ án này.

Dù đã rất cố gắng, tuy nhiên do kiến thức chuyên môn còn hạn chế và bản thân còn thiếu nhiều kinh nghiệm thực tiễn nên nội dung của báo cáo không tránh khỏi những thiếu sót, em rất mong nhận được sự góp ý, chỉ bảo thêm của quý thầy cô để báo cáo này được hoàn thiện hơn

Cuối cùng, em xin kính chúc quý thầy cô, anh chị, bạn bè dồi dào sức khỏe và thành công trong sự nghiệp, gặp được nhiều điều tốt đẹp trong cuộc sống!

Em xin trân trọng cảm ơn!

Sinh viên thực hiện đồ án

Đinh Hoàng Tuấn

Trang 10

LỜI NÓI ĐẦU

Thị trường Việt Nam được đánh giá là một trong những thị trường tiềm năng, phát triển mạnh, tuy nhiên hàm chứa nhiều rủi ro Trong hoạt động hàng ngày, dữ liệu rất quan trọng đối với các công ty, nhất là trong lĩnh vực tài chính, kế toán, chứng khoán… đòi hỏi dữ liệu phải hoạt động liên tục.

Về mặt cá nhân, trong thời đại công nghệ phát triển như hiện nay, máy tính là công cụ không thể thiếu đối với mỗi người Máy tính lưu trữ rất nhiều dữ liệu quan trọng như các file, ảnh cùng một số các dữ liệu khác Tuy nhiên, tuổi thọ của ổ cứng không phải là vô hạn, hoặc trong nhiều trường hợp, người dùng vô tình thao tác xoá nhầm hay tạo điều kiện cho virus tấn công vào ổ cứng, hoặc nếu vì một lý do không may nào đó, máy tính không còn hoạt động được nữa, các dữ liệu của người dùng sẽ bị mất Khi đó, chúng ta sẽ cần một nơi lưu trữ dữ liệu sao lưu để có thể phục hồi lại.

Về mặt tổ chức và doanh nghiệp, theo Symantec, 37% chủ doanh nghiệp nhỏ và 47% công ty đã bị mất dữ liệu và phải sử dụng các bản sao lưu để khôi phục nó Các thảm họa tự nhiên, các cuộc tấn công mạng và lỗi của con người có thể dẫn đến việc bị mất dữ liệu Khoảng 96% các hệ thống máy trạm (workstation) không sử dụng các giải pháp sao lưu Nếu sự cố xảy ra, các tập tin của họ sẽ bị mất vĩnh viễn Một vụ hỏa hoạn lớn, các cuộc tấn công bằng ransomware hoặc lỗi phần cứng có thể khiến công việc kinh doanh bị ảnh hưởng nghiêm trọng, bởi mất dữ liệu sẽ gây ra những tổn thất và tốn kém không đáng có Trung bình có 7 trong số 10 doanh nghiệp nhỏ bị mất dữ liệu lớn sẽ đóng cửa trong vòng 12 tháng Nếu không có giải pháp sao lưu, việc khôi phục các tệp bị mất có thể tốn đến hàng nghìn đô la Vì vậy, các doanh nghiệp cần phải tìm một cách để khôi phục dữ liệu bị mất nếu không muốn gặp rắc rối Các giải pháp sao lưu và phục hồi cho phép ta lưu và khôi phục dữ liệu mà không cần phần cứng tại chỗ Điều này có thể giúp ta tiết kiệm một khoản chi phí lớn về lâu dài.

Qua những thông tin trên, ta thấy được tầm quan trọng và sự cấp thiết trong

việc sao lưu và phục hồi dữ liệu Thông qua đề tài: “Nghiên cứu giao thức S3 và

Trang 11

xây dựng hệ thống sao lưu và phục hồi dữ liệu”, em xin trình bày và đề xuất một

ứng dụng sao lưu và phục hồi dữ liệu sử dụng giao thức S3 và Duplicati Nội dung của đề tài bao gồm:

Chương 1: Tổng quan về đề tài và công nghệ sử dụngChương 2: Phân tích và thiết kế hệ thống

Chương 3: Xây dựng hệ thống và thực nghiệm

Do hạn chế về mặt kiến thức và kinh nghiệm nên không tránh khỏi những thiếu sót, kính mong nhận được sự góp ý của các thầy cô trong hội đồng để em hoàn thiện thêm đồ án tốt nghiệp của mình.

Em xin trân trọng cảm ơn!

Trang 13

1.1 Khảo sát các hệ thống sao lưu dữ liệu cho người dùng

Backup là một phần thiết yếu trong hoạt động của các cá nhân, tổ chức vì dữ liệu là vô giá và không ai muốn xảy ra việc mất dữ liệu do sự cố phần mềm hay hệ thống, lỗi phần cứng hay bất kỳ lý do nào khác Tuy nhiên, nhiệm vụ backup này không hề dễ dàng do khối lượng dữ liệu và chi phí thiết bị lưu trữ đều ở mức cao, đó là lý do tại sao có nhiều chiến lược sao lưu giúp tối ưu hoá việc lưu trữ dữ liệu mà không tốn nhiều chi phí Các chiến lược backup phổ biến có thể kể đến sao lưu đầy đủ, sao lưu tăng tiến và sao lưu khác biệt [ CITATIONInc23 \l 1033 ].

1.1.1 Sao lưu đầy đủ (full backup)

Hình 1.1 Sao lưu đầy đủ (full backup)

Sao lưu đầy đủ (Hình 1 1) là phương thức sao lưu dữ liệu, trong đó một bản sao lưu sẽ chứa đầy đủ toàn bộ tập dữ liệu cần sao lưu của người dùng Mặc dù sao lưu đầy đủ được cho là cung cấp việc bảo vệ sự toàn vẹn tốt nhất cho dữ liệu, nhưng hầu hết người dùng không sử dụng phương thức sao lưu dữ liệu này

Trang 14

hàng ngày vì chúng tốn rất nhiều thời gian, đi kèm với đó là thường yêu cầu một dung lượng lưu trữ lớn, và không phải cá nhân hay tổ chức nào cũng có khả năng đáp ứng được điều kiện về cơ sở hạ tầng như vậy.

1.1.2 Sao lưu tăng tiến (incremental backup)

Hình 1.2 Sao lưu tăng tiến (incremental backup)

Sao lưu tăng tiến (incremental backup) (Hình 1 2) là một phương thức sao lưu dữ liệu, có ưu điểm là tăng tốc độ sao lưu và giảm dung lượng lưu trữ cần thiết so với việc thực hiện sao lưu đầy đủ Mỗi lần thực hiện sao lưu tăng tiến, hệ thống sẽ chỉ tạo ra bản sao lưu chứa những dữ liệu đã thay đổi so với lần sao lưu trước được thực hiện [ CITATION Yan18 \l 1033 ] Ví dụ, giả sử người dùng đã tạo một bản sao lưu đầy đủ vào ngày đầu tiên và sử dụng sao lưu tăng tiến cho những ngày còn lại Bản sao lưu theo lịch trình của ngày thứ hai sẽ chỉ chứa dữ liệu đã thay đổi kể từ thứ nhất, các tệp sao lưu của ngày thứ ba sẽ chỉ chứa dữ liệu đã thay đổi kể từ ngày thứ hai…

Mặc dù sao lưu tăng tiến có thể tăng tốc độ sao lưu, nhưng ở mặt ngược lại, nhược điểm chính của sao lưu tăng tiến là chúng có thể tốn thời gian để phục hồi dữ liệu Khi cần khôi phục dữ liệu, quá trình đó sẽ cần phải có bản sao lưu đầy đủ mới nhất cộng với tất cả các bản sao lưu tăng tiến tính đến thời điểm khôi phục Trong ví dụ trên, giả sử người dùng muốn khôi phục bản sao lưu ở ngày thứ ba Để làm điều đó, trước tiên người dùng phải khôi phục bản sao lưu đầy đủ

Trang 15

của ngày đầu tiên, sau đó khôi phục bản sao lưu của ngày thứ hai, tiếp theo đó là ngày thứ ba Ngoài ra, nếu bất kỳ bản sao lưu nào bị thiếu hoặc bị lỗi trong quá trình thực hiện sao lưu thì người dùng sẽ gặp phải tình trạng dữ liệu được khôi phục không hoàn chỉnh.

Một số biến thể của sao lưu tăng tiến có thể kể đến sao lưu đầy đủ tổng hợp (synthetic full backup) và sao lưu tăng tiến liên tục (incremental-forever backup).

Hình 1.3 Sao lưu đầy đủ tổng hợp (synthetic full backup)

Sao lưu đầy đủ tổng hợp (Hình 1 3) giống như bất kỳ bản sao lưu tăng tiến nào khác, quá trình sao lưu bao gồm việc thực hiện sao lưu đầy đủ đầu tiên, sau đó là một loạt các bản sao lưu tăng tiến Nhưng sau đó có thêm một bước nữa là máy chủ thực sự tạo ra các bản sao lưu đầy đủ tiếp theo Nó thực hiện điều này bằng cách kết hợp bản sao lưu đầy đủ hiện có với dữ liệu từ các bản sao lưu tăng tiến Kết quả cuối cùng là một bản sao lưu đầy đủ tổng hợp tương tự với một bản sao lưu đầy đủ được tạo theo cách truyền thống.

Ưu điểm chính của sao lưu đầy đủ tổng hợp là thời gian khôi phục dữ liệu được giảm đi đáng kể Việc khôi phục một bản sao lưu này không yêu cầu người dùng phải khôi phục từng bản sao lưu tăng tiến, có thể nằm trên nhiều phương tiện lưu trữ khác nhau Sao lưu đầy đủ tổng hợp cung cấp tất cả các ưu điểm của sao lưu đầy đủ nhưng giảm thời gian sao lưu và mức sử dụng băng thông.

Sao lưu tăng tiến liên tục thường được sử dụng bởi các hệ thống cần sao lưu từ ổ đĩa sang ổ đĩa (disk-to-disk) Quá trình thực hiện cơ bản của phương thức này, giống như sao lưu tăng tiến, cũng là bắt đầu bằng cách sao lưu toàn bộ

Trang 16

tập dữ liệu Sau thời điểm đó, chỉ sao lưu tăng tiến được thực hiện Điều làm cho sao lưu tăng tiến liên tục khác với sao lưu tăng tiến thông thường là tính sẵn có của dữ liệu Nếu như việc khôi phục sao lưu tăng tiến yêu cầu phương tiện đang chứa các bản sao lưu đầy đủ và mọi bản sao lưu tăng tiến tiếp theo của bản sao lưu mà người dùng muốn khôi phục, thì đối với sao lưu tăng tiến liên tục, máy chủ thực hiện sao lưu thường lưu trữ tất cả các bản sao lưu trên một danh sách các ổ đĩa mà nó quản lý, tự động hoá quá trình khôi phục để người dùng không cần phải tìm ra đâu là bản sao lưu cần thiết cho quá trình này.

Một số hệ thống sao lưu có sử dụng sao lưu tăng tiến bao gồm:

 Veeam Backup & Replication: đây là một giải pháp sao lưu phổ biến hỗ trợ tính năng sao lưu tăng tiến Veeam sử dụng một kỹ thuật gọi là Changed Block Tracking (CBT) để xác định và chỉ sao lưu dữ liệu đã thay đổi kể từ lần sao lưu cuối cùng.

 Acronis True Image: hỗ trợ cả sao lưu đầy đủ, tăng tiến và khác biệt Trong đó sao lưu tăng tiến ở đây là sao lưu tăng tiến liên tục.

 Backup Exec: một hệ thống cũng sử dụng sao lưu tăng tiến liên tục  Amazon Web Services (AWS) Backup: AWS Backup là giải pháp sao

lưu trên đám mây hỗ trợ sao lưu tăng tiến Nó sử dụng sao lưu tăng tiến với tính năng chống trùng lặp cấp khối để xác định và chỉ sao lưu dữ liệu đã thay đổi kể từ lần sao lưu cuối cùng.

Trang 17

1.1.3 Sao lưu khác biệt (differential backup)

Hình 1.4 Sao lưu khác biệt (differential backup)

Sao lưu khác biệt (differential backup) (Hình 1 4) giống với sao lưu tăng tiến ở việc nó bắt đầu bằng một bản sao lưu đầy đủ và các bản sao lưu tiếp theo chỉ chứa dữ liệu đã thay đổi [ CITATION JTa05 \l 1033 ] Sự khác biệt chủ yếu giữa sao lưu khác biệt so với sao lưu tăng tiến là trong khi sao lưu tăng tiến chỉ bao gồm dữ liệu đã thay đổi kể từ lần sao lưu trước, thì sao lưu khác biệt chứa tất cả dữ liệu đã thay đổi kể từ lần sao lưu đầy đủ cuối cùng.

Giả sử rằng người dùng muốn tạo một bản sao lưu đầy đủ vào ngày thứ nhất và sử dụng sao lưu khác biệt cho những ngày còn lại Bản sao lưu của ngày thứ hai sẽ chứa tất cả dữ liệu đã thay đổi kể từ ngày thứ nhất, lúc này nó sẽ giống với một bản sao lưu tăng tiến Tuy nhiên, vào ngày thứ ba, bản sao lưu khác biệt cũng sẽ sao lưu lại mọi dữ liệu đã thay đổi kể từ ngày đầu tiên, bao gồm cả những thay đổi trong ngày thứ hai.

Ưu điểm mà sao lưu khác biệt mang lại so với sao lưu tăng tiến là thời gian khôi phục dữ liệu sẽ ngắn hơn Khôi phục bản sao lưu khác biệt không bao giờ yêu cầu nhiều hơn hai bản sao lưu, một bản sao lưu đầy đủ và một bản sao lưu khác biệt tại thời điểm đó, trong khi sao lưu tăng tiến có thể yêu cầu một số lượng lớn các bản sao lưu Tuy nhiên, sao lưu khác biệt yêu cầu một dung lượng lưu trữ lớn hơn.

Trang 18

Một số hệ thống sao lưu có sử dụng sao lưu khác biệt bao gồm:  Veritas Backup Exec

 NovaBACKUP  Acronis True Image  Microsoft Azure Backup  Commvault

Hầu hết các hệ thống trên đều hỗ trợ cả sao lưu tăng tiến và khác biệt.

1.2 Phát biểu bài toán

Với sự phát triển mạnh mẽ của công nghệ thông tin, các dịch vụ lưu trữ đám mây ngày càng trở nên phổ biến Trong số đó, giao thức lưu trữ S3 của Amazon là một trong những giao thức được sử dụng nhiều nhất Tuy nhiên, việc sao lưu và phục hồi dữ liệu trên hệ thống lưu trữ đám mây vẫn còn gặp nhiều thách thức, nhất là với những dữ liệu quan trọng và nhạy cảm.

Vì vậy, đề tài nghiên cứu giao thức S3 và xây dựng hệ thống sao lưu và phục hồi dữ liệu sẽ giúp cho các tổ chức, doanh nghiệp và cá nhân có thể lưu trữ dữ liệu một cách an toàn, đồng thời đảm bảo khả năng phục hồi dữ liệu nhanh chóng và hiệu quả khi có sự cố xảy ra.

Mục tiêu của đề tài là nghiên cứu và phân tích các yêu cầu và tiêu chuẩn của hệ thống sao lưu và phục hồi dữ liệu, xác định các giải pháp sao lưu và phục hồi dữ liệu trên giao thức S3 và xây dựng một hệ thống tin cậy, đáp ứng được các yêu cầu về tính bảo mật và khả năng phục hồi dữ liệu.

Đối tượng nghiên cứu của đề tài: Giao thức S3 và Duplicati.

Phạm vi nghiên cứu của đề tài: Nghiên cứu và phân tích kiến trúc mã nguồn, các module xử lý S3 của Duplicati.

1.3 Giải pháp và công nghệ sử dụng 1.3.1 Giao thức S3

a) Giới thiệu

S3 (Simple Storage Service) là một giao thức mạng được sử dụng khá phổ biến, cung cấp khả năng lưu trữ đối tượng trên cloud và truyền dữ liệu giữa cloud với máy khách Nó sử dụng giao diện dịch vụ web RESTful dựa trên

Trang 19

HTTP/ HTTPS, làm cho nó có thể dễ dàng tích hợp với các ứng dụng và dịch vụ web.

Giao thức S3 cho phép người dùng lưu trữ và truy xuất bất kỳ loại dữ liệu nào, bao gồm hình ảnh, video, tài liệu và các dữ liệu phi cấu trúc khác Nó cũng cung cấp các tính năng nâng cao như truy xuất lịch sử các phiên bản của dữ liệu, kiểm soát quyền truy cập và các chính sách vòng đời, làm cho nó trở thành một giải pháp mạnh mẽ và có tính mở rộng cao cho lưu trữ và quản lý dữ liệu, đồng thời là một môi trường đáng tin cậy, an toàn và tiết kiệm chi phí, trở thành một lựa chọn phổ biến cho các doanh nghiệp và cá nhân muốn tận dụng các lợi ích của việc lưu trữ trên cloud.

b) Dịch vụ Amazon S3

Amazon Simple Storage Service (Amazon S3) [ CITATION Wha23 \l 1033 ] là một dịch vụ lưu trữ, cung cấp khả năng mở rộng, tính khả dụng của dữ liệu, bảo mật và hiệu suất cao Khách hàng có thể sử dụng Amazon S3 để lưu trữ và bảo vệ mọi dữ liệu cho nhiều trường hợp sử dụng, chẳng hạn như trang web, ứng dụng di động, sao lưu và khôi phục, lưu trữ, ứng dụng doanh nghiệp, thiết bị IoT và phân tích dữ liệu lớn Amazon S3 cung cấp các tính năng quản lý để ta có thể tối ưu hoá, sắp xếp và xác định cấu hình quyền truy cập vào dữ liệu nhằm đáp ứng các nhu cầu cụ thể của người dùng.

Hình 1.5 Kiến trúc giao thức S3

Kiến trúc giao thức S3 bao gồm các thành phần:

 Regions: S3 có sẵn trong nhiều máy chủ ở nhiều khu vực trên toàn cầu, mỗi khu vực đại diện cho một vị trí địa lý cụ thể, và các bucket được tạo trong một khu vực nhất định sẽ lưu trữ dữ liệu tại đó Việc chọn khu vực phù hợp có thể ảnh hưởng đến hiệu suất truy cập dữ liệu, AWS cho phép

Trang 20

người dùng chọn vị trí lưu trữ dữ liệu của mình để đáp ứng yêu cầu về quy định về bảo vệ dữ liệu và hiệu suất tốt nhất.

 Object Storage: S3 lưu trữ dữ liệu dưới dạng đối tượng, mỗi đối tượng được xác định bởi một khoá (key) duy nhất Đối tượng có thể là bất kỳ loại file nào, chẳng hạn như hình ảnh, video, tài liệu văn bản, và được lưu trữ dưới dạng các đối tượng không thay đổi (immutable object) Dữ liệu được phân phối trên các máy chủ khác nhau để đảm bảo tính khả dụng và độ tin cậy cao.

 Buckets: Mỗi đối tượng được lưu trữ trong một “bucket”, tương tự như các thư mục trong hệ thống tệp Mỗi bucket được xác định bởi một tên định danh toàn cục duy nhất và được gắn với một khu vực địa lý cụ thể của AWS Người dùng có thể quản lý quyền truy cập và sửa đổi cấu hình của bucket.

 RESTful API: Amazon S3 cung cấp một giao diện lập trình ứng dụng (API) RESTful để lưu trữ và truy xuất dữ liệu trên đám mây Giao diện này sử dụng giao thức HTTP/HTTPS để tương tác với dữ liệu trên S3  Security: S3 hỗ trợ nhiều phương thức bảo mật, bao gồm quản lý danh

tính và truy cập, mã hoá dữ liệu, và kiểm soát quyền truy cập đến dữ liệu thông qua các chính sách truy cập có thể được xác định bởi người dùng  Lifecycle policies: S3 cung cấp tính năng quản lý chính sách vòng đời

cho dữ liệu, cho phép người dùng cấu hình chính sách tự động xoá hoặc di chuyển các đối tượng dựa trên thời gian tồn tại của chúng, giúp người dùng quản lý dữ liệu một cách hiệu quả hơn.

c) Tính bảo mật

AWS cung cấp các tính năng bảo mật dữ liệu cao đối với các tài nguyên trên hệ thống này Khi một dịch vụ AWS nhận được request, AWS sẽ thực hiện một số bước để xác định xem nên cho phép hay từ chối yêu cầu [ CITATIONPol23 \l 1033 ].

Bước 1: Xác thực

Trang 21

AWS xác thực người đưa ra request, nhưng với dịch vụ Amazon S3 thì bước này không được thực hiện, do dịch vụ này cho phép một số yêu cầu từ người dùng ẩn danh.

Bước 2: Xử lý thông tin request

Các thông tin thu thập được bao gồm:

 Hành động mà đối tượng request muốn thực hiện.

 Tài nguyên AWS mà các hành động được thực hiện trên đó.

 Đối tượng thực hiện: có thể là user, role, federated user hay application Thông tin này bao gồm cả các policy được gán với đối tượng đó.

 Dữ liệu môi trường: địa chỉ IP, SSL, hay thời gian hiện tại.

 Dữ liệu tài nguyên: dữ liệu liên quan đến tài nguyên được yêu cầu, chẳng hạn như tên bucket, tên key trong S3.

Bước 3: Xác định và đánh giá các policy được gắn với đối tượng

Các policy được xác định gồm:

 Identity-based: policy được gán với đối tượng IAM (user, group, role) và gán quyền cho đối tượng đó.

 Resource-based: policy được gán với đối tượng thực hiện request và tài nguyên yêu cầu, xác định đối tượng có quyền gì đối với tài nguyên đó  IAM permissions boundaries: tính năng đặt quyền tối đa mà

identity-based policy có thể gán cho đối tượng Khi được gán boundary, đối tượng sẽ không thể thực hiện các yêu cầu vượt quá phạm vi của boundary đó Trong một số trường hợp, một quyền deny trong boundary có thể giới hạn các quyền được cấp bởi resource-based: policy.

 AWS Organizations service control policies (SCPs): xác định quyền tối đa cho một đơn vị tổ chức (Organization Unit – OU) và các tài khoản thành viên bên trong đó, bao gồm cả tài khoản root user.

 Session policies: policy được tạo ra đồng thời khi người dùng tạo một phiên tạm của role hay federated user.

Bước 4: Xác định request có được cho phép hay không

Trang 22

Khi đã xác định được các policy gán với đối tượng request, AWS xác định việc cho phép hay từ chối truy cập theo sơ đồ sau:

Hình 1.6 Sơ đồ đánh giá policy của AWS

Chỉ cần có một policy xác định quyền của đối tượng là từ chối thì request không thành công Do đó khi ta thao tác với tài nguyên của S3 mà gặp lỗi từ chối truy cập (HTTP code 403 – Access Denied), ta cần kiểm tra đầy đủ các policy được gán với đối tượng request để đảm bảo tất cả policy đều có quyền cho phép.

1.3.2 Duplicati

Duplicati là một ứng dụng sao lưu mã nguồn mở, hỗ trợ nhiều nền tảng, bao gồm Windows, macOS và Linux Duplicati không có tác động của các thành phần máy chủ và do đó, nó có thể hỗ trợ nhiều nhà cung cấp dịch vụ lưu trữ dựa trên đám mây Điều này cũng có nghĩa là Duplicati phải xử lý những vấn đề như độ trễ lớn hay kết nối bị gián đoạn, và nó chỉ có thể thêm và xoá file chứ không thể sửa đổi các file hiện có Phương pháp của Duplicati là lưu trữ theo cách thức chia nhỏ các file lớn, khi phục hồi dữ liệu thì hợp nhất các file nhỏ đó lại, và hỗ trợ các tính năng như mã hoá, nén và loại bỏ trùng lặp, quản lý phiên bản và sao lưu tăng tiến (incremental backup) Các dịch vụ lưu trữ sao lưu mà Duplicati hỗ trợ là rất đa dạng, có thể kể đến Google Drive, Dropbox, Amazon S3, FTP,

Trang 23

WebDAV… Hệ thống Duplicati sử dụng chuẩn mã hoá AES-256 để mã hoá đầu cuối và hệ quản trị cơ sở dữ liệu là SQLite [ CITATION The16 \l 1033 ].

Duplicati là một phần mềm sao lưu và phục hồi dữ liệu mạnh mẽ và linh hoạt, tuy nhiên, nó cũng có nhược điểm liên quan đến độ phức tạp và hiệu suất Do Duplicati có thể yêu cầu tài nguyên máy tính và thời gian để thực hiện quá trình sao lưu và phục hồi dữ liệu, bao gồm nhiều bước đòi hỏi cường độ tính toán cao, điều này có thể ảnh hưởng đến hiệu suất chung của hệ thống

a) Quá trình sao lưu

Già sử người dùng cần tạo sao lưu cho một thư mục trên Windows như sau:

Hình 1.7 Thư mục cần sao lưu

Trang 24

Sơ đồ quá trình thực hiện sao lưu của Duplicati như sau:

Hình 1.8 Quá trình thực hiện sao lưu của Duplicati

Ở bước đầu tiên, Duplicati sẽ duyệt qua hệ thống các thư mục và file, từ đó cho ra đường dẫn tuyệt đối cho các thư mục và file cần sao lưu:

Trang 25

Để lưu trữ thông tin liên quan đến bản sao lưu, Duplicati sử dụng định dạng JSON và định dạng file nén zip Danh sách tên các file được sao lưu sẽ được nén

lại thành một file có tên dạng duplicati-20161014090000.dlist.zip ở ngay trên

thiết bị đang sao lưu, trong đó phần số trong tên file thể hiện ngày và giờ hiện tại của hệ thống theo giờ UTC.Bên trong file zip này có chứa một file JSON có tên

filelist.json Ở thời điểm khởi tạo, fie này chứa một danh sách rỗng, được biểu

thị bằng JSON dưới dạng [] Ngoài ra, nó còn chứa một file manifest mô tả các cài đặt của việc sao lưu Còn dữ liệu thực tế của các file được sao lưu được nén

lại thành file duplicati-7af781d3401eb90cd371.dblock.zip, ở đây tên file được

tạo ra một cách ngẫu nhiên, không liên quan đến dữ liệu bên trong hay thời gian hiện tại Ở thời điểm ban đầu thì file này rỗng.

Khi bắt đầu sao lưu, Duplicati đọc đối tượng đầu tiên, C:\data\ Đối tượng

này là một thư mục, do đó hệ thống chỉ thêm các thông tin của đối tượng này

vào file filelist.json:

Đối tượng tiếp theo là một file, C:\data\mydoc.txt Duplicati sẽ đọc file đó

theo từng khối có kích thước mặc định là 100KB Quá trình xử lý khối dữ liệu của Duplicati được mô tả trong sơ đồ sau:

Hình 1.9 Quá trình xử lý khối dữ liệu

Trang 26

Đối với file mydoc.txt, do chỉ có kích thước 4KB nên Duplicati có thể đọc

hết file trong khối đầu tiên Sau đó, Duplicati sẽ tiến hành tính toán hàm băm SHA-256 cho khối dữ liệu đó và encode theo định dạng base64 và thu được một chuỗi dữ liệu có dạng:

Sau khi tính toán hàm băm cho khối, Duplicati sẽ tính hàm băm cho toàn bộ file Ở đây do file được đọc toàn bộ trong một khối nên việc tính hàm băm

cho file cho ra kết quả tương tự Dữ liệu đã được băm của file mydoc.txt sau đóđược thêm vào file dblock Thông tin của file này cũng được ghi vào file

filelist.json Lúc này dữ liệu trong file đó có dạng:

Sau đó, với đối tượng C:\data\myvideo.mp4, đây là một file có kích thướclớn Phương pháp xử lý với file này cũng tương tự như file C:\data\mydoc.txt.

Tuy nhiên do kích thước file này lớn hơn kích thước của một khối (210KB so với 100KB), Duplicati sẽ đọc nó thành ba khối và tính toàn hàm băm SHA-256 cho ba khối đó, hai khối đầu tiên có kích thước 100KB và khối còn lại là 10KB Từng khối dữ liệu được thêm vào file dblock, lúc này dữ liệu trong file có dạng:

Trang 27

Mặc dù ta có thể lựa chọn lưu trực tiếp những thông tin trên vào trong file

Tuy nhiên, vì ta lưu trữ khoảng 47 kí tự cho mỗi 100KB dữ liệu nên nếu một file có dung lượng lớn hơn, khoảng 1GB thì sẽ cần lưu 482KB dữ liệu bổ

sung vào file filelist.json, làm cho file này trở nên quá lớn. Thay vào đó, Duplicati tạo thêm một "khối gián tiếp", một khối dữ liệu mới chỉ với các giá trị băm Vì dữ liệu đầu ra của hàm băm SHA-256 có độ dài là 32 byte nên nếu không được encode bằng base64, ta có thể lưu trữ 3200 khối dữ liệu băm (kích thước khoảng 300MB) trong một khối duy nhất, nghĩa là kích thước file

filelist.json sẽ chỉ tăng thêm 47 byte cho 300MB dữ liệu.

Đối với file C:\data\myvideo.mp4, hệ thống tạo ra ba khối, vì vậy khối mới

chứa ba chuỗi khối băm chỉ chiếm 96 byte Khối mới này được xử lý không khác gì các khối khác và hàm băm SHA-256 được tính toán, kết quả sau khi được mã hoá base64 có dạng:

Trang 28

Đối tượng C:\data\extra\ là một thư mục, được lưu trữ theo cách tương tựnhư thư mục C:\data\ trước đó.

File C:\data\extra\olddoc.txt là phiên bản cũ của file C:\data\mydoc.txt đã

được sao lưu, nhưng Duplicati chỉ đơn giản tính toán hàm băm của các khối dữ liệu trong file mới, hệ thống tính ra kết quả:

Kết quả này không giống với giá trị băm đã tính toán trước đó cho file C:\

data\mydoc.txt và do đó, nó được coi là một khối mới Một số hệ thống sao lưu

khác sẽ xác định các đoạn dữ liệu của hai tệp khớp với nhau và chỉ tạo ra một bản sao lưu trong trường hợp này, còn Duplicati chọn tập trung vào sự đơn giản và tốc độ sao lưu Hơn nữa, các file đều được nén, nên nếu có các file giống nhau trong cùng một file nén, thuật toán nén sẽ làm cho dung lượng file nén được giảm đi Đồng thời, trường hợp hai file chỉ khác nhau những thay đổi nhỏ thường sẽ xuất hiện đối với các file văn bản thuần tuý có kích thước không quá lớn, các file này cũng có khả năng nén tốt, còn các file dung lượng lớn hơn thường sẽ có tính chất không được viết lại (như file cơ sở dữ liệu, ảnh, video), hoặc viết lại hoàn toàn (file ảnh, video), hoặc viết lại trong quá trình nén (file

Trang 29

Cuối cùng, file C:\data\extra\samevideo.mp4 được xử lý Duplicati sẽ xử lý

từng khối dữ liệu của file một cách riêng lẻ, nhưng hệ thống nhận ra rằng nó đã

tạo bản sao lưu của các khối này và sẽ không thêm nó vào file dblock Sau khi

cả ba khối được tính toán hàm băm, hệ thống sẽ tạo một khối mới để lưu trữ ba giá trị băm này, nhưng cũng nhận thấy rằng một khối như vậy cũng đã được lưu trữ, nên không có dữ liệu nào được thêm vào bản sao lưu Cách thức này được gọi là chống trùng lặp, đảm bảo rằng mỗi khối dữ liệu chỉ được lưu trữ một lần Với phương pháp này, các file trùng lặp dữ liệu sẽ được phát hiện, bất kể tên hoặc vị trí của chúng.

Trang 30

Như vậy, quá trình tạo bản sao lưu hoàn tất Dữ liệu cuối cùng của file

dblock được giữ nguyên như trên, và file filelist.json có dạng:

Tiếp tục với ví dụ trên, quá trình khôi phục dữ liệu của Duplicati sử dụng

file filelist.json, ở đây ta cần khôi phục 4 file và có file cần blocklist Do đó, quá

trình khôi phục bắt đầu với việc trích xuất blocklist thành các khối băm cần thiết Vì trong danh sách file có hai file có cùng blocklist, nên ta chỉ cần lấy dữ

liệu từ khối này Tên của các file dblock và dữ liệu chúng chứa không có liên hệ

nào, vì vậy ta cần tải xuống tất cả các file cho đến khi tìm thấy dữ liệu cần dùng.

Trang 31

Điều này sẽ làm giảm hiệu năng của ứng dụng trong thực tế, nên Duplicati sẽ

ghi các thông tin về các dblock này chứa những khối băm nào trong các file

Tiếp theo, ta có thể dựa vào kích thước file blocklist hoặc kích thước file

thực tế (trong filelist.json) để tính ra số lượng khối hash cần lấy, ở đây là ba khối

có biểu diễn dưới dạng base64 là:

0td8NEaS7SMrQc5Gs0Sdxjb/1MXEEuwkyxRpguDiWsY= (100kb)PN2oO6eQudCRSdx3zgk6SJvlI5BquP6djt5hG4ZfRCQ= (100kb)uS/2KMSmm2IWlZ77JiHH1p/yp7Cvhr8CKmRHJNMRqwA= (10kb)

Đối với các file có kích thước nhỏ, việc khôi phục được thực hiện không quá phức tạp: trích xuất dữ liệu và lưu vào file có tên tương ứng Quá trình xác định vị trí file dblock chứa khối dữ liệu mà ta cần và giải nén được cải thiện và

đơn giản hoá trong Duplicati với các file dindex.

Đối với các file có kích thước lớn, khi đã có danh sách khối băm cần dùng như trên, ta sẽ tiến hành khôi phục từng khối Việc khôi phục có thể tiến hành theo thứ tự từng khối băm một, giải nén từng khối và thêm dữ liệu lần lượt vào file đích, hoặc khôi phục không theo thứ tự (do ta đã biết sẵn kích thước một khối), lúc này ta có thể tính độ dời của dữ liệu trước rồi thêm dữ liệu vào đúng vị trí trong file đích.

Sau khi các file được khôi phục, hệ thống sẽ tính toán giá trị băm của từng

file và so sánh với giá trị được lưu trong file filelist.json, nếu chúng giống nhau

thì hệ thống xác nhận việc khôi phục dữ liệu thành công.

Khi ta thực hiện quá trình khôi phục dữ liệu sử dụng giao diện dòng lệnh

của Duplicati (Duplicati.CommandLine.RecoveryTool.exe), có thêm hai bước

được thực hiện: download và đánh index Quá trình download chỉ tải xuống và

giải mã tất cả các file dblock có thể tìm thấy trên thiết bị lưu trữ, tất cả các thao

tác sau có thể được thực hiện với các file cục bộ RecoveryTool không dựa vào

file dindex nên sẽ rất tốn thời gian nếu nó phải mở tất cả các file zip để kiểm tra

xem chúng có chứa khối dữ liệu cần xử lý hay không, do đó ta cần quá trình lập chỉ mục để tăng tốc quá trình thực hiện, bằng cách tạo ra một file văn bản thuần tuý, trong đó mỗi dòng được ghi một cặp khối, file zip  Hệ thống sẽ mở từng

file dblock và liệt kê khối dữ liệu có trong đó, thêm các dòng tương ứng vào file

chỉ mục rồi sắp xếp file chỉ mục theo thứ tự bảng chữ cái Có nhiều cách hiệu

Trang 32

quả hơn để lưu trữ dữ liệu chỉ mục này, nhưng file văn bản cho phép người dùng dễ dàng theo dõi, cập nhật và điều chỉnh file chỉ mục bằng một trình soạn thảo

văn bản đơn giản nếu có sự cố xảy ra Người dùng cũng có thể đọc file dlist và

sử dụng file chỉ mục để tìm ra vị trí của một khối cụ thể Cuối cùng, chỉ mục đã

sắp xếp được sử dụng để định vị file dblock khôi phục dữ liệu từ đó Việc tìm

kiếm dựa trên các khối đã được sắp xếp theo thứ tự bảng chữ cái để đảm bảo rằng thời gian tìm kiếm không tăng tuyến tính theo số lượng khối dữ liệu.

1.3.3 Chuẩn mã hoá AES-256

AES (viết tắt của Advanced Encryption Standard – thuật toán mã hoá tiên tiến) [ CITATION Fle17 \l 1033 ] là một thuật toán mã hoá khối được thiết kế bởi Rijndael Thuật toán AES-256 làm việc với khối dữ liệu 128 bit và khoá có độ dài là 256 bit.

Mã hoá dùng AES là mã hoá khối lặp gồm nhiều chu trình, các khoá con sử dụng trong các chu trình được tạo ra bởi quá trình tạo khoá con Rijndael.

Số vòng lặp (kí hiệu là N ) phụ thuộc vào độ dài khoá, nếu độ dài của khoár

là 256 bit thì N r 14

Trang 33

Hình 1.10 Mô hình mã hoá và giải mã bằng thuật toán AES

Thuật toán AES tổng quát có thể mô tả như sau:

 Với văn bản cho trước x, khởi tạo state là x và thực hiện phép toán AddRoundKey tiến hành XOR khoá (RoundKey) với state.

 Với mỗi vòng lặp trong N  vòng đầu tiên, thực hiện lần lượt các phépr 1

toán sau:

 Phép toán thay thế (SubBytes) đối với state bằng cách sử dụng một SBox

 Phép hoán vị ShiftRows đối với state  Phép toán MixColumns đối với state

SQLite [ CITATION LvJ09 \l 1033 ] là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, nhỏ gọn, có thể cài đặt bên trong ứng dụng khác dưới

Trang 34

dạng thư viện, không cần cấu hình, cài đặt và không cần máy chủ, dữ liệu của SQLite được lưu trữ trên một file duy nhất Nó ra đời vào năm 2000 bởi D Richard Hipp, người đã thiết kế SQLite dưới dạng thư viện bằng ngôn ngữ lập trình C.

Ưu điểm của SQLite:

 Nhỏ gọn: SQLite có kích thước nhỏ (dưới 500KB) và ít yêu cầu tài nguyên hệ thống so với các hệ quản trị cơ sở dữ liệu khác Nó có thể hoạt động trên hầu hết các thiết bị, bao gồm cả điện thoại di động và các thiết bị trong hệ thống nhúng.

 Không cần máy chủ riêng biệt: SQLite là một cơ sở dữ liệu không đòi hỏi máy chủ riêng biệt, không cần cài đặt và cấu hình phức tạp Điều này làm cho việc triển khai SQLite trở nên dễ dàng và thuận tiện.

 Tiện ích và linh hoạt: SQLite hỗ trợ một loạt các tính năng quản lý cơ sở dữ liệu, bao gồm các truy vấn SQL phức tạp, khóa xung đột, transaction và các tiện ích như ghi log, sao lưu và khôi phục dữ liệu.

 Tích hợp trong ứng dụng: SQLite có thể được nhúng trực tiếp vào bên trong ứng dụng, giúp giảm tải cho kết nối đường truyền mạng và cải thiện hiệu suất truy cập dữ liệu.

 Tính ACID: transaction trong SQLite tuân thủ đầy đủ các tính chất ACID (Atomic – tính nguyên tổ, Consistent – tính nhất quán, Isolated -tính cô lập và Durable – -tính bền vững)

Nhược điểm của SQLite:

 Không phù hợp với cơ sở dữ liệu lớn: SQLite không được thiết kế để quản lý cơ sở dữ liệu lớn hoặc ứng dụng có tải cao Trong những trường hợp như vậy, nó có thể không đủ mạnh để xử lý tốt các yêu cầu.

 Khả năng xử lý đồng thời hạn chế: SQLite hỗ trợ chỉ một kết nối đồng thời duy nhất Điều này có nghĩa là nếu có nhiều quá trình hoặc luồng đồng thời cố gắng truy cập cùng một cơ sở dữ liệu SQLite, có thể xảy ra xung đột và lỗi.

 Khả năng xử lý đồng thời hạn chế: SQLite hỗ trợ chỉ một kết nối đồng thời duy nhất Điều này có nghĩa là nếu có nhiều quá trình hoặc luồng

Trang 35

đồng thời cố gắng truy cập cùng một cơ sở dữ liệu SQLite, có thể xảy ra xung đột và lỗi.

Với những ưu và nhược điểm như vậy, SQLite thường được sử dụng trong

 Sử dụng làm bộ dữ liệu tạm thời để xử lý một số dữ liệu trong ứng dụng  Có thể dùng cho mục đích học tập và đào tạo do không yêu cầu cài đặt

hay cấu hình.

1.4 Tổng kết chương

Trong chương này, em đã trình bày một cách tổng quan về đề tài: “Nghiên

cứu giao thức S3 và xây dựng hệ thống sao lưu và phục hồi dữ liệu ” trên các

khía cạnh: nắm bắt bối cảnh và tầm quan trọng của nghiên cứu, xác định mục tiêu và phạm vi của đề tài, bên cạnh đó, em đã giới thiệu các chiến lược sao lưu dữ liệu, bài toán cần giải quyết, cũng như giải pháp và công nghệ sử dụng trong quá trình nghiên cứu.

Trong chương này, em đã trình bày về ba chiến lược sao lưu chính: sao lưu toàn bộ (full backup), sao lưu tăng tiến (incremental backup) và sao lưu khác biệt (differential backup) Mỗi chiến lược sao lưu có ưu điểm và hạn chế riêng, và sự lựa chọn phù hợp phụ thuộc vào yêu cầu cụ thể của hệ thống sao lưu và phục hồi dữ liệu Em đã trình bày chi tiết về cách hoạt động, tiến trình và lợi ích mang lại của mỗi chiến lược, tạo nền tảng cho phần tiếp theo của nghiên cứu.

Tiếp theo, em đã đặt ra bài toán cho đề tài này: nghiên cứu giao thức S3 và xây dựng hệ thống sao lưu và phục hồi dữ liệu Bài toán đòi hỏi em phải tìm hiểu và áp dụng giao thức S3 để tạo ra một hệ thống hiệu quả, bảo mật và tin cậy để sao lưu và phục hồi dữ liệu.

Để làm được điều đó, em đã đề xuất sử dụng giao thức S3 của Amazon Web Services (AWS) làm nền tảng để xây dựng hệ thống sao lưu và phục hồi dữ liệu Giao thức S3 cung cấp tính năng mạnh mẽ và đáng tin cậy cho việc lưu trữ và quản lý dữ liệu trên đám mây Em đã nghiên cứu cách sử dụng giao thức S3

Ngày đăng: 03/04/2024, 15:52

Tài liệu cùng người dùng

Tài liệu liên quan