Triển khai thử nghiệp dịch vụ tự động sao lưu dữ liệu trên nền tảng điện toán đám mây Triển khai thử nghiệp dịch vụ tự động sao lưu dữ liệu trên nền tảng điện toán đám mây Triển khai thử nghiệp dịch vụ tự động sao lưu dữ liệu trên nền tảng điện toán đám mây luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1KHAMBOY YANGCHERTOUA
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRIỂN KHAI THỬ NGHIỆM DỊCH VỤ TỰ ĐỘNG SAO LƯU
DỮ LIỆU TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY
Chuyên ngành : CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
GIẢNG VIÊN HƯỚNG DẪN KHOA HỌC:
TS NGUYỄN BÌNH MINH
HÀ NỘI - 2018
Trang 2LỜI CAM ĐOAN
Tôi – KHAMBOY YANGCHERTOUA xin cam đoan:
Luận văn tốt nghiệp Thạc sĩ này là công trình nghiên cứu của bản thân tôi dưới
sự hướng dẫn của TS Nguyễn Bình Minh
Các kết quả trong luận văn tốt nghiệp là trung thực, không phải là sao chép toàn
văn của bất kỳ công trình nào khác
Hà nội, ngày…… tháng……năm 2018 Tác giả luận văn
Khamboy YangCherToua
Trang 3LỜI CẢM ƠN
Trước hết, em xin gửi lời cảm ơn sâu sắc tới giảng viên TS Nguyễn Bình Minh tại
Viện công nghệ thông tin và truyền thông, Trường Đại Học Bách Khoa Hà Nội Nhờ
sự hướng dẫn tận tình của giảng viên đã giúp em hoàn thành thực hiện luận văn
Em xin chân thành cảm ơn các thầy cô trong Viện Công Nghệ Thông tin và Truyền
thông, Viện Đào Tạo Sau Đại Học, Trường Đại Học Bách Khoa Hà Nội đã tạo điều
kiện, giúp đỡ em trong quá trình học tập và nghiên cứu tại trường
Hà nội, ngày…… tháng……năm 2018 Tác giả luận văn
Khamboy YangCherToua
Trang 4Mục lục
Chương I: Mở đầu 1
1.1 Lý do chọn đề tài 1
1.2 Mục đích nghiên cứu, đối tượng và phạm vi nghiên cứu 1
1.3 Bố cục luận văn 2
Chương II : Tổng quan về điện toán đám mây và các công nghệ liên quan 3
2.1 Tổng quan về điện toán đám mây 3
2.1.1 Khái niệm điện toán đám mây 3
2.1.2 Các đặc trưng của điện toán đám mây 3
2.1.3 Các loại dịch vụ phát triển của điện toán đám mây 4
2.1.3.1 IaaS – Infrastructure as a Service – Cơ sở hạ tầng như là một dịch vụ 5
2.1.3.2 PaaS – Platform as a Service – nền tảng như là một dịch vụ 6
2.1.3.3 SaaS – Software as a Service – phần mềm như là một dịch vụ 7
2.1.4 Các mô hình triển khai của điện toán đám mây 8
2.1.4.1 Đám mây công cộng (Public Cloud) 8
2.1.4.2 Đám mây nội bộ (Private Cloud) 9
2.1.4.3 Đám mây lai (Hybrid Cloud) 10
2.1.5 Ưu / nhược điểm của điện toán đám mây 11
2.1.5.1 Ưu điểm 11
2.1.5.2 Nhược điểm 11
2.1.6 Khái niệm lưu trữ đám mây (Cloud Storage) 12
2.1.7 Giới thiệu một số nhà cung cấp dịch vụ điện toán đám mây 12
2.2 Các công nghệ liên quan điện toán đám mây 14
2.2.1 Tổng quan về Openstack và triển khai Openstack 14
2.2.2 Openstack 14
Trang 52.2.4 Kiến trúc của Openstack 16
2.2.5 Mô hình thiết kế 18
2.2.5.1 Controller Node 19
2.2.5.2 Compute Node 19
2.2.6 Cài đặt, triển khai OpenStack 20
2.2.7 Trang web login Openstack và tạo ra các máy ảo bằng giao diện Openstack 21
2.2.8 Đánh giá giải pháp 22
2.2.9 Đề xuất phát triển nâng cao hiệu năng của giải pháp 22
2.3 Tổng quan về lưu trữ trên điện toán đám mây 23
2.3.1 Giới thiệu lưu trữ Ceph 23
2.3.2 Các hướng phát triển sử dụng Ceph 24
2.3.3 Các hệ thống lưu trữ của Ceph 24
2.3.3.1 Hệ thống lưu trữ đối tượng của ceph (Object storage) 25
2.3.3.2 Hệ thống khối lưu trữ (Block Storage) 25
2.3.3.3 Hệ thống lưu trữ file dữ liệu của ceph (File System) 26
2.3.4 Các Node trên hệ thống lưu trữ Ceph 26
2.3.4.1 Object Storage Daemon (OSD) 26
2.3.4.2 Monitor (MON) 27
2.3.4.3 Admin node (ceph-deploy) 28
2.3.5 Các thành phần bên trong ceph 28
2.3.5.1 RADOS (Reliable Autonomous Distributed Object Storage ) 28
2.3.5.2 Object 29
2.3.5.3 Crush 30
2.3.5.4 PG và PGP 33
2.3.5.5 Pool 35
2.3.6 Quá trình replica pool 35
Trang 62.3.7 Mô hình hệ thống cài đặt Ceph 36
2.3.8 Đánh giá giải pháp (sau quá trình cài đặt Ceph Storage Cluster) 37
2.3.9 Openstack tích hợp với Ceph 38
2.3.9.1 Mục đích sử dụng Openstack tích hợp với Ceph 38
2.3.9.2 Mô hình thành phần Openstack tích hợp với Ceph 38
2.3.10 Đánh giá giải pháp (sau quá trình Openstack tích hợp với Ceph) 39
CHƯƠNG III: XÂY DỰNG DỊCH VỤ LƯU TRỮ DỮ LIỆU CHO PHÉP ĐỒNG BỘ HÓA DỮ LIỆU TRÊN HẠ TẦNG ĐIỆN TOÁN ĐÁM MÂY VÀ DỊCH VỤ LƯU TRỮ ĐÁM MÂY 40
3.1 Giới thiệu dịch vụ lưu trữ đám mây 40
3.2 Cơ chế lưu trữ dữ liệu 40
3.3 Phân tích chức năng hệ thống 41
3.3.1 Tổng quan biểu đồ Use Case : 41
3.3.2 Đặc tả Use Case : 41
3.4 Biểu đồ luồng xử lý 42
3.5 Thiết kế các lớp 45
3.6 Thiết kế cơ sở dữ liệu 47
3.7 Biểu đồ tuần tự (Sequence Diagram) : 48
3.8 Thiết kế giao diện ứng dụng giao tiếp người dùng 53
3.8.1 Giao diện ứng dụng người dùng (Client) : 53
3.8.2 Giao diện ứng dụng quản lý (Admin) : 57
3.9 Kết quả thử nghiệm dịch vụ lưu trữ đám mây 58
3.9.1 Môi trường thử nghiệm 58
3.9.2 Kịch bản thử nghiệm chức năng và các kết quả (Trình bày dưới dạng bảng các test case) 60 3.9.3 Kịch bản thử nghiệm đánh giá hiệu năng và các kết quả 66
Kết luận 67
Trang 7DANH SÁCH HÌNH ẢNH Chương II:
Hình 2.1 Điện Toán Đám Mây Error! Reference source not found
……… … 3
Hình 2.2 Mô hình SPI [1]………5
Hình 2.1 Mô hình triển khai điện toán đám mây [3]………8
Hình 2.2 Đám mây công cộng [4]……….… 9
Hình 2.3 Mô hình đám mây riêng [4]……… …….10
Hình 2.4 Mô hình đám mây lai [5]……….10
Hình 2.7 Mô hình thành phần cơ bản của Openstack [6]……….…….15
Hình 2.8 Mô hình Kiến Trúc của Openstack [7]……….…… 16
Hình 2.9 Mô hình thiết kế của Openstack [8]……… ……18
Hình 2.10 Mô Hình Cài Đặt Openstack……….21
Hình 2.11 Ceph Storage Cluster 0……… 23
Hình 2.12 Hệ thống lưu trữ Ceph 0……… 24
Hình 2.13 kiến trúc OSD đồng bộ [9]……….…… … 26
Hình 2.14 Thành Phần Rados Cluster [9]……….…….….27
Hình 2.15 Thành Phần Object [9]……….…………28
Hình 2.16 Crush lookup [9]……… ……… …… …29
Hình 2.17 Phân Cấp Crush……….……… ……31
Hình 2.18 Mô hình Placement Group (PG) [9]……… ……….………33
Hình 2.19 Mô hình Pool………34
Hình 2.20 Mô Hình Quá Trình Replicat Pool [9]……….… 35
Hình 2.21 Mô Hình hệ thống Cài Đặt Ceph……….36
Hình 2.22 Mô Hình Thành Phần Openstack Tích Hợp Với Thành Phần Ceph [10] 38
Chương III : Hình 3.1 Biểu đồ User và admin Use – Case……… …….40
Hình 3.2 Biểu đồ thứ tự người đăng ký ……… 42
Hình 3.3 Biểu đồ thứ tự người đăng nhập………42
Hình 3.4 Biểu đồ thứ tự cài đặt rsync ………43
Hình 3.5 Biểu đồ thứ tự đồng bộ từ server xuống……….………… 43
Trang 8Hình 3.7 Biểu đồ thứ tự đổi mật khẩu người dụng……….……….44
Hình 3.8 Biểu đồ thứ tự thay đổi quota……….…… 45
Hình 3.9 Biểu đồ thứ tự xóa người dụng……… ………… 45
Hình 3.10 Biểu đồ thiết kế các lớp……….….46
Hình 3.11 Thiết kế cấu trúc bảng user……… 48
Hình 3.12 Thiết kế cấu trúc bảng user……… 48
Hình 3.13 Biểu đồ hành động người đăng ký……….……….49
Hình 3.14 Biểu đồ hành động người đăng nhập…… ……….………49
Hình 3.15 Biểu đồ hành động cài đặt rsync……… 50
Hình 3.16 Biểu đồ hành động đồng bộ dữ liệu từ server……….……50
Hình 3.17 Biểu đồ hành động đồng bộ dữ liệu từ client lên server……….…… 51
Hình 3.18 Biểu đồ hành động đổi mật khẩu……….…….51
Hình 3.19 Biểu đồ hành động thay đổi quota cho người dụng……….52
Hình 3.20 Biểu đồ hành động xóa người dùng……….…52
Hình 3.21 Form đăng ký.……… 53
Hình 3.22 Form đăng nhập ………54
Hình 3.23 Form đồng bộ hóa dữ liệu giữa đám mây và máy tính cá nhân………… 55
Hình 3.24 Tiến hành trong thư mục data trong máy tính cá nhân……… 55
Hình 3.25 Bảng của giao diện ứng dụng đồng bộ hóa dữ liệu hiển thị trên máy tính cá nhân………56
Hình 3.26 Đồng bộ hóa dữ liệu trên đám mây……… 56
Hình 3.27 Form admin……… 57
Hình 3.28 Form admin thay đổi Quota cho người dùng……… 58
Hình 3.29 Kiến trúc hệ thống dịch vụ lưu trữ đám mây………59
Hình 3.30 Nhập thông tin đăng ký………61
Hình 3.31 Đăng ký thành công……….62
Hình 3.32 Tạo dữ liệu vào thư mục data của máy tính cá nhân………62
Hình 3.33 Bảng hiển thị ra các danh sách dữ liệu……….63
Hình 3.34 Đăng ký tài khoản đã tổn tài trên hệ thống……… 63
Hình 3.35 Đăng nhập sai tài khoản hoặc mật khẩu……… 64
Hình 3.36 Bảng hiển thị ra các danh sách lần đầu tiên đăng ký sử dụng……….64
Hình 3.37 Tạo file test_123 và thư mục test_456 trên máy tính cá nhân……….65
Hình 3.39 Bảng hiển thị ra các danh sách dữ liệu……….65
Hình 3.38 Tự động đồng bộ dữ liệu từ máy tính cá nhân lên đám mây………65
Trang 9Chương I: Mở đầu 1.1 Lý do chọn đề tài
Hiện nay, nhu cầu về lưu trữ và đảm bảo an ninh, an toàn dữ liệu đang là một
vấn đề quan tâm rất lớn của tất cả mọi người và các doanh nghiệp Khi có sự cố hoặc
mất máy thì sẽ mất dữ liệu và không thể khôi phụ lại vì vậy, để giải quyết được vấn
đề về việc lưu trữ an toàn thì phải triển khai hạ tầng điện toán đám mây như dịch vụ
lưu trữ đám mây
Điện toán đám mây đang là chủ đề được bàn luận sôi nổi nhất trong hiện nay,
các công nghệ liên quan đến “Cloud“ nhận được rất nhiều quan tâm từ người dùng và
doanh nghiệp Đã có khá nhiều sản phẩm thương mại cũng như nguồn mở được giới
thiệu và cung cấp cho người dùng các dịch vụ được xây dựng từ hệ thống Cloud, bao
gồm cung cấp hạ tầng IaaS đến PaaS và SaaS Tuy nhiên tất cả vẫn đang trong quá
trình phát triển, sẽ rất sai lầm nếu chỉ nghe theo quảng cáo từ các nhà cung cấp các
dịch vụ đó Để có nhận xét chính xác và chi tiết hơn về hiện trạng của các sản phẩm
này, cách tốt nhất là hãy thử nghiệm chúng
Một trong những ưu điểm của điện toán đám mây chính là việc sử dụng hiệu quả
hơn các tài nguyên từ hệ thống vật lý và có hiệu suất sử dụng cao hơn IaaS chính là
thành phần quan trọng nhất giúp cho điện toán đám mây thực hiện được điều này Là
thành phần quản lý hạ tầng về phần cứng, mạng và phân phối lại các tài nguyên, IaaS
chính là phần cung cấp cho người dùng khả năng xây dựng hạ tầng cơ sở cho đám mây
riêng
1.2 Mục đích nghiên cứu, đối tượng và phạm vi nghiên cứu
Tìm hiểu về điện toán đám mây
Thực hiện nghiên cứu, triển khai giải pháp điện toán đám mây dạng dịch
vụ IaaS để quản lý tài nguyên tính toán, tài nguyên lưu trữ dưới dạng các máy chủ ảo và ổ lưu trữ ảo
Tìm hiểu Openstack và sử dụng Openstack triển khai điện toán đám mây
để xây dựng một trung tâm dữ liệu thử nghiệm
Tìm hiểu lưu trữ ceph và xây dựng hạ tầng cụm lưu trữ Ceph
Kết nối Openstack tích hợp với Ceph để cung cấp Volume lưu trữ dữ
liệu
Trang 10 Xây dựng dịch vụ lưu trữ dữ liệu cho phép động bộ hóa dữ liệu của
người dùng dựa trên hạ tầng điện toán đám mây và dịch vụ lưu trữ đám mây
Thử nghiệm dịch vụ tự động sao lưu dữ liệu trên nền tảng điện toán đám
mây
1.3 Bố cục luận văn
Nội dung chính của luận văn được chia làm 3 chương:
Chương I: Mở Đầu
Chương II: Tổng quan vệ điện toán đám mây và các công nghệ liên quan
Chương III: Xây dựng dịch vụ lưu trữ dữ liệu cho phép động bộ hóa dữ
liệu của người dùng dựa trên hạ tầng điện toán đám mây và dịch vụ lưu trữ
đám mây
Kết luận
Trang 11Chương II : Tổng quan về điện toán đám mây và các công nghệ liên quan
2.1 Tổng quan về điện toán đám mây
2.1.1 Khái niệm điện toán đám mây
Điện toán đám mây là một mô hình hạ tầng tính toán dịch vụ kho tài nguyên
điện toán dùng chung, ví dụ như mạng, máy chủ ảo, lưu trữ, …
Như vây điện toán đám mây có thể được hiểu một cách đơn giản như là sự sử
dụng tài nguyên tính toán có khả năng thay đổi theo nhu cầu và được cung cấp như là
một dịch vụ từ bên ngoài với chi phí trả cho mỗi lần sử dụng Thuật ngữ “đám mây” ở
đây là ám chỉ internet, người dùng có thể truy cập đến tài nguyên tồn tại trong “đám
mây” tại bất kỳ thời điểm nào và từ bất kỳ đâu thông qua hệ thống internet Người
dùng có thể làm việc với các tài nguyên đó mà không cần phải hiểu biết công nghệ, kỹ
thuật và hạ tầng cơ sở của đám mây
Hình 2.1 Điện Toán Đám Mây [1]Error! Reference source not found
2.1.2 Các đặc trưng của điện toán đám mây
Viện tiêu chuẩn và công nghệ quốc gia Mỹ (NIST – National Institue of
Standards and Technology) đã đưa ra 5 đặc trưng chính sau:
- Dịch vụ tự phục vụ theo nhu cầu (On-demand self-service )
Trang 12Khách hàng có thể được cung cấp tài nguyên như máy chủ, lưu trữ mạng,….một
cách tự động theo yêu cầu mà không cần phải có sự giúp đỡ hay can thiệp từ
phía nhà cung cấp dịch vụ
- Truy cập mạng băng rộng (Broad network access)
Người dùng có thể dễ dàng truy cập vào đám mây chỉ với một ứng dụng có khả
năng truy cập mạng (Internet) từ bất kỳ thiết bị nào, bao gồm máy tính, thiết bị
cầm tay, di động,…
- Tập trung tài nguyên (Location independent resource pooling)
Tài nguyên tính toán của nhà cung cấp được phân chia để phục vụ nhiều khách
hàng theo mô hình đa chiếm hữu, với các tài nguyên vật lý và tài nguyên ảo
được cấp động và thu hồi dựa theo yêu cầu của khách hàng Sự không phụ thuộc
vào vị trí ở đây có nghĩa là khách hàng không biết và cũng không có quyền
kiểm soát vị trí chính xác của tài nguyên được cung cấp Ví dụ về tài nguyên có
thể bao gồm lưu trữ, xử lý, bộ nhớ, băng thông mạng và các máy ảo
- Mở rộng nhanh chóng (Rapid elasticity)
Tài nguyên có thể được cung cấp một cách nhanh chóng và mềm dẻo, có thể
tăng lên hay giảm đi dễ dàng tùy theo yêu cầu của khách hàng Với khách hàng,
tài nguyên luôn sẵn sàng và có thể coi là vô tận, có thể yêu cầu vào bất cứ thời
điểm nào
- Dịch vụ đo lường (Measured service)
Các hệ thống đám mây tự động điều khiển và tinh chỉnh tài nguyên sử dụng
bằng cách áp dụng các biện pháp đo lượng ở các cấp độ khác nhau phù hợp với
từng loại dịch vụ (ví dụ như lưu trữ, xử lý, băng thông và tài khoản người dùng
đang active) Tài nguyên sử dụng có thể được giám sát, đo lường và khách hàng
thường sẽ chỉ phải trả phí cho lượng tài nguyên mà họ đã sử dụng
2.1.3 Các loại dịch vụ phát triển của điện toán đám mây
Hiện nay, mô hình Cloud Computing, vẫn đang được nghiên cứu và phát triển,
được cho là có thể cung cấp 3 loại dịch vụ sau đáp ứng nhu cầu của nhiều người sử
dụng
IaaS – Infrastructure as a Service – Cơ sở hạ tầng như là một dịch vụ
Trang 13 PaaS – Platform as a Service – nền tảng như là một dịch vụ
SaaS – Software as a Service – phần mềm như là một dịch vụ
Đặc trưng tiêu biểu của các dịch vụ điện toán đám mây cung cấp hạ tầng, nền
tảng và phần mềm như là dịch vụ máy chủ ảo, mà có thể được cung ứng như là một
dịch vụ cho thuê trong cách dùng bao nhiêu trả bấy nhiêu đối với người dùng
Cách phân loại này được gọi là mô hình SPI (Software - Platform - Infrastructure )
Hình 2.2 Mô hình SPI [2]Error! Reference source not found
2.1.3.1 IaaS – Infrastructure as a Service – Cơ sở hạ tầng như là một dịch vụ
Định nghĩa là phần cứng như một dịch vụ, cung cấp các dịch vụ sử dụng
phần cứng cho người sử dụng (gọi là tài nguyên), người dùng chỉ cần thuê dịch vụ
thông qua mạng Cung cấp nhiều nguồn tài nguyên như là máy chủ, lưu trữ, firewalls,
load balancers, các địa chỉ IP… Giúp người dùng linh hoạt hơn trong việc sử dụng tài
nguyên
Mô hình IaaS cung cấp cho người dụng một hạ tầng thô (dưới hình thức các
máy chủ ảo, lưu trữ, mạng,… ) như là một dịch vụ người dụng có thể triển khai và
chạy phần mềm bất ký cho máy ảo, có thể bao gồm cả hệ điều hành và các ứng dụng
Trang 14Người dụng không quản lý hay điều khiển hạ tầng thực của Cloud nhưng có quyền
kiểm soát hệ điều hành, lưu trữ, các ứng dụng và một số thành phần mạng cơ bản ( ví
dụ như tưởng lửa, cân bằng tải) trên máy chủ ảo họ được cấp những dịch vụ IaaS
thông thường được tính phí sử dụng dựa theo lượng tính toán hay tài nguyên mà người
dụng sử dụng
Những đặc trưng tiêu biểu của IaaS:
- Cung cấp hạ tầng như một dịch vụ: bao gồm cả máy chủ (ảo), thiết bị mạng, bộ
nhớ, CPU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu
- Khả năng mở rộng linh hoạt
- Chi phí thay đổi tùy theo thưc tế
- Nhiều người thuê có thể cùng dùng chung trên một tài nguyên ( nhiều máy ảo
trên cùng một máy thật)
- Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài nguyên
tính toán tổng hợp
- Nhà cung cấp IaaS thương mại nổi tiếng nhất là Amazon với Amazon Elastic
Compute Cloud (EC2) Trong EC2, người dùng có thể chỉ định máy ảo (VM –
Virtual Machine ) có sẵn và triển khai các ứng dụng trên đó hay tự cung cấp
VM image của chính họ và đưa nó lên chạy trên hệ thống của Amazon Người
dùng chỉ phải trả tiền cho thời gian tính toán, dung lượng lưu trữ và băng thông
mạng Ngoài Amazon còn một số hãng lớn khác như Rackspace, GoGrid,…
Cũng cung cấp IaaS theo mô hình tương tự
2.1.3.2 PaaS – Platform as a Service – nền tảng như là một dịch vụ
Mô hình PaaS cung cấp cho người dùng khả năng triển khai và phát triển ứng
dụng của chính họ trên hạ tầng Cloud sử dụng các ngôn ngữ lập trình và công cụ do
nhà cung cấp Cloud hỗ trợ ( ví dụ java, python, Net) Người dùng không quản lý hay
điều khiển lớp hạ tầng Cloud bên dưới như mạng, máy chủ, hệ điều hành hay lưu trữ
mà chỉ có quyền quản lý ứng dụng của họ và một số cấu hình có thể đối với môi
trường hosting ứng dụng đó Một cách đơn giản, nếu trong IaaS người dùng kiểm soát
và sử dụng toàn bộ máy chủ được cấp thì trong PaaS, người dùng chỉ kiểm soát và sử
dùng một số dịch vụ cụ thể trên máy chủ đó
Những đặc trưng tiêu biểu của PaaS:
- Phục vụ cho việc phát triển, kiểm thử, triển khai và vận hành ứng dụng giống
như là môi trường phát triển tích hợp
- Các công cụ khởi tạo với giao diện trên nền web
- Kiến trúc đồng nhất
- Tích hợp dịch vụ web với cơ sở dữ liệu
Trang 15- Hỗ trợ công tác nhóm pháp triển
- Công cụ hỗ trợ tiện ích
Microsoft Azure hay Google App Engine là một trong những dịch vụ PaaS tiêu
biểu Google App Engingle là một dịch vụ cho phép người dùng triển khai ứng dụng
web của mình trên kiến trúc rất khả mở của Google App Engine cung cấp một
sandbox cho ứng dụng Python của người dùng (các ngôn ngữ khác sẽ hỗ trợ sau) như
là các API Python để lưu trữ và quản lý dữ liệu (dùng Google Query Language) bên
cạnh các hỗ trợ về xác thực người dùng, thao tác hình ảnh và gửi email
2.1.3.3 SaaS – Software as a Service – phần mềm như là một dịch vụ
Mô hình SaaS cung cấp cho người dùng khả năng sử dụng các ứng dụng của
nhà cung cấp chạy trên hạ tầng đám mây và có thể truy cập từ nhiều thiết bị đầu cuối
thông qua một giao diện khách đơn giản như một trình duyệt Web ( ví dụ , web – based
email ) Người dùng không quản lý hay kiểm soát hạ tầng phía dưới, mạng, máy chủ,
hệ điều hành, lưu trữ hay thậm chí một số cấu hình ứng dụng hệ thống, mà chỉ sử dụng
ứng dụng kèm theo một số cấu hình hạn chế với ứng dụng đó
Những đặc trưng của SaaS:
- Phần mềm sẵn có đòi hỏi việc truy xuất, quản lý qua mạng
- Quản lý các hoạt động từ một vị trí tập trung hơn là tại mỗi nơi của khách
hàng, cho phép khách hàng truy xuất từ xa thông qua Web
- Cung cấp ứng dụng thông thường gần gũi với mô hình ánh xạ từ một đến
nhiều hơn là mô hình 1:1 bao gồm cả các đặc trưng kiến trúc, giá cả và
quản lý
- Những tính năng tập trung nâng cấp, giải phóng người dùng khỏi việc tải
các bản và lỗi cập nhật
- Thường xuyên tích hợp những phần mềm giao tiếp trên mạng diện rộng
- Dịch vụ email hay Google App của Google là một ví dụ tiểu biểu cho hình
thức cung cấp dịch vụ SaaS
Trang 162.1.4 Các mô hình triển khai của điện toán đám mây
Hình 2.5 Mô hình triển khai điện toán đám mây [3]
2.1.4.1 Đám mây công cộng (Public Cloud)
Đám mây công cộng cung cấp cho người dùng một không gian rộng lớn để lưu
trữ thông tin dữ liệu, các phần mềm ứng dụng thông qua Internet ví dụ như Google
Drive Khi dùng dịch vụ này thì sẽ không mất khoản chi phí cho cơ sở hạ tầng vì các
nó được cung cấp bởi nhà cung cấp dịch vụ cho thuê máy chủ Doanh nghiệp khi sử
dụng sẽ không được quyền sở hữu cũng như quản lý hệ thống Mặc dù công nghệ đám
mây công cộng là vô cùng tiện lợi, nhưng không bảo mật dữ liệu tốt nhất vì những
thông tin trên đó được phổ biến cho cộng đồng Đám mây công cộng giúp đồng bộ dữ
liệu làm việc giữa các máy tính và thiết bị di động như laptop, máy tính bảng hay điện
thoại thông minh Có thể truy cập dữ liệu an toàn bất cứ nơi nào trên Internet bằng
trình duyệt web với cơ chế mã hóa dữ liệu
Với đám mây, ta có thể hình dung nhà cung cấp xây dựng một trung tâm dữ liệu
ảo ( virtual Data Center ) và nhà cung cấp tùy theo nhu cầu của người sử dụng
Trang 17Hình 2.6 Đám mây công cộng [4][4]
2.1.4.2 Đám mây nội bộ (Private Cloud)
Đám mây riêng là được xây dựng phục vụ cho nhu cầu riêng của một client,
cung cấp sự tự chủ tối đa về dữ liệu, an ninh và chất lượng dịch vụ Doanh nghiệp là
người sở hữu hạ tầng đám mây và có quyền điều khiển tất cả các ứng dụng triển khai
trên đó Đám mây riêng có thể được triển khai trong một trung tâm dữ liệu (Data
Center) của doanh nghiệp
Đám mây riêng có thể được xây dựng và quản lý bởi bộ phận IT của riêng công
ty hoặc bởi một nhà cung cấp đám mây Trong mô hình “ hosted private ” này, một
công ty như Sun có thể cài đặt, cấu hình và quản lý một hạ tầng hỗ trợ cho một đám
mây riêng của trung tâm dữ liệu của một công ty nào đó Mô hình này giúp doanh
nghiệp có quyền cao hơn trong việc điều khiển tài nguyên trên đám mây so với mô
hình đám mây công cộng
Trang 18Hình 2.7 Mô hình đám mây riêng [4]
2.1.4.3 Đám mây lai (Hybrid Cloud)
Đám mây lai là hạ tầng đám mây được xây dựng với thành phần gồm 2 hoặc
nhiều hơn các đám mây như đám mây công cộng và đám mây riêng Đám mây lai
mang đến điều tốt nhất của nhiều mô hình triển khai đám mây
Đám mây lai có thể giúp cung cấp tài nguyên theo yêu cầu, hay sự mở rộng ở
bên ngoài Khả năng có một đám mây riêng với tài nguyên cung cấp của một đám mây
công cộng có thể được sử dụng để duy trì các cấp dịch vụ Đám mây lai thường được
thấy nhất trong việc sử dụng khả năng lưu trữ đám mây để hỗ trợ cho ứng dụng Web
2.0
Hình 2.8 Mô hình đám mây lai [5]
Trang 19Đám mây lai tuy vậy lại có những sự phức tạp trong việc quyết định phân phối
ứng dụng ra sao giữa cả đám mây riêng và đám mây công cộng, bao gồm mối liên hệ
giữa dữ liệu và xử lý dữ liệu Nếu dữ liệu nhỏ, hoặc ứng dụng thuộc dạng vô quốc tịch
(stateless), thì đám mây lai có thể được sử dụng có lợi hơn là khi dữ liệu lớn được
truyền đi trong một đám mây công cộng cho một lượng xử lý nhỏ
2.1.5 Ưu / nhược điểm của điện toán đám mây
2.1.5.1 Ưu điểm
Một số lợi ích cơ bản chính là việc đầu tư cơ sở hạ tầng cho doanh nghiệp và cá
nhân như sau:
- Sử dụng tài nguyên tính toán động: khi ứng dụng công nghệ này thì doanh
nghiệp chỉ đầu tư hạ tầng đúng với yêu cầu của doanh nghiệp và một cách
tức thời, không dư thừa lãng phí Khi có nhu cầu mở rộng thì doanh
nghiệp không cần phải suy nghĩ là phải đầu tư thêm bao nhiêu máy chủ,
bao nhiêu máy trạm, mà chỉ cần đưa ra thông số kỹ thuật thì các nhà cung
cấp điện toán đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho
doanh nghiệp
- Giảm chi phí: vì là dịch vụ nên doanh nghiệp chủ động trong việc cắt giảm
chi phí để mua bán bảo trì tài nguyên Doanh nghiệp không có một đội
ngủ chuyên gia đi mua máy chủ, cài đặt máy chủ, bảo trì,…
- Giảm độ phức tạp trong cơ cầu doanh nghiệp: doanh nghiệp có thể không
cần đầu tư một đội ngủ ít để vận hành hệ thống, mà tất cả những công việc
này đã có nhà cung cấp điện toán đám mây lo
2.1.5.2 Nhược điểm
Mặc dù có một số ưu điểm quan trọng, tuy nhiên mô hình điện toán này vẫn còn
có một số nhược điểm sau:
- Tính riêng tư
Các thông tin người dùng và dữ liệu được chứa trên điện toán đám mây
không có đảm bảo được riêng tư vì và liệu các thông tin đó có bị sử dụng
vì một mục đích nào khác
Ví dụ: khi người dùng đăng ký một dịch vụ đám mây của Google Cloud,
Amazon thì cần phải cung cấp các thông tin cá nhân (thẻ visa debit, …),
các thông tin này có thể được sử dụng vào các mục đích khác mà người
dùng không biết
- Tính sẵn dùng
Trang 20Các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người dùng không
thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian
nào đó khiến ảnh hưởng đến công việc
Ví dụ: vì là hệ thống chia sẻ tài nguyên nên khi nhiều người dùng có thể
dẫn đến hệ thống mạng bị quá tải
- An toàn dữ liệu
Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất ngờ ngừng
hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng
phải sao lưu dữ liệu của họ từ “ đám mây” về máy tính cá nhân Điều này
sẽ mất nhiều thời gian Thậm chí một vài trường hợp, vì một lý do nào đó,
dữ liệu người dùng bị mất và không thể phục hồi được
- Khả năng bảo mật
Vấn đề tập trung dữ liệu trên các đám mây là cách thức hiệu quả để tăng
cường bảo mật nhưng mặt khác cũng lại chính là mối lo của người sử
dụng dịch vụ của điện toán đám mây Bời lẽ một khi các đám mây bị tấn
công hoặc đột nhập, toàn bộ lữ liệu sẽ bị chiếm dụng Tuy nhiên, đây
không thực sự là vấn đề của riêng “điện toán đám mây”, bời lẽ tấn công
đánh cắp dữ liệu là vấn đề gặp phải trên bất kỳ môi trường nào, ngay cả
trên các máy tính cá nhân
2.1.6 Khái niệm lưu trữ đám mây (Cloud Storage)
Công nghệ điện toán đám mây được coi là một cuộc cách mạng lớn trong thời đại
Internet, làm thay đổi phương thức lưu trữ dữ liệu một cách thông minh và tiện lợi hơn
Trong đó được sử dụng phổ biến nhất hiện nay là dịch vụ lưu trữ đám mây
Dịch vụ lưu trữ đám mây là một dịch vụ lưu trữ dữ liệu trực tuyến, mọi người có thể
lưu trữ các dữ liệu trên Internet một cách tiện lợi Dữ liệu sẽ được lưu trữ trên Internet
(đám mây) và có thể truy cập, sử dụng bất cứ lúc nào, tại bất cứ nơi đâu, thông qua một
PC, Ipad hoặc điện thoại di động, rất nhanh chóng và dễ dàng miễn là được kết nối
Internet và được dịch vụ lưu trữ đám mây đó hỗ trợ thì đều có thể truy cập sử dụng
dịch vụ
2.1.7 Giới thiệu một số nhà cung cấp dịch vụ điện toán đám mây
Hiện nay có rất nhiều nhà cung cấp dịch vụ lưu trữ đám mây khác nhau Chúng
ta có thể kể đến một số nhà cung cấp dịch vụ nổi bật như: AWS, MicroSoft, Google,
Dropbox, Onedrive, SugarSync, Apple…
a) Google drive
Trang 21Đây là sản phẩm của tập đoàn đa quốc gia Google – một nhà sản xuất và cung
cấp các dịch vụ liên quan đến internet như dịch vụ tìm kiếm, điện toán đám mây và
phần mềm Google Drive là một sản phẩm cung cấp cho người dùng không gian lưu
trữ miễn phí lớn trên đám mây Nó được xem như là kho lưu trữ toàn diện nhất hiện
nay Google Drive được tích hợp những công cụ cơ bản của các trình chỉnh sửa và tạo
văn bản Word, Excel hay Power Point
b) One Drive
OneDrive là một sản phẩm được cung cấp bởi tập đoàn Microsoft – một nhà sản
xuất, kinh doanh bản quyền phần mềm hỗ trợ trên diện rộng các sản phẩm và dịch vụ
liên quan đến máy tính Hiện nay, One Drive cũng cung cấp cho người dùng dung
lượng lưu trữ miễn phí lớn trên đám mây Nó được tích hợp trên hầu hết các hệ điều
hành của Microsoft Đặc điểm nổi bật là có thể kết hợp với ứng dụng văn phòng
Microsoft Office để hỗ trợ chỉnh sửa văn bản trực tuyến
c) Dropbox
Là sản phẩm được cung cấp bởi hãng Dropbox – một nhà cung cấp dịch vụ lưu
trữ tập tin Đây là một sản phẩm được yêu thích nhất nhờ sự đơn giản và tính tin cậy
Dropbox tương thích hầu hết các hệ điều hành và có tính năng đồng bộ trên tất cả các
thiết bị rất thuận tiện cho quá trình sử dụng
d) SugarSync
SugarSync là một dịch vụ sao lưu trực tuyến cũng như đồng bộ hóa được cung
cấp bởi hãng SugarSync – một nhà cung cấp dịch vụ lưu trữ đám mây SugarSync có
thể sao lưu dữ liệu từ bất kì thư mục nào trên đĩa cứng, ngoài ra còn có thể chia sẻ với
người khác SugarSync cung cấp một số tính năng tiện dụng để chuyển nhạc và hình
ảnh giữa các thiết bị di động và máy tính
e) iCloud
iCloud là sản phẩm được cung cấp dành riêng cho các thiết bị Apple – một tập
đoàn công nghệ máy tính của Mỹ, chuyên cung cấp các sản phẩm như máy tính cá
nhân, phần mềm, phần cứng, thiết bị nghe nhạc và nhiều thiết bị đa phương tiện khác
iCloud cung cấp cho người dùng của Apple cách thức mới để lưu trữ và truy cập dữ
liệu Ngoài ra iCloud còn cho phép đồng bộ hóa tự động giữa các thiết bị của Apple
dựa trên thời gian thực theo cơ chế push mang đến cho người dùng những tiện ích to
lớn
Trang 222.2 Các công nghệ liên quan điện toán đám mây
2.2.1 Tổng quan về Openstack và triển khai Openstack
Hiện nay có khá nhiều các công ty, tổ chức đang nghiên cứu phát triển công
nghệ điện toán đám mây để phục vụ nhu cầu của tổ chức mình cũng như cung cấp ra
bên ngoài để mọi người cùng sử dụng Cùng với trào lưu đó thì NASA và Rackspace
cũng đã nghiên cứu và triển khai thành công hệ thống điện toán đám mây với tên gọi là
OpenStack Và cũng để cho công nghệ điện toán đám mây với OpenStack phát triển
hơn thì OpenStack được xây dựng dưới dạng phần mềm mã nguồn mở Hiện tại, với
phần mềm mã nguồn mở này, thì đám mây dựa trên mã nguồn mở OpenStack đã được
rất nhiều cá nhân tổ chức phát triển và được ứng dụng rộng rãi ở nhiều tổ chức lớn
Trong chương này, đồ án sẽ trình bày những nội dung cơ bản nhất về phần mềm mã
nguồn mở OpenStack Đồng thời trình bày quá trình xây dựng thử nghiệm đám mây
riêng OpenStack trên môi trường giả lập VMWare
Như đã nói AWS chính là nguồn cảm hứng tạo nên OpenStack ngày nay, AWS
là nền tảng đóng của Amazon và OpenStack là một nền tảng mở dành cho tất cả các
công ty và cộng đồng sử dụng Mục đích của OpenStack là cung cấp cho người dùng
khả năng xây dựng một hạ tầng cho cả đám mây riêng và đám mây công cộng Đã có
nhiều công ty sử dụng OpenStack để xây dựng dịch vụ và phục vụ nhu cầu của chính
họ hoặc cho thuê như chính NASA và Rackspace
2.2.2 Openstack
Openstack là một nền tảng phần mềm mã nguồn mở dùng để triển khai điện toán
đám mây, bao gồm đám mây riêng và đám mây công cộng Nó cung cấp giải pháp xây
dựng hạ tầng điện toán đám mây đơn giản, có khả năng mở rộng và nhiều tính năng
phong phú, hỗ trợ quản trị các tài nguyên trong mô hình điện toán đám mây Một trung
tâm lưu trữ dữ liệu lớn có thể được quản lý thống nhất khi sử dụng Openstack, từ các
đơn vị máy xử lý, đơn vị lưu trữ đến tài nguyên mạng có thể dễ dàng được kiểm soát
thông qua một giao diện đồng nhất
Trang 232.2.3 Mục đích và những thành phần của Openstack
Mục đích của Openstack dùng để tạo ra các máy ảo chạy các ứng dụng bên
trong máy ảo Các máy ảo cũng có các thành phần giống như các máy vậy lý như
laptop, PC, Server… như chúng ta đã biết các thành phần cơ bản của 1 cái laptop gồm:
màn hình, CPU, RAM, Ổ cứng, card mạng và bàn phím Thì trên máy ảo cũng gồm các
thành phần tương tự như thế, bao gồm 4 thành phần cơ bản sau đây: Dashboard,
Compute, Networking, Storage
Hình 2.7 Mô hình thành phần cơ bản của Openstack [6]
Dashboard (Horizon): giống như là màn hình của laptop cho phép người dùng
có thể tương tác dễ dàng với máy ảo được tạo ra Mục đích của nó để cung cấp
giao diện đồ họa (trang web) cho người dùng cuối được tương tác với hệ thống
của Openstack để tạo, quản lý và truy cập máy ảo
Compute - Nova: là nơi cung cấp môi trường thực hiện ảo hóa hay gọi là thành
phần quản lý hạ tầng tài nguyên Sử dụng các phần mềm ảo hóa để cung cấp các
máy ảo (Instance)
Giống như là CPU và RAM của laptop Mục đích của nó để xử lý và tính toán các hoạt động của máy tính
Tùy thuộc vào các yêu cầu chức năng của hệ thống mà chúng ta sẽ chọn ra loại Hypervisor thích hợp
Networking - Neutron: Là giống như card mạng của laptop dùng để tạo
Network topology để cung cấp Network L2, L3, Vlan, Loadbalance, VPN và
FireWall
Mục đích của Networking - Neutron để kết nối các máy ảo giao tiếp
Trang 24với nhau như:
Tạo ra các Switch ảo và các Router ảo
Các máy ảo được tạo ra từ hệ thống Openstack có thể kết nối với nhau trong cùng một mạng LAN (Layer 2 trong mô hình OSI) có thể nói chuyện được với nhau Các mạng LAN này được tạo ra từ Switch ảo
Các máy ảo trong 2 mạng LAN khác nhau (VLan) nói chuyện thông qua một router ảo đứng trung gian
Ngoài ra, giúp cho các máy ảo bên trong hệ thống Openstack kết nối
và giao tiếp với bên ngoài internet thông qua các router ảo
Storage : giống như là ổ cứng của laptop Mục đích của nó chính là để lưu dữ
liệu và thông tin
Your applications: Các ứng dụng dịch vụ (database, web app, ) Sử dụng hạ
tầng của Openstack để chạy
2.2.4 Kiến trúc của Openstack
Trang 25
Hình 2.8 Mô hình Kiến Trúc của Openstack [7]
Mọi người quan sát ở vùng giữa của hình trên, có thành phần VM (virtual machine)
Có 4 mũi tên chỉ vào nó, ý nghĩa là các thành phần cơ bản kết hợp lại tạo nên một cái
máy ảo
Giải thích qua về mô hình hoạt động:
Đầu tiên người quản trị sẽ truy cập vào horizon (màn hình giao diện web) như
những hệ thống bình thường khác, để vào quản trị được hệ thống thì phải qua
bước xác thực, sử dụng Keystone
Nếu người dùng xác thực thành công, tùy vào quyền của từng người quản trị mà
họ có thể được quản lý các tài nguyên, dịch vụ tương ứng Ở đây, ta ví dụ người
dùng có quyền cao nhất (Administrator)
Mục đích người quản trị truy cập vào hệ thống này để làm gì?
o Để tạo và quản lý máy ảo sử dụng để chạy các ứng dụng Vậy để tạo
được máy ảo thì cần làm như: Ở đây ta ví dụ người dùng muốn sử dụng
một máy ảo với cấu hình: Chạy Ubuntu 16.04, RAM 2GB, 2 coresCPU,
40 GB ổ cứng, sử dụng lớp mạng private và một IP public thuộc lớp mạng Vậy thì:
Thành phần Neutron chính là nơi tạo ra các lớp mạng riêng ảo
(virtual switch) Và tạo ra một router ảo (virtual router) để cho phép kết nối (NAT) giữa các máy bên trong mạng riêng ảo với các mạng bên ngoài internet
Thành phần Nova là thành phần quan trọng nhất của Openstack
Vì nó là nơi cung cấp RAM, CPU cho máy ảo: Ở đây chúng ta cấp RAM 2GB và CPU 2 cores
Thành phần Glance chính là nơi cung cấp các file images để chạy
hệ điều hành Cho nên hình dung nó giống như là một file ISO, hay là một đĩa CD, USB để cài đặt hệ điều hành cho máy tính
Thành phần Cinder: Cung cấp các ổ đĩa ảo gắn ngoài trên các
máy ảo Hình dung nó như là một cái USB hoặc là một ổ rời mà mọi người hay dùng để lưu trữ dữ liệu backup
Thành phần Swift: cung cấp dịch vụ lưu trữ theo đối tượng
(Object storage ) Cho phép tải lên, tải xuống và lưu trữ các file (object) trên hệ thông storage riêng biệt Hệ thông swift phục vụ việc truyền tải, tải lên, tải xuống file dưa trên giao thức phổ biến HTTP Người dùng cuối sử dụng dịch vụ Swift sẽ giống như đang
sử dụng một dịch vụ chia sẻ file phổ biến trên mạng internet
Ngoài ra còn có một số tính năng khác:
o Ceilometer:
Dùng để thống kê các tài nguyên mà người dùng sử dụng, các máy
ảo sử dụng
Trang 26 Giám sát mức độ sử dụng tài nguyên trong OpenStack
o Heat:
Dùng để tạo các tài nguyên, máy ảo dựa vào các template có sẵn
do người dùng tự viết ra (Có thể tạo nhiều máy ảo cùng một lúc)
Tự động tính toán và sử dụng các tài nguyên: Compute, Network
2.2.5 Mô hình thiết kế
Openstack đưa ra 2 ví dụ về mô hình networking: Provider networks và
Self-service networks
Về cơ bản nó giống nhau nên ở đây tôi xin được phép trình bày về mô hình
networking: Self-service networks
Hình 2.9 Mô hình thiết kế của Openstack [8]
Chú ý: Ở đây, hãy hiểu khái niệm node như là một cái server, máy tính,
Trang 27 Core component: Là các thành phần lõi, không thể thiếu
Optional component: Là các thành phần có cũng được mà không có cũng
chẳng sao
Vậy thì từ cái hình ở trên, để thiết kế ra một hệ thống Openstack multi nodes cơ
bản, chúng ta sẽ phải cần phải có 2server core component: Controller node và Compute
Network Time Service (NTP): Sử dụng để đồng bộ thời gian giữa các nodes
Identity (Keystone): Sử dụng để xác thực khi người dùng muốn truy cập vào
hệ thống Openstack
Image service (Glance): Cung cấp và quản lý các image để chạy hệ điều hành
cho máy ảo
Compute management: Tạo và quản lý các máy ảo (RAM, CPU) bên trong hệ
thống Openstack
Networking management: Tạo và quản lý các switch ảo, router ảo, các lớp
mạng cung cấp bên trong hệ thống Openstack
Networking ML2-plugin: Kiểu như để hỗ trợ tạo các switch ảo
Linux Network Utilities:
Networking Linux bridge agent: Kiểu như nó tạo ra một cái bridge network để
cho phép mạng bên trong hệ thống Openstack có thể ra ngoài được thông qua
các card mạng thật của máy vật lý Sử dụng (Open vSwitch, brctl, )
Networking DHCP Agent: Cho phép cung cấp các IP động cho máy ảo được
Compute: Cung cấp RAM, CPU cho máy ảo
Linux network utilities:
Trang 28 Networking Linux bridge agent: Kiểu như nó tạo ra một cái bridge network để
cho phép mạng bên trong hệ thống Openstack có thể ra ngoài được thông qua
các card mạng thật của máy vật lý Sử dụng (Open vSwitch, brctl, )
Telemetry agent:
o Efficiently polls metering data related to OpenStack services
o Collects event and metering data by monitoring notifications sent from services
o Publishes collected data to various targets including data stores and message queues
o Creates alarms when collected data breaks defined rules
2.2.6 Cài đặt, triển khai OpenStack
Trong phần này của đồ án sẽ trình bày tóm tắt về quá trình cài đặt triển khai
OpenStack trong phòng thí nghiệm
Quá trình cài đặt triển khai OpenStack (phiên bản NewTon) được thực hiện trên
phần mềm VMWare Workstation 12, sử dụng hệ điều hành Ubuntu 16.04 Desktop với
2 Node là Controller Node và Compute Node Sau đó sử dụng Router để cấp cúng
mạng cho 2 Node
Điều kiện cấu hình các máy như sau:
Controller Node: : Chạy các dịch vụ quản lý (keystone, horizon,…) mà cần thiết cho
OpenStack hoạt động
Cấu hình tối thiểu HDD 80GB trở lên, RAM 5GB trở lên, CPU 02 nhân (có tích vào
các chế độ ảo hóa), có 2 card mạng đó là eth0 - chế độ bridge, và eth1 – chế độ
vmnet2–Hostonly)
Với IP eth0 chế độ bridge : 192.168.1.10/24
Với IP eth1 chế độ Vmnet2 : 10.0.0.10/24
Compute Node: : Cung cấp RAM, CPU cho máy ảo và Sử dụng lớp ảo hóa loại
QEMU để chạy các máy ảo trên các phần cứng vật lý
Dung lượng HDD 60GB, RAM 3GB, CPU 2 nhân (có lựa chọn chế độ ảo hóa), có 2
card mạng đó là eth0 chế độ VMnet2-Hostonly và eth1 chế độ Bridge
Với IP eth0 chế độ Bridge : 192.168.1.11/24
Với IP eth1 chế độ Vmnet2 :10.0.0.11/24
Router : Chạy các dịch vụ mạng , NAT các IP nội bộ ra bên ngoài, cấp phát DHCP từ
192.168.1.20 – 192.168.1.100 để tạo Foating IPs cho các máy ảo nằm trong Openstack
có thể ra ngoài, kết nối các máy ảo với mạng bên ngoài
Với IP Router bên ngoài 131.172.1.100 (WAN)
Với IP Router nội bộ 192.168.1.1 (LAN)
Trang 29Hình 2.10 Mô Hình Cài Đặt Openstack
2.2.7 Trang web login Openstack và tạo ra các máy ảo bằng giao diện Openstack
Đây là trang web login hoặc gọi là dashboard xác thực vào hệ thống Opesntack
để tạo ra các máy ảo và quản lý các máy ảo
Hình 2.11 Trang Web đăng nhập vào hệ thống Openstack
Trang 30 Đây là máy ảo đã tạo ra để làm máy chủ dịch vụ lưu trữ đám mây
Hình 2.12 máy ảo
2.2.8 Đánh giá giải pháp
Sau quá trình cài đặt, cấu hình và sử dụng Openstack thành công, giải pháp cho phép:
- Có thể tạo ra và cung cấp các máy ảo cho người sử dụng
- Quản lý được các tài nguyên cấp phát cho các máy ảo
- Người dùng có thể cấu hình các dịch vụ
- Thao tác cấu hình hệ thống bao gồm cấu hình hạ tầng ảo hóa, cấu hình
mạng, cấu hình cấp phát tài nguyên
- Hệ thống cung cấp giao diện quản trị tương đối trực quan, đầy đủ, dễ dàng
cho người sử dụng
2.2.9 Đề xuất phát triển nâng cao hiệu năng của giải pháp
Hoàn thiện và bổ sung một số chức năng cho giải pháp hiện tại như:
Các chức năng về quản lý tài nguyên ảo hóa:
Cấp phát động tài nguyên (auto scaling): Cho phép quản lý cấp phát động tài
nguyên cho máy ảo (RAM, CPU), khi máy ảo dùng hết tài nguyên, hệ thống sẽ
cung cấp cơ chế cho phép máy ảo dùng hết tài nguyên có thể yêu cầu cấp phát
thêm tài nguyên để sử dụng
Truy cập từ xa vào an toàn: Người dùng được cung cấp cơ chế truy cập an toàn
để có thể truy cập từ xa vào giao diện máy ảo của mình Toàn bộ thông tin trên
đường truyền sẽ được mã hóa
Tự động khôi phục khi hệ thống có lỗi: Toàn bộ máy chủ vật lý,máy ảo sẽ tự
động bật nếu gặp sự cố như mất điện Mô hình ứng dụng điện toán đám mây cho
hệ thống quản lý trong quân đội
Trang 31 Các chức năng về networking:
Tường lửa: Hệ thống cho phép sử dụng tường lửa mềm hoặc tích hợp một tường
lửa phần cứng để quản lý lưu lượng mạng giữa các máy ảo và các máy ảo với
Cung cấp module tính cước sử dụng máy ảo, lưu trữ , băng thông
2.3 Tổng quan về lưu trữ trên điện toán đám mây
Hệ thống lưu trữ Ceph có thể được sử dụng với các mục đích khác nhau và cung
cấp nhiều hình thức lưu trữ như: Ceph Object Storage, Ceph Block Storage 2 hình
thức lưu trữ này thường xuất hiện trong các nền tảng điện toán đám mây (ví dụ
Openstack), Ceph FileSystem, hoặc cho bất kỳ mục đích nào liên quan đến lưu trữ
Điểm chung trong việc triển khai Ceph đều bắt đầu từ việc xây dựng các Ceph
node, kết nối hệ thống mạng và xây dựng cụm lưu trữ Ceph Hệ thống hạ tầng lưu trữ
Ceph cần ít nhất 1 Ceph Monitor và 2 Ceph OSD Daemons Ngoài ra, Ceph metadata
server chỉ cần thiết khi trong hệ thống có Ceph Filesystem clients
2.3.1 Giới thiệu lưu trữ Ceph
Ceph là giải pháp mã nguồn mở để xây dựng hạ tầng lưu trữ phân tán, ổn định,
độ tin cậy và hiệu năng cao, dễ dàng mở rộng Với hệ thống lưu trữ được điều khiển
bằng phần mềm, Ceph cung cấp giải pháp lưu trữ theo đối tượng (Object), khối (Block)
và tệp dữ liệu (File) trong một nền tảng đơn nhất Ceph chạy trên nền tảng điện toán
đám mây với các thiết bị phần cứng ổn định và tiên tiến nhất, giúp tiết kiệm chi phí và
sử dụng dễ dàng với Linux Kernel
Trang 32Hình 2.13 Ceph Storage Cluster 0
Ceph lưu trữ dữ liệu của client dưới dạng các objects trong các pool lưu trữ Ceph
sử dụng thuật toán CRUSH, trong đó Ceph sẽ tính toán placement group nào sẽ lưu trữ
object và tính toán Ceph OSD Daemon nào sẽ lưu trữ placement group CRUSH
algorithm cho phép lưu trữ Ceph có khả năng mở rộng, tự cân bằng (relalance) và
recovery tự động
2.3.2 Các hướng phát triển sử dụng Ceph
- Sử dụng để lưu trữ thay thế ổ đĩa server thông thường
- Sử dụng để backup, lưu trữ an toàn
- Sử dụng để thực hiện triển khai các dịch vụ High Avaibility khác như Load
Balancing for Web Server, Database Replication…
- Xây dựng storage giải quyết bài toán lưu trữ cho dịch vụ Cloud hoặc phát triển
lên Cloud storage (Data as a service)
2.3.3 Các hệ thống lưu trữ của Ceph
Trang 33Hình 2.14 Hệ thống lưu trữ Ceph 0
Ceph cung cấp khả năng truy cập liên tục tới các Object bằng cách sử dụng
ngôn ngữ bản địa: binding hoặc radosgw, giao diện REST tương thích với các ứng
dụng được viết cho S3 và Swift.Thư viện phần mềm của Ceph cung cấp các ứng dụng
cho khách hàng khả năng truy cập trực tiếp tới hệ thống lưu trữ dựa trên RADOS
Object và cung cấp nền tảng cho một số tính năng cao cấp của Ceph, bao gồm RADOS
Block Device (RBD), RADOS Gateway và Ceph File System
Object storage là một kiểu lưu trữ dữ liệu theo đối tượng Mục đích sinh ra để dễ
dàng quản lý dữ liệu hơn Ví dụ: khi mà chúng ta lưu trữ dữ liệu trên Volumes hoặc
Folder, nếu số lượng file ít thì dễ quản lý nhưng khi số lượng file nhiều thì rất khó quản
lý Cho nên Object storage sử dụng thành phần metadata để giải quyết bài toán này
Block storage là định dạng lưu trữ trong môi trường doanh nghiệp Ceph Block
Divce có tên là RADOS block device (RBD), cung cấp block storage cho hypervisor và
máy ảo khi Ceph block device được mount vào máy ảo, nó có thể được sử dụng như
một phân vùng RAW hoặc có thể định dạng theo các loại filesystem phổ biến
Trang 34RBD sử dụng thư viện librbd để tận dụng các tiện ích của RADOS và cung cấp tính tin
cậy, phân tán và khả năng lưu trữ dựa trên object Khi client ghi dữ liệu trên Ceph bằng
cách sử dụng Block Device, Ceph sẽ tự động đồng bộ, tạo bản sao dữ liệu trên Cluster
giúp tăng hiệu năng và độ tin cậy dữ liệu Client có thể ghi, nối thêm, cắt xén các
object đang có Do đó RBD là giải pháp lưu trữ tối ưu cho volume máy ảo
Ceph RBD đang thay thế giải pháp lưu trũ SAN bằng cách cung cấp các tính
năng cao cấp như thin provision, copy-on-write snapshot và clone, reate-only snapshot,
hỗ trợ các nền tảng đám mây như Openstack và Cloudstack
Ceph cung cấp một POSIX-compliant network file system, nhằm mang lại hiệu
suất cao, lưu trữ dữ liệu lớn và tương thích tối đa với các ứng dụng hiện tại
Hệ thống lưu trữ Ceph cung cấp một số tính năng vượt trội hơn so với nhiều hệ
thống lưu trữ Object hiện nay: Ceph cung cấp giao diện File System truyền thống với
POSIX Hệ thống lưu trữ là một cải tiến đáng kể, nhưng chúng vẫn còn phải thực hiện
nhiều hơn so với các File System truyền thống Khi yêu cầu về lưu trữ tăng lên trong
các ứng dụng hiện tại, tổ chức có thể cấu hình các ứng dụng hiện tại để sử dụng Ceph
File System Có nghĩa là người dùng có thể chạy một cụm lưu trữ cho Object, Block và
lưu trữ dữ liệu dựa trên File
2.3.4 Các Node trên hệ thống lưu trữ Ceph
Hệ thống Ceph là một mô hình có thể chịu lỗi, tức là cho phép chạy ít nhất 3
Node trở lên, trong đó Node thứ nhất gọi là admin, Node thứ 2 gọi là máy chủ sao lưu
và Node còn lại gọi là máy chủ monitor để theo dõi trạng thái hoạt động của mỗi node
Mô hình này cho phép giải quyết bài toán về thời gian downtime của hệ thống khi có
sự cố xẩy ra do phần cứng hoặc hệ điều hành server bị hỏng thì sẽ không ảnh hưởng tới
việc kết nối, làm việc của nhân viên đang chỉnh sửa dữ liệu Các Node trong hệ thống
lưu trữ ceph bao gồm 3 Node chính:
Admin Node
Monitor Node
OSD Node
2.3.4.1 Object Storage Daemon (OSD)
OSD là thiết bị lưu trữ dữ liệu trong ceph cluster Chúng lưu trữ dữ liệu dưới
dạng các object trên ổ đĩa vật lý Một ceph cluster có nhiều OSD Mỗi object trong
OSD gồm một primary copy, secondary copy và tertiary copy Mỗi object được phân
tán qua các cluster node làm cho tính có sẵn tăng cao và chịu được nhiều lỗi
Secondary OSD và tertiary OSD sẽ nằm dưới sự kiểm soát của OSD chính Khi OSD
Trang 35chính thất bại, Secondary OSD sẽ được thăng cấp lên thành OSD chính Các bản sao
Secondary OSD mới sẽ được tạo ra trong quá trình khôi phục này
Khi khách hàng muốn lưu trữ hoặc truy xuất dữ liệu, khách hàng yêu cầu cluster map
từ các monitor node và sau đó chúng tương tác trực tiếp với các OSDs Cơ chế này
cung cấp giao dịch dữ liệu rất nhanh Sự tuần hoàn của mỗi OSDs: nếu có một OSD bị
lỗi, các OSD khác sẽ thông báo cho monitor rằng OSD này đã bị tắt Sau đó, monitor
sẽ tạo ra monitor map theo dõi OSD mới nào bị lỗi và các OSD còn lại sao chép dữ liệu
trên OSD bị lỗi đó Secondary OSD sẽ trở thành OSD chính Những OSD có kiểm tra
sự tuần hoàn của các OSDs khác 6 giây 1 lần Nếu một OSD lân cận không hiển thị sự
tuần hoàn trong vòng 20 giây, nó sẽ cho rằng osd thất bại và báo cáo osd này vào Ceph
monitor node Sau đó, monitor node sẽ cập nhật cluster map
Sơ đồ dưới đây cho thấy kiến trúc của OSD
Hình 2.15 kiến trúc OSD đồng bộ [9]
2.3.4.2 Monitor (MON)
Ceph monitor là thành phần theo dõi trạng thái của toàn bộ ceph cluster Ceph
monitor sẽ duy trì bản sao chính của cluster map Ceph monitor không cung cấp dữ liệu
cho khách hàng Khách hàng liên hệ với monitor để lấy bản sao của cluster map
Như vậy, các monitor không cung cấp hoặc lưu trữ dữ liệu cho khách hàng
Chức năng của monitor node là duy trì cluster map và cung cấp monitor map cho các
node khác trong cluster
Client
Osd.0 (Primary OSD)
Write Write
Write
OSD đồng bộ
Trang 36Cluster map bao gồm monitor map, OSD map, placement group (PG) map, Crush map
và MDS map Như vậy, các node sẽ báo cáo trạng thái cho Monitor và chia sẻ các
thông tin về sự thay đổi của chúng như sau:
- Monitor map
Monitor map chứa các thông tin về vị trí bao gồm cluster ID, địa chỉ, số cổng của
các monitor node
- OSD map: OSD map lưu trữ các thông tin về OSDs như đếm, trạng thái, trọng
lượng, số replicas và danh sách OSD Ngoài ra, cũng có thông tin khác như tên
pool, Pool ID, loại pool và các PGs
- PG map: PG map là giữ thông tin ID PGs, phiên bản PG, sự kiện cuối của PG,
2.3.4.3 Admin node (ceph-deploy)
Là công cụ hỗ trợ cài đặt và cấu hình hệ thống Ceph Đây là thành phần không
bắt buộc trong hệ thống
2.3.5 Các thành phần bên trong ceph
2.3.5.1 RADOS (Reliable Autonomous Distributed Object Storage )
RADOS chịu trách nhiệm về tất cả các tính năng của Ceph RADOS có một
lớp là cơ sở cho tất cả các hoạt động trong một cluster Ceph Khi có một yêu cầu viết
được thực hiện cho lưu trữ Ceph Cluster, thuật toán CRUSH tính vị trí để ghi dữ liệu
Lớp RADOS xử lý thông tin này và lưu trữ dữ liệu phù hợp trong các OSD trong
Cluster RADOS phân phối dữ liệu đến tất cả các node trong cluster dựa trên thuật toán
CRUSH RADOS sao chép các Object, tạo ra bản sao, lưu trữ chúng vào các vùng khác
nhau RADOS làm việc cung cấp độ tin cậy của dữ liệu dựa trên cấu hình nhân bản
được cấu hình RADOS lưu trữ dữ liệu dưới dạng các Object trên các Pool Hình dưới
đây cho thấy các thành phần của RADOS RADOS Cluster bao gồm osds và màn hình
Trang 37Hình 2.16 Thành Phần Rados Cluster [9]
2.3.5.2 Object
Object là đại diện cho dữ liệu Object thường bao gồm các thành phần data và metadata
đi kèm, cung cấp một số nhận dạng duy nhất trên Cluster Mã nhận dạng duy nhất đảm
bảo rằng không có Object nào trùng ID trong toàn bộ lưu trữ ceph
Trong Object, dữ liệu được lưu trữ với metadata phong phú như lưu trữ thông tin về
bối cảnh và nội dung dữ liệu Ví dụ sau đây của lưu trữ một hồ sơ bệnh nhân được goi
như là một Object:
Hình 2.17 Thành Phần Object [9]
Bất kỳ ứng dụng nào cũng có thể lấy dữ liệu từ một đối tượng dựa trên Object
ID của nó thông qua việc sử dụng các giao diện RESTful API Một Object ID đóng vai
trò tương ứng với Object của nó, tương tự như sự hoạc động của URL trên Internet
Các Object được lưu trữ trong thiết bị lưu trữ object (OSD) theo mô hình sao chép,
cung cấp tính sẵn sàng cao (HA) Khi lưu trữ Ceph Cluster nhận được yêu cầu ghi dữ
Trang 38liệu từ các máy khách, nó sẽ lưu dữ liệu dưới dạng các Objects Sau đó, OSD ghi dữ
liệu vào tệp tin trong hệ thống tệp OSD
2.3.5.3 Crush
Crush là thuật toán quản lý về việc di chuyển các PGs qua ceph cluster theo khả
năng mở rộng băm của lưu trữ ceph cluster
Phương pháp lưu trữ dữ liệu bao gồm bảng tra cứu metadata metadata là dữ liệu
về dữ liệu, tức là metadata định danh cho các dữ liệu Nó lưu trữ thông tin như vị trí
của dữ liệu Khi có dữ liệu mới được thêm vào, bảng metadata được cập nhật thêm
metadata của dư liệu mới đó, bảng metadata sẽ giúp tìm kiếm vị trí của tệp tin Sau thủ
tục này, dữ liệu sẽ được lưu trữ trên đĩa Đó là nhiệm vụ thuật toán CRUSH để tính
toán metadata và vị trí của Object
- Crush Lookup
Crush Lookup là thuật toán để tính vị trí PG và OSD cần lưu dữ liệu Quá trình tính
toán này được thực hiện ở khách hang
Ví dụ: tất cả dữ liệu được lưu trữ dưới dạng object trong ceph cluster Khách hàng sê
liên lạc với ceph monitor để lấy bản sao của cluster map Cluster map giúp khách hàng
để kiểm tra trạng thái của cluster Sau đó, dữ liệu sẽ được chuyển đổi thành các object
Object sẽ được xác định tên pool và object ID Trong pool chứa số PGs Object được
xác định với số nhóm vị trí để tính toán nhóm vị trí cuối cùng object được lưu trữ Sau
khi nhóm vị trí được xác định, PG xác định OSD chính mà object được lưu trữ Sau khi
nhận được OSD ID khách hàng có thể liên hệ trực tiếp với OSD để lưu trữ hoặc truy
xuất dữ liệu Sau khi dữ liệu được ghi vào OSD chính hoàn thành OSD sẽ sao chép vị
trí của các PGs và OSDs dự phòng và các bản sao object vào node khác để đảm bảo
sao chép dữ liệu và tính sẵn cao Sơ đồ dưới đây biểu diễn crush lookup