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

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

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 (1.35 MB, 53 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

ĐẶNG MINH ÚC

LUẬN VĂN THẠC SĨ KỸ THUẬT

TP. HỒ CHÍ MINH – 2016


HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

ĐẶNG MINH ÚC

XÂY DỰNG PHƢƠNG PHÁP KHÁNG LỖI
CHỦ ĐỘNG TRONG CLOUD COMPUTING

Chuyên ngành: Hệ Thống Thông Tin
Mã số: 60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. VÕ THỊ KIỀU LOAN

TP.HỒ CHÍ MINH - 2016



i


LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai
công bố trong bất kỳ công trình nào khác.

TP. Hồ Chí Minh, ngày 20 tháng 6 năm 2016
Học viên thực hiện luận văn

Đặng Minh Úc


ii

LỜI CẢM ƠN
Lời đầu tiên, tôi xin cám ơn Ban Giám Hiệu Học Viện Công nghệ Thông Tin
và các thầy cô trong khoa Công Nghệ Thông Tin đã tạo điều kiện cho tôi đƣợc học
tập, truyền đạt những kiến thức và kinh nghiệm của mình, góp ý cho tôi từ những
ngày đầu làm đề cƣơng luận văn cho tới hôm nay.
Xin cám ơn TS. Võ Thị Kiều Loan, đã hƣớng dẫn tôi hoàn thành luận văn.
Xin cám ơn PSG.TS. Trần Công Hùng đã nhiệt tình chỉ bảo tôi trong quá trình học
tập và làm luận văn này. Kính chúc Cô Loan, Thầy Hùng và gia đình có nhiều sức
khỏe và thành công trong cuộc sống.
Tôi cũng xin cám ơn những lời chỉ dẫn của anh Bùi Đình Mão đã giúp tôi có
thêm cái nhìn mới, hiểu sâu hơn những vấn đề trong luận văn.
Cuối cùng, tôi xin dành lời cảm ơn cho gia đình, bạn bè và đồng nghiệp của
tôi, đã không ngừng động viên tôi, tạo điều kiện tốt nhất cho tôi đƣợc nghiên cứu
học tập trong hơn một năm qua.
TP. Hồ Chí Minh, ngày 20 tháng 6 năm 2016
Học viên thực hiện luận văn


Đặng Minh Úc


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC CÁC THUẬT NGỮ, CHỬ VIẾT TẮT ................................................v
DANH MỤC CÁC HÌNH VẼ................................................................................... vi
DANH SÁCH BẢNG .............................................................................................. vii
MỞ ĐẦU .....................................................................................................................1
Chƣơng 1- TỔNG QUAN VỀ KHÁNG LỖI TRONG CLOUD… ............................3
1.1.Giới thiệu...............................................................................................................3
1.2.Thách thức trong việc kháng lỗi trong cloud computing ......................................5
1.3.Yếu tố đo lƣờng các phƣơng pháp kháng lỗi cho cloud computing .....................6
1.4.Kết luận chƣơng 1 .................................................................................................7
Chƣơng 2- PHƢƠNG PHÁP KHÁNG LỖI CHỦ ĐỘNG TRONG CLOUD
COMPUTING .............................................................................................................8
2.1.Giới Thiệu .............................................................................................................8
2.1.1.Hồi Sinh phần mềm (software rejuvenation) ....................................................8
2.1.2.Self-Healing .......................................................................................................8
2.1.3.Di trú ƣu tiên .....................................................................................................9
2.2.Hệ phát hiện lỗi ...................................................................................................12
2.3.Kết luận chƣơng 2 ...............................................................................................14
Chƣơng 3- SỬ DỤNG SUPPORT VECTOR MACHINE TRONG KHÁNG LỖI 15
3.1.Tổng quan về support vector machine ................................................................15
3.1.1.Giới thiệu..........................................................................................................15



iv

3.1.2.Chiến lƣợc phân loại đa lớp trong SVM ..........................................................17
3.2.Cơ sở hạ tầng điện toán đám mây .......................................................................19
3.3.Lỗi trong cloud IaaS ............................................................................................21
3.4.Đề xuất phƣơng pháp kháng lỗi ..........................................................................23
3.4.1.Đề xuất phƣơng pháp dùng support vector machine .......................................23
3.4.2.Xây dựng ứng dụng ..........................................................................................27
3.4.3.Kết quả đánh giá...............................................................................................35
3.5.Kết luận và hƣớng phát triển ...............................................................................39
DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................41


v

DANH MỤC CÁC THUẬT NGỮ, CHỬ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

SVM Function

Hàm mục tiêu SVM

Weight parameter

Véctơ trọng số


x1, x2 …

Vectors

Tập các véctơ

{t1,…,tN}

Labels

Tập các nhãn

Kernel function

Hàm nhân

Vector space

Không gian véctơ

Parameter

Tham số

Function

Các hàm số

Lagrange Funtion


Hàm lagrange

Epsilon

Tham số epsilon

CPU

Central Processing Unit

Bộ xử lý trung tâm

HDD

Hard Disk Drive

Ổ cứng

IaaS

Infrastructure as a Service

Hạ tầng nhƣ một dịch vụ

KKT

Karush-Kuhn-Tucker

Điều kiện Karush-Kuhn-


Condition

Tucker

OAO

One against one

Một đối một

OAR

One against rest

Một đối tất cả

OS

Operation System

Hệ điều hành

QoS

Quality of Service

Chất lƣợng dịch vụ

RAM


Random Access Memory

Bộ nhớ truy cập ngẫu

( )

( )

,

,

,

( ), ( )
̃( )

nhiên
Sequential Minimal

Tối ƣu tuần tự từng bƣớc

Optimization

nhỏ

SVM

Support Vector Machine


Máy Véctơ hỗ trợ

VM

Virtual Machine

Máy ảo

SMO


vi

DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Các phƣơng pháp kháng lỗi .............................................................4
Hình 2.1: Tín hiệu heartbeat và công thức phát hiện lỗi ................................14
Hình 3.1: SVM phân loại 2 lớp ......................................................................15
Hình 3.2: Chiến lƣợc phân lớp One against Rest...........................................18
Hình 3.3: Chiến lƣợc phân lớp OAR (trái) và chiến lƣợc phân lớp OAO .....19
Hình 3.4: Mô hình điện toán đám mấy IaaS ..................................................21
Hình 3.5: Mô hình hệ thống kháng lỗi sử dụng SVM ...................................24
Hình 3.6: Các module chức năng trong Fault detector ..................................25
Hình 3.7: Các máy chủ trong hệ thống Openstack ........................................28
Hình 3.8: Monitor hệ thống với Ganglia ........................................................29
Hình 3.9: Dữ liệu lấy từ Ganglia....................................................................29
Hình 3.10: Module vector hóa .......................................................................30
Hình 3.11: Module phân lớp SVM ................................................................31
Hình 3.12: Module chính sách kháng lỗi .......................................................35



vii

DANH SÁCH BẢNG
Bảng 3.1: Các loại lỗi trong Compute node và Máy và hƣớng xử lý ............22
Bảng 3.2: Tình trạng và mã tình trạng đối với máy chủ vật lý ......................31
Bảng 3.3: Phân loại tình trạng và mã tình trạng của Máy Ảo........................33
Bảng 3.4: Phân loại tình trạng và nguyên nhân lỗi trong Máy ảo .................33
Bảng 3.5: Chính sách lỗi trên Compute .........................................................34
Bảng 3.6: Chính sách xử lý lỗi trên các máy ảo ............................................34
Bảng 3.7: Bảng dữ liệu training .....................................................................36
Bảng 3.8: Độ chính xác và độ phủ khi phân loại lỗi với máy chủ ................37
Bảng 3.9: Độ chính xác và độ phủ khi phân loại lỗi với Máy ảo ..................37
Bảng 3.10: Độ chính xác và độ phủ phân loại lỗi Máy Chủ cây quyết định .38
Bảng 3.11: Độ chính xác và độ phủ phân loại lỗi Máy ảo – cây quyết định .39


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. Nhiều dịch vụ quan trọng đang và đã triển khai trên hệ thống
private cloud của các công ty cũng cũng đòi hỏi thời gian hoạt động cực kỳ cao. Đặ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. Trong đó hƣớng kháng lỗi chủ động có nhiều ƣu điểm hơn, tuy

nhiên vẫn còn có nhƣợc điểm đó là sự chính xác trong việc phát hiện lỗi, tự động
kháng lỗi.
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 véctơ hỗ trợ (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:


2

-

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ƣ: bị cô lập
mạng, mất gói, gói tin lỗi, đích đến mất kết nối, lỗi link….

-

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 nguồn, lỗi CPU, lỗi RAM, HDD, storage, CPU fan, mainboard,...


-

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 lỗi 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 trong khi
ứng dụng đang dùng nó

Lỗi xảy ra trong suốt quá trình tính toán trên tài nguyên hệ thống có thể đƣợc
phân loại nhƣ: lỗi bỏ sót, lỗi định thời, lỗi trả lời và lỗi crash.
Còn có thể phân loại lỗi dựa vào thời gian nhƣ:
-

Lỗi lâu dài (permanent): lỗi xảy ra nhƣ do bị đứt dây mạng, nguồn điện bị
mất, thảm họa…. Đặc điểm của loại lỗi này là dễ tái tạo lại lỗi. Những lỗi
này có thể gây ra những hậu quả lớn cho hệ thống hoặc là làm cho một
phần hệ thống hoạt động không nhƣ mong đợi.

-

Những lỗi gián đoạn: là những lỗi hiếm khi xuất hiện. Hầu hết những lỗi

này đƣợc bỏ qua trong hệ thống thử nghiệm và chỉ xuất hiện khi hệ thống
có tải. Vì vậy khó dự đoán sự thiệt hại của những lỗi này có thể gây ra.

-

Lỗi tạm thời: Những lỗi xảy ra bởi một vài lỗi vốn có từ trƣớc, tuy nhiên,
những lỗi này đƣợc sửa sai bằng cách cố gắng roll back hệ thống đến
trạng thái trƣớc đó nhƣ là khởi động lại phần mềm hoặc gửi một thông
báo [1] [2].

Có hai hƣớng chính trong nghiên cứu về kháng lỗi là:


4

-

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ó nhiều kỹ thuật khác nhau nhƣ:

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

o Check pointing/ Restart: Khi xảy ra lỗi, hệ thống đƣợc phục hồi/
khởi động lại bằng trạng thái trƣớc đó (check point). Đây là một
kỹ thuật hiệu quả và phổ biến trong kháng lỗi.
o Replication: là kỹ thuật nhân bản VM hoặc tiến trình trên một hay
nhiều máy vật lý. Luôn luôn cập nhật trạng thái và dữ liệu giữa
bản chính và bản sao để khi xảy ra lỗi trên một bản, hệ thống vẫn
hoạt động.



5

o Job Migration: là kỹ thuật di chuyển tác vụ sang một server vật lý
khác khi xảy ra lỗi. Kỹ thuật này có thể thực hiện bằng cách dùng
HAProxy[3].
o SGuard: Giải pháp dùng cho Stream Processing Engine dựa vào
check point. Hệ thống sẽ lƣu check point của tất cả các node, khi
có lỗi sẽ phục hồi lại dữ liệu các node, đảm bảo đầu vào dữ liệu
của các node sẽ phục hồi nguyên trạng nhƣ trƣớc khi có lỗi.
Sguard thực hiện nhờ Hadoop và Amazon Ec2.
o Retry: Là kỹ thuật đơn giản nhất. Ngƣời dùng chỉ việc thử lại tác
vụ bị lỗi với hệ thống
o Task Resubmission: Tác vụ sẽ đƣợc thực thi lại tại máy nó đang
chạy hoặc một máy khác
o User defined exception Handling: Ngƣời dùng định nghĩa những
hành động cụ thể cho trƣờng hợp một tác vụ nào đó thất bại.
-

Kháng lỗi chủ động (proactive fault tolerance):
o Software rejuvenation (hồi sinh phần mềm): là kỹ thuật thiết kế hệ
thống định kỳ sẽ reboot một lần. Khởi động hệ thống trong trạng
thái ban đầu.[4]
o

Self Healing: khi nhiều thể hiện của một ứng dụng đang chạy trên
nhiều VM, có khả năng tự động lắng nghe và xử lý lỗi của các thể
hiện khác.[4]

o Preemptive Migration (di trú ƣu tiên): dựa trên một vòng lặp phản

hồi của các tín hiệu giám sát. Các ứng dụng, máy ảo luôn đƣợc
giám sát, nếu phát hiện đƣợc lỗi sẽ ƣu tiên di trú sang một server
khác.[4]

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 sau:


6

-

Hệ thống Cloud computing tồn tại nhiều công nghệ khác nhau, nhƣ công
nghệ ảo hóa máy chủ (sản phẩm của Vmware, KVM …), công nghệ ảo
hóa Network (ví dụ: Openvswitch) ... Phƣơng pháp kháng lỗi phải đảm
bảo hoạt động và tƣơng thích với các công nghệ này [5].

-

Hƣớng phát triển mới của việc kháng lỗi phải kết hợp với thuật toán lập
lịch dòng công việc có sẳn trong hệ thống cloud computing [6].

-

Phƣơng pháp nào đáng tin cậy để đánh giá hiệu quả của các phƣơng pháp

kháng lỗi trong cloud computing [7].

-

Đảm bảo đƣợc độ tin cậy và sẵn sàng đáp ứng cho nhiều nhà cung cấp
dịch vụ với nhiều phần mềm khác nhau [8].

-

Tự động kháng lỗi phải đồng bộ giữa các cloud khác [5].

-

Giải pháp kháng lỗi tự động cho nhiều thể hiện của một ứng dụng chạy
trên nhiều máy ảo khác nhau[2].

1.3.

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 nhƣ: thông lƣợng (throughput),
thời gian phản hồi (response-time), 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 [9]:
-

Thông lƣợng (throughput): nó định nghĩa số lƣợng tác vụ đã đƣợc hoàn
thành. Hệ thống tốt thì thông lƣợng càng có giá trị cao.

-


Thời gian phản hồi: thời gian phản hồi, đáp ứng của thuật toán, giá trị này
càng thấp càng tốt.

-

Khả năng mở rộng: Số lƣợng node trong hệ thống mà thuật toán kháng
lỗi còn có thể hoạt động tốt.

-

Hiệu năng: tham số này kiểm tra sự ảnh hƣởng về hiệu năng của hệ thống
khi áp dụng thuật toán. Hiệu năng của hệ thống cần đƣợc cải thiện với
một chi phí hợp lý.

-

Độ sẵn sàng: độ sẵn sàng của hệ thống là một yếu tố ảnh hƣởng đến độ
tin cậy.


7

-

Độ khả dụng: khả năng kết hợp với các sản phẩm khác một cách hiệu quả
và dễ dàng.

-


Độ tin cậy: xem xét khả năng đạt đƣợc kết quả chính xác hoặc chấp nhận
đƣợc trong một khoảng thời gian.

-

Phí tổn kết hợp: (overhead associated): là phí tổn trong khi thực thi những
tác vụ, tiến trình trong thuật toán. Phí tổn có thể đƣợc gây ra bởi các tiến
trình di chuyển dữ liệu, trong nội tại tiến trình và trong nội tại bộ xử lý.
Một thuật toán kháng lỗi hiệu quả thì phí tổn phải nhỏ.

-

1.4.

Chi phí: ở đây tính toán chi phí dành cho phần giám sát hệ thống

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.


8

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 (software rejuvenation)
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 [10].
Khi một ứng dụng chạy liên tục trong một thời gian dài sẽ dẫn đến kém hiệu
quả trong quản lý tài nguyên nhƣ rò rỉ bộ nhớ (memory leak), không mở khóa file
(unreleased file lock), rò rỉ mô tả của file (file descriptor leak), dữ liệu lỗi (data
corruption)…
Tài nguyên bị rò rỉ và những vấn đề khác là nguyên nhân của các lỗi trong
khi viết phần mềm hoặc môi trƣờng thực thi. Rất khó để sửa hết các lỗi này bởi vì
một phần mềm phức tạp có sử dụng nhiều thƣ viện khác nhau, những thƣ viện này
lại không thể truy cập đƣợc mã nguồn (source code) của nó, dẫn đến không có cách
nào để hiểu đƣợc và sửa chửa các lỗi đó.
Hồi sinh phần mềm chỉ nên áp dụng cho các phần mềm chạy liên lục để
tránh những lỗi về rò rỉ tài nguyên hoặc trạng thái khóa chết (deadlock). 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ó khả năng phục hồi khi gặp lỗi bất
chợt (transient) hoặc lỗi tích lũy trong thời gian dài [11].
Hệ thống có self-healing 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. Hệ thống có Self-healing gồm các thành phần chính là bộ giám sát, bộ


9


đánh giá độ thích nghi. Khi hệ thống đang chạy, định kỳ bộ giám sát sẽ gửi thông
tin về hệ thống đến bộ đánh giá độ thích nghi, tại đây sẽ đánh giá tình trạng hệ
thống và cho ra giá trị thích nghi, lƣu dấu lại, sau đó tới chu kỳ đánh giá tiếp theo sẽ
tính toán độ thích nghi và so sánh với giá trị lƣu dấu, nếu bằng nhau tức là không có
lỗi, nếu khác nhau lƣu lại tình trạng và thực hiện các phép toán lai ghép, đột biến
(các tham số trong cấu hình, tình trạng) rồi đánh giá độ thích nghi, nếu so với độ
thích nghi ban đầu lớn hơn thì sẽ cho vào quần thể mới. Quần thể là tập hợp những
cấu hình, tình trạng có thể sảy ra lỗi. Có 2 chiến lƣợc self-healing là: Self-healing
không có bộ chuẩn đoán lỗi và Self-healing có bộ chuẩn đoán lỗi.

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 (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

Bộ thu thập thông tin và dự đoán lỗi: có nhiệm vụ liên tục thu thập thông tin
về tình trạng sức khỏe của các máy chủ trong hệ thống, các thông tin có thể bao
gồm thông tin về nhiệt độ, thông báo lỗi về RAM, CPU, tải của hệ thống, phần trăm
RAM, phần trăm CPU sử dụng, thông báo lỗi từ card mạng, … sau đó dựa vào các

phƣơng pháp phát hiện lỗi để dự đoán xem có khả năng có lỗi trong máy chủ. Nếu
xác định có thể lỗi sẽ gửi thông tin đến bộ thực thi việc di trú để chuyển máy ảo
sang server khác. Ƣu điểm của phƣơng pháp này là gần nhƣ không có thời gian gián
đoạn nếu nhƣ lỗi đƣợc phát hiện và dự đoán đúng.
Trái tim của phƣơng pháp pháp kháng lỗi chủ động, thành phần chính của bộ
thu thập và và dự đoán lỗi đó là phƣơng pháp phát hiện và dự đoán lỗi, có 3 hƣớng
nghiên cứu về phƣơng pháp phát hiện và dự đoán lỗi:


10

-

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. Nếu giá
trị của những yếu tố này vƣợt ngƣỡng thì sẽ hành động (cảnh báo hoặc
thực hiện các phƣơng pháp kháng lỗi)[12].

-

Phương pháp dùng trí tuệ nhân tạo:

Mạng chuyên gia:
Một mạng chuyên gia đƣợc xây dựng để mô phỏng những lập luận của con
ngƣời về một miền vấn đề tập trung vào khả năng giải quyết vấn đề của chuyên gia,
thực hiện những tác vụ liên quan giống nhƣ chuyên gia. Hệ chuyên gia tập trung
vào heuristic knowledge (nhận thức cảm tính) hơn là những công thức và những
mối quan hệ của các công thức đó. Mô hình hệ chuyên gia dựa vào tập luật (rulebase) và các phƣơng thức suy luận dựa vào kinh nghiệm, trong khi mô hình hệ
chuyên gia mới theo hƣớng dựa vào mẫu (model-base) sử dụng phƣơng pháp suy
luận theo chức năng. Trong hệ chuyên gia dựa vào tập luật, kiến thức của hệ thống

đƣợc biểu diễn nhƣ một dạng của tập luật của nhà sản xuất. Suy luận dựa vào giả
thuyết và kết quả trong tập kiến thức (knowledge base) là chính. Những sự kết hợp
của các mối quan hệ nguyên nhân – kết quả của các luật quyết định chuỗi những sự
kiện và dùng để đại diện sự nhân bản của các hiện tƣợng phức tạp. Hệ chuyên gia
dựa vào kiến thức cảm tính (heuristic) có thể cho kết quả rất hiệu quả trong thủ tục
phát hiện lỗi nhƣng thiếu tính tổng quát. Widman et al (1989) có nêu lên những hạn
chế của việc phát hiện lỗi bằng hệ chuyên gia trƣớc đây:
 Không có khả năng đƣa ra chính xác những hiện tƣợng theo thời gian
và không gian
 Không có khả năng để phát hiện khoảng cách rõ ràng trong tập kiến
thức
 Khó trong phần kiến thức (knowledge engineer) lấy kiến thức từ
chuyên gia tin cậy
 Trong phần kiến thức, khó để đảm bảo sự thống nhất giữa các kiến
thức


11

 Chƣơng trình không thể học hỏi từ những lỗi mà nó gặp
Mô hình dựa vào tập luật có nhiều điểm yếu nhƣ thiếu sự tổng quát và xử lý
những tình huống mới kém nhƣng nó cũng cho nhiều hiệu quả khác. Những hạn chế
của hệ chuyên gia trƣớc đây đã đƣợc loại bỏ bởi mô hình hệ chuyên gia dựa vào mô
hình (model-base). Hệ chuyên gia đƣợc phát triển theo hƣớng model-base mà kiến
thức chuyên gia đóng vai trò chính trong model. Hệ phát hiện, chuẩn đoán lỗi
model-base này dựa vào kiến thức về kiến trúc, chức năng, hành vi, thiết bị cung
cấp, và thủ tục chuẩn đoán lỗi độc lập. Chúng cho phép tạo nên những hệ thống
chuẩn đoán lỗi mạnh mẽ bởi vì hệ thống có thể giải quyết những tình huống mới
chƣa có trong tập kiến thức. Mô hình hệ chuyên gia theo hƣớng model-base rất linh
hoạt và chính xác nhƣng bị giới hạn là phải phụ thuộc vào miền kiến thức.[9]

Logic mờ:
Logic mờ đƣợc Zadeh, L.A nêu ra lần đầu năm 1965 [13].Một biểu thức
Logic truyền thống chỉ nhận 2 giá trị „0‟ , „1‟ đại diện cho „đúng‟ hoặc „sai‟, nhƣng
với logic mờ, biểu thức có thể nhận vô số giá trị số thực trong khoảng (0 – 1) [14].
Trong logic mờ mức độ đúng của một biến là giá trị của nó [6 -7], tùy theo mức độ
đúng ít hay nhiều .
Mạng Nơ ron:
Mạng nơ ron sử dụng những tập dữ liệu mẫu để rèn luyện, hoàn thiện khả
năng nhận dạng vấn đề. Trong lĩnh vực chuẩn đoán lỗi nó trở nên hiệu quả nhờ vào
các thông số đo lƣờng của cảm biến để xác định nguyên nhân lỗi và phân biệt tình
trạng bình thƣờng và bất thƣờng của hệ thống. Một thuật toán sẽ tự động điều chỉnh
trọng số của dữ liệu đầu vào đến bộ kết hợp để sao cho giá trị đầu ra của mạng nơ
ron và giá trị đầu ra mong muốn là chênh lệch nhỏ nhất. Mạng chuyên gia không
cần phải thiết kế những tập luật phức tạp, vì mạng nơ ron dựa trên những tính toán
gần đúng. Mạng nơ ron dựa vào các tham số của hệ thống monitor cho nên nếu hệ
thống giám sát có lỗi, thông tin bị sai lệch, bị nhiễu, kết quả sẽ sai. Vì vậy cần phải
ghi dữ liệu trên mạng trƣớc khi xử lý.


12

Mạng nơ ron không thể giải thích đƣợc nguyên nhân lỗi, bởi vì mạng nơ ron
thực sự không biết tại sao nó có thể giải đƣợc vấn đề.
Mô phỏng định lượng:
Đƣợc thực hiện dựa trên so sánh giữa dự đoán hành vi của hệ thống dựa trên
định lƣợng và việc quan sát thực tế. Mô hình định lƣợng mô phỏng hệ thống lúc
bình thƣờng là lúc lỗi đề tìm những hành vi của hệ thống trong từng trƣờng hợp cụ
thể mà không cần dùng việc định lƣợng các giá trị cảm biến. Việc chuẩn đoán lỗi
dựa vào sự so sánh độ phù hợp giữa phƣơng pháp dự đoán hành vi và quan sát hành
vi trong mô hình định lƣợng.

Ƣu điểm của phƣơng pháp này là sự chính xác cao về giá trị của các thuộc
tính đo lƣờng và thời gian tiêu tốn chƣa thật sự cần thiết.

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. Một hệ không tin cậy thƣờng cung cấp thông tin không đủ chính xác, tốn
nhiều thời gian cho việc phát hiện lỗi và cho kết quả sai khi nghi ngờ tiến trình hoặc
máy không bị lỗi. Hầu hết các hệ phát hiện lỗi đều rơi vào dạng này.
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 tiến trình 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 đủ. Một hệ phát hiện lỗi trong thực tế đảm
bảo 100% đầy đủ nhƣng sự chính xác chỉ là một phần. Hệ thống có thể
nghi ngờ rất nhiều tiến trình là lỗi, không để lọt bất cứ tiến trình nào lỗi
mà không nghi ngờ (đầy đủ), nhƣng lại nhầm lẫn những tiến trình khỏe
mạnh là lỗi (thiếu chính xác).



13

-

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ỏ.

Một hệ phát hiện lỗi nên đảm bảo tất cả các tính chất trên ngay cả khi có
nhiều tiến trình đồng thời lỗi. Ngoài ra còn có các tham số đƣợc đặt ra bởi Chandar
và Toug[15] để đá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.

Hệ phát hiện lỗi mà dựa trên sự thay đổi của điều kiện mạng, ứng dụng, môi
trƣờng đƣợc gọi là hệ phát hiện lỗi mô phỏng. Hầu hết các hệ này dựa vào tín hiệu
heartbeat. Thông tin từ tín hiệu heartbeat cũ sẽ đƣợc dùng để tiên đoán thời gian tới
của tín hiệu heatbeat tiếp theo [16].

Heartbeat là một phƣơng pháp truyền thống sử dụng để phát hiện lỗi. Mỗi
tiến trình định kỳ gửi một gói tin heartbeat tới tiến trình giám sát, nếu quá thời gian
trên vẫn chƣa nhận đƣợc tín hiệu heartbeat thì tiến trình đó bị nghi ngờ lỗi. Chandra
và Toug đề xuất một phƣơng pháp sử dụng heartbeat cải tiến phƣơng pháp truyền
thống. Họ chia những khoảng thời gian cố định liên tiếp, còn gọi là điểm làm mới
(freshness point)
heartbeat thứ i,

,

,

… trong đó

là thời gian ƣớc lƣợng của tín hiệu

là thời gian chênh lệch từ lúc phát tín hiệu tới lúc nhận đƣợc. Nếu

thời gian nhận đƣợc tín hiệu heartbeat thứ i trong thực tế là
có lỗi.

, nếu

>

+

thì



14

Hình 2.1: Tín hiệu heartbeat và công thức phát hiện lỗi

2.3.

Kết luận chƣơng 2
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.


15

Chƣơng 3 - SỬ DỤNG SUPPORT VECTOR MACHINE
TRONG KHÁNG LỖI
3.1.

Tổng quan về support vector 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). Ý tƣởng của SVM là tìm một
siêu phẳng phân biệt các lớp dữ liệu với nhau. Để đơ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.
Ví dụ xét bài toán phân lớp 2 điểm xanh đỏ nhƣ hình vẻ.

Hình 3.1: SVM phân loại 2 lớp


Hàm tuyến tính phân biệt hai lớp nhƣ sau[17][18]:
( )

( )

(1)

Trong đó:
-

là vector trọng số hay vector chuẩn của siêu phẳng phân cách, T là
kí hiệu chuyển vị.
là độ lệch

-

( )

là véc tơ đặc trƣng,

làm hàm ánh xạ từ không gian đầu vào

sang không gian đặc trƣng.
Tập dữ liệu đầu vào gồm N mẫu input vector {x1, x2,...,xN}, với các giá trị
nhãn tƣơng ứng là {t1,…,tN} trong đó

*

+.


Lề đƣợc chọn là khoảng cách nhỏ nhất từ đƣờng phân cách đến mọi điểm dữ
liệu hay là khoảng cách từ đƣờng phân cách đến những điểm gần nhất. SVM tìm
siêu mặt phẳng sao cho khoảng cách lề là lớn nhất.


×