Tải bản đầy đủ (.pdf) (23 trang)

Xây dựng phương pháp kháng lỗi chủ động trong Cloud Computing (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (880.29 KB, 23 trang )

1

MỞ ĐẦU
Những năm gần đây rất nhiều nhà cung cấp dịch vụ
cloud IaaS (Infrastructure as a Service) đã ra đời và cung cấp
cho rất nhiều khách hàng. Vấn đề bảo đảm chất lượng dịch vụ
cho khách hàng (Service Level Agreement) được quan tâm
hàng đầu. Đặt ra nhu cầu xây dựng một hệ thống kháng lỗi
(fault tolerance) hiệu quả trong cloud computing.
Xuất phát từ nhu cầu thực tế đó, đã có nhiều nghiên cứu
về các phương pháp kháng lỗi trong Cloud IaaS khác nhau như
hướng kháng lỗi bị động hoặc hướng kháng lỗi chủ động.
Bài toán đặt ra là làm thế nào để xây dựng một phương
pháp kháng lỗi hiệu quả: có độ chính xác cao, và phát hiện lỗi
nhanh nhất.
Hướng tiếp cận được giải quyết như sau: Nghiên cứu
các loại lỗi sảy ra trong cloud IaaS, mô hình hóa các lỗi trong
cloud Iaas, nghiên cứu phương pháp nhận dạng lỗi dựa trên
tình trạng của hệ thống, cho phép phát hiện chính xác và nhanh
chóng các lỗi xảy ra trong hệ thống, sử dụng phương pháp di
trú ưu tiên để di trú những máy ảo sang những máy chủ ở trạng
thái bình thường.
Có nhiều phương pháp nhận dạng lỗi trong cloud IaaS
như logic mờ, cây quyết định, mạng noron, máy vector hỗ trợ


2

(SVM). Qua tìm hiểu, thấy rằng kỹ thuật SVM có ưu điểm là
cho độ chính xác rất cao so với các phương pháp kể trên, từ đó
đề xuất nghiên cứu áp dụng kỹ thuật SVM để nhận dạng lỗi


trong cloud IaaS.
Từ kết quả nghiên cứu về phương pháp nhận dạng qua
SVM và những lỗi trong cloud IaaS và mô hình lỗi trong cloud
IaaS để cài đặt, xây dựng thử nghiệm chương trình Kháng lỗi
chủ động trên cloud IaaS.
Nội dung luận văn gồm 4 chương:
-

Chương 1: Tổng quan về kháng lỗi trong Cloud IaaS: Trình
bày sơ lược về các lỗi và ưu nhược điểm của các phương
pháp kháng lỗi trong cloud Iaas

-

Chương 2: Phương pháp kháng lỗi chủ động trong Cloud
Computing: Trình bày về các phương pháp kháng lỗi chủ
động trong Cloud Computing

-

Chương 3: Sử dụng Support Vector Machine trong kháng
lỗi: Trình bày lý thuyết về Support Vector Machine,
phương pháp đề xuất và chi tiết xây dựng hệ thống kháng
lỗi trong điện toán đám mấy IaaS


3

Chƣơng 1 -


TỔNG QUAN VỀ

KHÁNG LỖI TRONG CLOUD
1.1. Giới thiệu
Kháng lỗi là một trong những vấn đề nghiên cứu quan
trọng của cloud computing. Một hệ thống cloud computing có
khả năng chịu lỗi có thời gian hoạt động rất cao, có khả năng
hoạt động tốt bất chấp lỗi. Đó có thể là các loại lỗi:
-

Lỗi mạng (Network fault): lỗi liên quan tới mạng lưới như

-

Lỗi do phần cứng: Loại lỗi do các thiết bị phần cứng của
server gây ra như

-

Lỗi truyền tải media: lỗi do media bị lỗi trong quá trình
truyền hoặc nhận

-

Lỗi bộ xử lý: lỗi xảy ra trong bộ xử lý vì hệ điều hành bị lỗi

-

Lỗi tiến trình: Một lỗi do hết tài nguyên hoặc bug của phần
mềm


-

Lỗi dịch vụ hết hạn: hết thời gian phục vụ của một tài
nguyên.
Có hai hướng chính trong nghiên cứu về kháng lỗi là:

-

Kháng lỗi bị động (reactive fault tolerance): là kỹ thuật
giảm ảnh hưởng sau khi sảy ra lỗi trên hệ thống.

Các kỹ thuật kháng lỗi:


4

Hình 1.1: Các phƣơng pháp kháng lỗi

1.2. Thách thức trong việc kháng lỗi trong
cloud computing
Để kháng lỗi trong cloud computing cần phải xem xét
và phân tích cẩn thận bởi vì sự phức tạp của hệ thống và độ tin
cậy của các phương pháp kháng lỗi cùng với những lý do như:
hệ thống sẽ giải quyết được những loại lỗi gì, có khả năng tích
hợp thành một dịch vụ…

1.3. Các yếu tố đo lƣờng các phƣơng pháp
kháng lỗi cho cloud computing
Các phương pháp, thuật toán kháng lỗi đã có trước đây

trong cloud computing thường xem xét các tham số khác nhau


5

như: thông lượng (throughput), thời gian phản hồi (responsetime), khả năng mở rộng, hiệu năng, khả năng sẵn sàng, độ khả
dụng, độ tin cậy, độ an toàn, và phí tổn kết hợp, hiệu năng, chi
phí xây dựng vận hành…

1.4. Kết luận chƣơng 1
Hiện nay cloud computing đang phát triển mạnh nhưng
các mô hình, phương pháp kháng lỗi cho cloud computing vẫn
còn có những mặt hạn chế. Vì thế các nhà nghiên cứu đang tiếp
tục phát triển thêm các phương pháp để làm tăng tính hiệu quả
của việc kháng lỗi.


6

Chƣơng 2 - PHƢƠNG PHÁP KHÁNG LỖI
CHỦ ĐỘNG TRONG CLOUD COMPUTING
2.1. Giới Thiệu
2.1.1. Hồi Sinh phần mềm
Là phương pháp thực hiện roll back những chương
trình chạy lâu ngày (continuously running application) định kỳ
để tránh lỗi trong tương lai. Phương pháp này cũng không được
dùng để thay thế các phương pháp kháng lỗi khác, nó được bổ
sung vào các phương pháp kháng lỗi bị động để hệ thống
kháng lỗi tốt hơn.


2.1.2. Self-healing
Self-healing là khả năng tự động phục hồi từ một lỗi
hoặc một tập hợp các lỗi, cố gắng giảm thiểu ảnh hưởng của
lỗi. Nó có thể đạt được bằng các kiến trúc tự nhiên hoặc bởi
ứng dụng các thủ tục phục hồi đặc biệt. Những thủ tục điển
hình trong việc giám sát qua từng chu kỳ. Hệ thống có selfhealing có khả năng tự phát hiện lỗi và phục hồi lỗi. Selfhealing sử dụng thuật toán tiến hóa để nhận dạng các lỗi đánh
giá chúng và phục hồi hệ thống.

2.1.3. Di Trú Ưu Tiên
Di Trú ưu tiên là phương pháp di trú ứng dụng (tiến
trình, tác vụ, máy ảo…) từ một máy tính sắp sửa xảy ra lỗi


7

(fail) đến một máy tính an toàn. Vì tránh được lỗi nên phương
pháp này hiệu quả hơn so với phương pháp kháng lỗi bị động
(reactive) như checkpoint/restart.
Thông thường có 2 thành phần chính trong các phương
thức kháng lỗi dùng di trú ưu tiên:
-

Bộ thu thập thông tin và dự đoán lỗi

-

Bộ thực hiện việc di trú máy ảo
Có 3 hướng nghiên cứu về phương pháp phát hiện và

dự đoán lỗi:

-

Phương pháp số học:là phương pháp dựa trên những
ngưỡng cố định của những yếu tố/chỉ số ảnh hưởng đến sự
hoạt động của hệ thống.

-

Phương pháp dùng trí tuệ nhân tạo:
o Mạng chuyên gia
o Logic mờ
o Mạng Nơ ron
o Mô phỏng định lượng

2.2. Hệ phát hiện lỗi
Một hệ phát hiện lỗi là một ứng dụng hoặc một hệ
thống dùng để phát hiện máy bị lỗi. Hệ phát hiện lỗi được phân
loại như tin cậy và không đáng tin cậy dựa trên kết quả phân
tích của nó. Một hệ phát hiện lỗi tin cậy thì luôn đưa ra kết quả
chính xác.


8

Các thông số đánh giá một hệ phát hiện lỗi:
-

Đầy đủ: Khi một tiến trình fail thì tiến trình đó sau cùng
được phát hiện bởi ít nhất một process không bị lỗi khác.
Tính đầy đủ mô tả khả năng một hệ phát hiện lỗi nghi ngờ

mỗi tiến trình lỗi.

-

Tính chính xác: sự chính xác khi tiên đoán một tiến trình
lỗi. Không thể xây dựng một hệ phát hiện lỗi trong hệ
thống các thiết bị mạng thực tế với độ chính xác 100% và
đầy đủ.

-

Tốc độ: thời gian phát hiện lỗi nhỏ đến mức có thể. Tức là
thời gian xảy ra lỗi thực sự và thời gian phát hiện ra nó phải
nhỏ.
Ngoài ra còn có các tham số được đặt ra bởi Chandar và

Toug để đánh giá chất lượng dịch vụ (QoS) một hệ phát hiện
lỗi:
-

Thời gian phát hiện: thời gian mà một tiến trình bị nghi ngờ
là lỗi đến thời gian nó thực sự lỗi.

-

Thời gian lặp lại phát hiện nhầm lẫn: thời gian giữa 2 lần
phát hiện nhầm lẫn nối tiếp.

-


Thời gian nhầm: thời gian hệ phát hiện lỗi phát hiện đúng
trường hợp nhầm.

2.3 Kết luận chƣơng 2


9

Chương này trình bày tổng quan về các phương pháp
kháng lỗi chủ động và cách thức hoạt động cơ bản của phương
pháp di trú ưu tiên, và các hướng nghiên cứu nhằm cải thiện độ
chính xác và hiệu quả của việc phát hiện lỗi trong môi trường
cloud computing.


10

Chƣơng 3 - SỬ DỤNG
SUPPORT VECTOR MACHINE
TRONG KHÁNG LỖI
3.1. Tổng quan về support vecto machine
3.1.1. Giới thiệu
Support Vector Machine (SVM) là một phuơng pháp
phân lớp dựa trên lý thuyết học thống kê, được đề xuất bởi
Vapnik (1995).Để đơn giản ta sẽ xét bài toán phân lớp nhị
phân, sau đó sẽ mở rộng vấn đề ra cho bài toán phân nhiều lớp.
Ta có hàm lagrange tối ưu cho SVM:
̃( )








(

)

Để phân lớp cho 1 điểm dữ liệu mới dùng mô hình đã huấn
luyện, ta tính dấu của y(x) theo công thức:
( )



(

)

Hàm số phải thỏa các điều kiện KKT sau:
(
*

)
(

)

+


giá trị b sẽ là:


(



(

))

Trong đó Ns là tổng số support vector.


11

Tìm a theo giải thuật SMO

3.1.2. Thuật giải SMO Sequential Minimal
Optimization
Thuật toán SMO phân rã bài toán tối ưu toàn phương
thành những bài toán tối ưu toàn phương nhỏ tương tự như
phương pháp của Osuna.

3.1.3. Chiến lược phân loại đa lớp trong SVM
Có 2 chiến lược phân loại đa lớp SVM phổ biến là: One
against One (một đối một - OAO) hoặc One against Rest (một
đối với phần còn lại - OAR).

3.2. Cơ sở hạ tầng điện toán đám mây

Luận văn đã xây dựng một mô hình cloud IaaS giống
với thực tế để đánh giá phương pháp kháng lỗi:


12

Hình 3.1: Mô hình điện toán đám mấy IaaS

3.3. Lỗi trong cloud IaaS
Trong Openstack các loại lỗi có thể xảy ra tại: lỗi ở
Compute Node, lỗi trên Máy ảo (Instance), lỗi trên
Orchestrator, lỗi trên Cloud Management.

3.4. Đề xuất kháng lỗi
3.4.1. Đề xuất phương pháp dùng
support vector machine
Mô hình kháng lỗi gồm các thành phần sau:


13

Hình 3.9: Mô hình hệ thống kháng lỗi sử dụng SVM
-

Bộ Monitor (giám sát): sử dụng phần mềm Ganglia, Host
Sflow monitor data từ các node và máy ảo

-

Bộ Fault Detector (bộ phát hiện lỗi): Bộ phát hiện lỗi,

nhận data từ bộ giám sát, xử lý và dùng bộ phân loại SVM
để phân loại, phát hiện tình trạng của hệ thống, kết hợp với


14

những chính sách kháng lỗi được định nghĩa sẳn cho từng
loại lỗi để thực hiện kháng lỗi.
Bộ phát hiện lỗi: gồm có các thành phần là:
-

Module thu thập và xử lý dữ liệu từ bộ giám sát

-

Module Vector hóa: Thực hiện chuẩn hóa data
và đưa về dạng vector

-

Module SVM sẽ được khởi tạo và training, sau
đó được dùng để phân loại các vector trạng thái
hệ thống (ở module Vector hóa), cho ra kết quả
là tình trạng của đối tượng.


15

Hình 3.10: Các module chức năng trong Fault
detector


3.4.2. Xây dựng ứng dụng
-

Hệ thống Openstack cung cấp cloud IaaS, gồm có:


16

o Controller Node, Compute Node, Neutron Node,
Glance/Cinder, Keystone.

-

Module Giám sát: cho phép giám sát các máy ảo, các máy
Compute, Neutron, Controller: sử dụng Ganglia và Host
sflow.

Hình 3.12 Monitor hệ thống với Ganglia
Module thu thập dữ lieu:
Module có tác dụng kết nối với ganglia và thu thập dữ
liệu, lọc các trường dữ liệu cần thiết cho việc phân loại.
Dữ liệu output 5 trường dữ liệu tương ứng cho từng đối
tượng trong hệ thống.
Module Vector hóa:


17

Chuẩn hóa các trường dữ liệu này thành vector với giá

trị các trường nằm trong khoảng [0 1].
Module phân lớp SVM:
Module phân lớp SVM với đầu vào (input) là vector
trạng thái của đối tượng (máy chủ compute, máy ảo).
Đầu ra của module là lớp tình trạng.
Các lớp tình trạng của máy chủ vật lý như sau:
Bảng 3.2: Tình trạng và mã tình trạng đối với máy chủ vật
lý (compute, neutron, controller)
Tình Trạng

Mã Số

CPU/RAM Fault

1

IO Fault

2

Network Fault

3

OS Fault

4

Normal (tình trạng bình thường không lỗi)


5


18

Bảng 3.3: Phân loại tình trạng và mã tình trạng của
Máy Ảo
Tình trạng

Mã Số

OS Driver Fault (driver về hardware của

1

máy ảo bị lỗi)
IO Fault (lỗi về truy xuất IO, disk bị lỗi,

2

hư…)
Network Fault

3

OS Fault

4

Normal (tình trạng bình thường không


5

lỗi)
Module Chính sách kháng lỗi (Fault tolerance Policy):
-

Đầu vào là mã lỗi của đối tượng (máy ảo, máy chủ dịch
vụ), Dựa vào những rule được định nghĩa để xử lý lỗi

-

Đầu ra là những hành động xử lý lỗi (restart máy chủ,
restart dịch vụ, di trú máy ảo)


19

Hình 3.12 Monitor hệ thống với Ganglia
Bảng 3.5: Chính sách lỗi trên Compute
Hƣớng xử lý

Tình Trạng
CPU/RAM

Di trú tất cả các máy ảo sang server Normal

Fault
IO Fault


Di trú tất cả các máy ảo sang server Normal

Network

Di trú tất cả các máy ảo sang server Normal

Fault
OS Fault

Di trú tất cả các máy ảo sang server Normal

Normal
3.4.3 Kết quả đánh giá:
Phần này trình bày các bước huấn luyện, chọn tham số,
kernel và kiểm thử dùng cho thuật toán SVM:


20

Sử dụng hàm kernel đa thức: (

)

Phương thức kiểm thử tenfold – cross validation, Ta có
kết quả phân loại như sau:
Kết quả:
Kết quả phân loại với tham số C=10.8, kernel Poly và d=4.2
Bảng 3.8: Độ chính xác và độ phủ khi phân loại lỗi
với máy chủ (Compute Node)
Tình Trạng


Độ chính xác

Độ phủ

CPU/RAM Fault

0.848

0.899

IO Fault

0.878

0.825

Network Fault

0.83

0.945

OS Fault

0.872

0.885

Normal


0.953

0.805

Độ chính xác trung bình của cả 5 lỗi 87.2%
Bảng 3.9: Độ chính xác và độ phủ khi phân loại lỗi
với Máy ảo (Virtual Machine)
Tình Trạng Độ chính xác

Độ phủ

OS

0.773

Driver 0.867

Fault
IO Fault

0.822

0.893


21

Network


0.948

0.91

OS Fault

0.946

0.95

Normal

0.872

0.925

Fault

Độ chính xác trung bình của cả 5 lỗi là: 89%.
So sánh với phương pháp phân loại dùng Cây quyết định:
Bảng 3.10: Độ chính xác và độ phủ khi phân loại lỗi
với Máy Chủ – cây quyết định
Tình Trạng

Độ chính xác

Độ phủ

CPU/RAM Fault


0.753

0.814

IO Fault

0.692

0.685

Network Fault

0.852

0.831

OS Fault

0.827

0.79

Normal

0.79

0.79

Độ chính xác trung bình là: 78.2%
Bảng 3.11: Độ chính xác và độ phủ khi phân loại lỗi

với Máy ảo – cây quyết định
Tình Trạng

Độ chính xác

OS Driver Fault

0.712

Độ phủ
0.719


22

IO Fault

0.733

0.711

Network Fault

0.86

0.86

OS Fault

0.88


0.915

Normal

0.8

0.784

Độ chính xác trung bình của cả 5 lỗi là: 79.8%.
Rõ ràng phương pháp phân loại lỗi sử dụng SVM chính
xác hơn so với phương pháp sử dụng cây quyết định

3.5. Kết luận và hƣớng phát triển
Qua hơn một năm học hỏi và nghiên cứu, đặc biệt là
trong khoảng thời gian làm luận văn, tác giả đã hoàn thiện luận
văn với những mục tiêu ban đầu đề ra. Cụ thể luận văn đã đạt
được những kết quả sau:
- Trình bày cơ bản về những phương pháp kháng lỗi trong
điện toán đám mây
- Giới thiệu về phương pháp phân loại sử dụng Support
Vector Machine và bài toán phân loại nhiều lớp trong
Support Vector Machine
- Xây dựng hệ thống điện toán đám mây IaaS trên nền
Openstack và cài đặt bộ kháng lỗi cho phép kháng lỗi, đánh
giá độ chính xác của việc phân loại lỗi.
Một số vấn đề luận văn cần tiếp tục tìm hiểu và nghiên cứu
nhƣ sau:



23

- Sử dụng các phương pháp cải tiến của SVM như Fuzzy
SVM, SVM kết hợp Nearest Neighbor (SVM NN) để tăng
độ chính xác cho thuật toán phân loại
- Cần bổ sung tập dữ liệu huấn luyện cho SVM để thuật toán
trở nên tin cậy, chính xác hơn.
- Tiếp tục phát triển theo hướng trở thành một dịch vụ kháng
lỗi trong điện toán đám mây Fault tolerance as a service
- Kết hợp với phương pháp kháng lỗi dùng check point để
giảm thiểu rủi ro và tăng tính hiểu quả việc kháng lỗi.



×