ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––––––––––––––
TRẦN THỊ DUNG
NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG MÁY CHỦ
PHỤC VỤ TRUY CẬP INTERNET
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2016
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––––––––––––––––
TRẦN THỊ DUNG
NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG MÁY CHỦ
PHỤC VỤ TRUY CẬP INTERNET
Chuyên ngành: Khoa học máy tính Mã số: 60480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Ngƣời hƣớng dẫn khoa học: TS. LÊ QUANG MINH
THÁI NGUYÊN - 2016
i
LỜI CAM ĐOAN
Tên tôi là Trần Thị Dung, học viên cao học lớp CK13A, chuyên ngành
Khoa học máy tính, khoá 2014-2016. Tôi xin cam đoan luận văn thạc sĩ
“Nâng cao độ tin cậy cho hệ thống máy chủ phục vụ truy cập Internet” là
công trình nghiên cứu của riêng tôi, số liệu nghiên cứu thu đƣợc từ thực
nghiệm và không sao chép. Học viên
Trần Thị Dung
ii
LỜI CẢM ƠN
Đƣợc sự phân công của Khoa sau Đại học trƣờng Đại học Công nghệ
Thông tin và Truyền thông và sự đồng ý của thầy giáo hƣớng dẫn TS. Lê
Quang Minh, tôi đã thực hiện đề tài “Nâng cao độ tin cậy cho hệ thống máy
chủ phục vụ truy cập Internet”. Để hoàn thành luận văn này, tôi xin chân
thành cảm ơn các thầy, cô giáo đã tận tình hƣớng dẫn, giảng dạy trong suốt
quá trình học tập, nghiên cứu ở trƣờng Đại học Công nghệ Thông tin và
Truyền thông - Đại học Thái Nguyên.
Xin chân thành cảm ơn sâu sắc tới thầy giáo hƣớng dẫn TS. Lê Quang
Minh đã tận tình, chu đáo, định hƣớng và hƣớng dẫn tôi thực hiện luận văn
này. Mặc dù đã có nhiều cố gắng để thực hiện đề tài này một cách hoàn chỉnh
nhất. Song do buổi đầu mới làm quen với công tác nghiên cứu khoa học, tiếp
cận với thực tế cũng nhƣ hạn chế về kiến thức và kinh nghiệm nên không thể
tránh khỏi những thiếu sót nhất định mà bản thân chƣa thấy đƣợc. Tôi rất
mong nhận đƣợc sự góp ý của quý thầy cô và các bạn đồng nghiệp để luận
văn đƣợc hoàn chỉnh hơn.
Xin chân thành cảm ơn!
Thái Nguyên, ngày 15 tháng 5 năm 2016
Học viên
Trần Thị Dung
iii
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT ................................................................... v
DANH MỤC CÁC BẢNG ................................................................................................... vi
DANH MỤC HÌNH ẢNH ....................................................................................... vii
MỤC LỤC
MỞ ĐẦU .......................................................................................................... 1
1. Lý do chọn đề tài ....................................................................................... 1
2. Mục đích nghiên cứu ................................................................................. 2
3. Nhiệm vụ nghiên cứu ................................................................................. 2
4. Phƣơng pháp nghiên cứu ........................................................................... 2
5. Cấu trúc luận văn ....................................................................................... 3
CHƢƠNG 1: TỔNG QUAN VỀ ĐỘ TIN CẬY CỦA HỆ THỐNG .......... 4
1.1. Khái niệm về độ tin cậy của hệ thống .................................................... 4
1.1.1. Khái niệm về hệ thống và phần tử ................................................... 4
1.1.2. Định nghĩa về độ tin cậy .................................................................. 4
1.1.3. Chỉ số độ tin cậy của hệ thống ......................................................... 5
1.2. Vai trò của độ tin cậy hệ thống ............................................................. 15
1.3. Các bƣớc tính toán độ tin cậy hệ thống ................................................ 18
1.3.1. Xây dựng sơ đồ logic theo cấu trúc hệ thống ................................. 18
1.3.2. Thuật toán chuyển đổi sơ đồ cấu trúc logic sang đồ thị liên kết .... 20
1.3.3. Trực giao hóa các toán tử logic ...................................................... 27
1.3.4. Chuyển đổi mô hình logic sang giá trị đại số ................................. 28
CHƢƠNG 2: CÁC PHƢƠNG PHÁP DỰ PHÒNG NÂNG CAO ĐỘ
TIN CẬY CỦA HỆ THỐNG ........................................................................ 30
2.1. Bài toán dự phòng trong hệ thống ........................................................ 30
iv
2.2. Các phƣơng pháp dự phòng truyền thống ............................................ 31
2.2.1. Phƣơng pháp dự phòng nóng ......................................................... 31
2.2.2. Phƣơng pháp dự phòng lạnh .......................................................... 33
2.2.3. Phƣơng pháp dự phòng theo cơ chế bỏ phiếu (chập 3) .................. 36
2.2.4. Phƣơng pháp dự phòng bảo vệ tích cực ......................................... 37
2.3. Thuật toán đảm bảo độ tin cậy của hệ thống ........................................ 39
2.3.1. Mô hình hệ thống sử dụng dự phòng tĩnh ...................................... 39
2.3.2. Mô hình hệ thống sử dụng dự phòng tích cực ............................... 41
CHƢƠNG 3: ỨNG DỤNG VÀ GIẢI PHÁP XỬ LÝ DỰ PHÒNG
CHO HỆ THỐNG MÁY CHỦ .................................................................... 44
3.1. Bài toán độ tin cậy cho các máy chủ DNS Anycast ............................. 44
3.1.1. Vai trò và tầm quan trọng của máy chủ DNS ................................ 44
3.1.2. Cấu trúc phân cấp, nguyên tắc hoạt động của DNS server ............ 45
3.1.3. Công nghệ định tuyến Anycast ...................................................... 46
3.1.4. Những thách thức hiện nay đối với hệ thống DNS Anycast .......... 49
3.2. Bài toán nâng cao độ tin cậy cho máy chủ DNS Anycast và phƣơng án ... 50
3.2.1. Phát biểu bài toán ........................................................................... 50
3.2.2. Phƣơng án dự phòng giải quyết bài toán độ tin cậy cho máy
chủ DNS ................................................................................................... 52
3.3. Xây dựng chƣơng trình thử nghiệm và đánh giá kết quả ..................... 53
3.4. Kết luận và đánh giá kết quả của bài toán ............................................ 57
KẾT LUẬN .................................................................................................... 58
1. Kết luận .................................................................................................... 58
2. Hƣớng nghiên cứu tiếp theo .................................................................... 58
DANH MỤC CÔNG TRÌNH KHOA HỌC LIÊN QUAN ĐẾN LUẬN
VĂN ĐƢỢC CÔNG BỐ ............................................................................... 60
TÀI LIỆU THAM KHẢO ............................................................................ 61
PHỤ LỤC ....................................................................................................... 63
v
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
Từ viết tăt Từ tiếng Anh Từ hoặc cụm từ
Phƣơng pháp dự phòng chủ AP Active Protection động
Thời gian hoạt động an toàn MTTF Mean Time To Failure trung bình
Mean Time Between Thời gian trung bình giữa hai MTBF Failure lần hỏng
Thời gian trung bình sửa chữa MTTR Mean Time To Repair sự cố
DNS Domain Name Service Dịch vụ phân giải tên miền
PDS Primary DNS Server Máy chủ tên miền chính
SDS Secondary DNS Server Máy chủ tên miền phụ
WSN Wireless Sensors Network Mạng cảm biến không dây
TLDs Top-Level Domains Tên miền mức đỉnh
SLDs Second-Level Domains Tên miền mức hai
vi
DANH MỤC CÁC BẢNG
Bảng 2.1: Bảng giá trị độ tin cậy của hệ thống HCS theo từng cấu hình ....... 42
Bảng 3.1: Kết quả tính độ tin cậy hệ thống trong các phƣơng án ................... 55
vii
DANH MỤC HÌNH ẢNH
Hình 1.1: Biểu diễn hàm mật độ phân phối xác suất ........................................ 6
Hình 1.2: Biểu diễn hàm phân phối xác suất .................................................... 7
Hình 1.3: Biểu diễn độ tin cậy của phần tử ....................................................... 8
Hình 1.4: Biểu diễn hàm phân phối và độ tin cậy ........................................... 10
Hình 1.5: Biểu diễn cƣờng độ hỏng hóc ......................................................... 10
Hình 1.6: Các khoảng cách làm việc và khoảng cách phục hồi ...................... 12
Hình 1.7: Một kịch bản phát hiện lỗi và sửa lỗi .............................................. 14
Hình 1.8: Sơ đồ của hệ các phần tử nối tiếp ................................................... 19
Hình 1.9: Sơ đồ của hệ các phần tử song song ............................................... 19
Hình 2.1: Hệ thống dự phòng nóng ................................................................. 31
Hình 2.2: Hệ thống dự phòng lạnh .................................................................. 33
Hình 2.3: Hệ thống dự phòng lạnh với 2 phần tử ........................................... 34
Hình 2.4: Hệ thống dự phòng lạnh với 3 phần tử ........................................... 35
Hình 2.5: Phƣơng pháp dự phòng theo cơ chế chập 3 .................................... 37
Hình 2.6: Cơ chế dự phòng tích cực ............................................................... 37
Hình 2.7 Cấu hình HCS có dự phòng (1: Cấu hình ban đầu; 2-8: Cấu hình với
dự phòng) ........................................................................................................ 39
Hình 2.8: Phƣơng pháp dự phòng tích cực cho hệ thống................................ 41
Hình 2.9: Nhân bản cấu hình với bộ 5 vi xử lý ............................................... 43
Hình 3.1: Cấu trúc phân cấp của tên miền ...................................................... 45
Hình 3.2: Cơ chế hoạt động của Anycast (nguồn vnnic.vn) ........................... 47
Hình 3.3: Thông tin bảng định tuyến trong Anycast (nguồn vnnic.vn) .......... 47
Hình 3.4: Phân bổ DNS Anycast trên thế giới (nguồn wikipedia.org) ........... 48
Hình 3.5: Mô hình dự phòng cho máy chủ DNS Anycast .............................. 51
Hình 3.6: Chức năng chƣơng trình thử nghiệm .............................................. 53
Hình 3.7: Mã nguồn chính cài đặt thuật toán tính độ tin cậy .......................... 54
Hình 3.8: Kết quả tính toán của chƣơng trình demo ....................................... 54
Hình 3.9: Biểu đồ so sánh độ tin cậy của các phƣơng án dự phòng ............... 56
1
MỞ ĐẦU
1. Lý do chọn đề tài
Cuọ c cách mạng của khoa học k thuạ t trong lĩnh vực co ng nghẹ đã
bắt đầu tạo ra các hẹ thống dự phòng, đó là các hẹ thống sie u phức tạp hỗ
trợ con ngu ời trong các lĩnh vực của đời sống: khoa học máy tính, giao
tho ng vạ n tải, na ng lu ợng và các ngành khác của xã họ i...Các hẹ tthống dự
phòng có thể thay thế hoạ c hỗ trợ con ngu ời trong k nguye n co ng nghẹ ,
nó tạo ra các hẹ thống sie u phức tạp trong các lĩnh vực của nền kinh tế. Hẹ
thống dự phòng kho ng đo n thuần chỉ là mọ t hẹ thống đo n giản mà là hẹ
thống đu ợc đạ c tru ng bởi mọ t số lu ợng lớn các yếu tố thành phần, có cấu
trúc phức tạp với các chu o ng trình tính toán, điều khiển các hoạt đọ ng của
nó. Đa y chính là những hẹ thống có tính ứng dụng cao, tham gia vào trong
tất cả các lĩnh vực của đời sống xã họ i hiẹ n đại.
Cũng chính vì các hẹ thống này đã tham gia tất cả các lĩnh vực trong
xã họ i ne n nền sản xuất xã họ i luo n phải đối mạ t với nguy co các hẹ thống,
thiết bị kho ng s n sàng để hoạt đọ ng mọ t cách chính xác, cùng với viẹ c
thao tác sai và những sai lầm kho ng đáng có trong quá trình thiết kế chế tạo
thiết bị...đã làm cho cấu trúc hẹ thống bị phá v , các chức na ng của hẹ
thống hoạt đọ ng kho ng chính xác. Các hẹ thống k thuạ t hiẹ n đại, phức tạp
nếu kho ng đảm bảo đu ợc đọ tin cạ y thì hẹ thống coi nhu kho ng tồn tại.
Đối mạ t với những hẹ thống kho ng hoạt đọ ng, thiết bị cho kết quả kho ng
chính xác...chúng ta thấy đu ợc nguy co xảy ra đối với mỗi hẹ thống. Vì vạ y,
viẹ c cần phát triển nhanh chóng các phu o ng pháp đánh giá đọ tin cạ y của các
hẹ thống ở tất cả các giai đoạn thiết kế, thử nghiẹ m, sản xuất, hoạt đọ ng là
điều hết sức quan trọng và cần thiết.
Đọ tin cạ y và khả na ng hoạt đọ ng an toàn của hẹ thống phụ thuọ c vào
cấu trúc của hẹ thống (cấu trúc logic) và đọ tin cạ y của các thành phần cấu
2
thành ne n hẹ thống. Đối với các hẹ thống phức tạp, có hai cách để ta ng đọ tin
cạ y: ta ng đọ tin cạ y của các yếu tố thành phần và thay đổi chu o ng trình.
Phu o ng pháp na ng cao đọ tin cạ y của các yếu tố thành phần là phu o ng pháp
đo n giản nhất để ta ng đọ tin cạ y của hẹ thống. Từ những chỉ số đánh giá đọ
tin cạ y của hẹ thống thì chúng ta có thể xa y dựng các phu o ng pháp dự phòng
nh m na ng cao đọ tin cạ y cho các hẹ thống.
Mục tie u tìm hiểu về viẹ c na ng cao đọ tin cạ y của hẹ thống, đạ c biẹ t là
viẹ c sử dụng các phu o ng pháp dự phòng, to i đã lựa chọn đề tài “Nâng cao độ
tin cậy cho hệ thống máy chủ phục vụ truy cập Internet” làm đề tài cho
luạ n va n tốt nghiẹ p.
2. Mục đích nghiên cứu
Mục đích nghiên cứu của đề tài là đƣa ra các phƣơng pháp dự phòng để
nâng cao độ tin cậy của hệ thống tính toán qua cấu trúc hệ thống tính toán.
Nh m tránh đƣợc các sự cố lỗi có thể xảy ra đối với hệ thống.
3. Nhiệm vụ nghiên cứu
Xuất phát từ mục đích trên, nhiệm vụ nghiên cứu của đề tài đặt ra như sau:
- Các khái niẹ m lie n quan đến đọ tin cạ y của hẹ thống, phu o ng pháp
đánh giá đọ tin cạ y của hẹ thống.
- Các phƣơng pháp dự phòng nâng cao độ tin cậy của hệ thống tính toán;
- Ứng dụng các phƣơng pháp dự phòng để nâng cao độ tin cậy cho hệ
thống máy chủ phục vụ truy cập Internet.
4. Phƣơng pháp nghiên cứu
Sử dụng phối hợp các phương pháp:
- Phƣơng pháp phân tích, tổng hợp lý luận: Nghiên cứu, tìm hiểu, phân
tích các tài liệu có liên quan đến độ tin cậy của hệ thống cũng nhƣ các phƣơng
pháp tính, đánh giá độ tin cậy của hệ thống.
- Phƣơng pháp sử dụng toán học: Sử dụng phƣơng pháp xác suất thống
kê, xử lý các kết quả tính toán đƣợc từ đó xây dựng đồ thị trực quan.
3
5. Cấu trúc luận văn
Ngoài phần mở đầu và kết luận, luận văn gồm có 3 chƣơng:
Chương 1. TỔNG QUAN VỀ ĐỘ TIN CẬY CỦA HỆ THỐNG
1.1. Khái niệm về độ tin cậy của hệ thống
1.2. Vai trò của độ tin cậy hệ thống
1.3. Các bƣớc tính toán độ tin cậy hệ thống
Chương 2. CÁC PHƢƠNG PHÁP DỰ PHÒNG NÂNG CAO ĐỘ TIN
CẬY CỦA HỆ THỐNG
2.1. Các phƣơng pháp dự phòng truyền thống
2.2. Phƣơng pháp dự phòng tích cực
2.3. Thuật toán đảm bảo độ tin cậy của hệ thống
Chương 3. ỨNG DỤNG VÀ GIẢI PHÁP XỬ LÝ DỰ PHÒNG CHO
HỆ THỐNG MÁY CHỦ
3.1. Mo hình hẹ thống máy chủ phục vụ truy cạ p Internet.
3.2. Mo hình hẹ thống có bổ sung the m dự phòng theo các kịch bản dự
phòng.
3.3. Đánh giá hiẹ u quả của viẹ c dự phòng và đu a ra các khuye n nghị.
Phần kết luận: Tóm tắt các kết quả đạt đƣợc và hu ớng phát triển tiếp.
4
CHƢƠNG 1
TỔNG QUAN VỀ ĐỘ TIN CẬY CỦA HỆ THỐNG
1.1. Khái niệm về độ tin cậy của hệ thống
1.1.1. Khái niệm về hệ thống và phần tử
“Hệ thống là một tập hợp gồm nhiều phần tử tương tác, có các mối
quan hệ ràng buộc lẫn nhau và cùng hoạt động hướng tới một mục tiêu
chung thông qua chấp thuận các đầu vào, biến đổi có tổ chức để tạo kết
quả đầu ra”.
Hay “Hệ thống là một tập hợp gồm nhiều phần tử có các mối quan hệ
ràng buộc tương tác lẫn nhau để thực hiện một mục đích chung” [3].
Phần tử là một bộ phận cấu thành nên hệ thống, do đó bên trong một hệ
thống chứa đựng rất nhiều các phần tử khác nhau. Trong quá trình nghiên cứu
về độ tin cậy của hệ thống nhất định, phần tử đƣợc xem nhƣ là một tổng thể
không chia cắt đƣợc (ví dụ nhƣ: linh kiện, thiết bị…) mà độ tin cậy đã cho
trƣớc hoặc xác định dựa trên những số liệu thống kê.
1.1.2. Định nghĩa về độ tin cậy
Độ tin cậy thể hiện tính chất của đối tƣợng ở một thời điểm nhất định,
dƣới những điều kiện làm việc nhất định, hoàn thành nhiệm vụ chức năng cho
trƣớc, đồng thời vẫn duy trì đƣợc giá trị các thông số làm việc đã đƣợc thiết
lập trong một giới hạn đã cho. Bên cạnh đó, độ tin cậy theo nghĩa rộng đó là
một tính chất phức hợp bao gồm các tính chất chủ yếu của đối tƣợng nhƣ: tính
không hỏng, tính sửa chữa, tính bảo quản và tính lâu bền. Độ tin cậy là đặc
tính then chốt trong sự phát triển k thuật, đặc biệt là khi xuất hiện những hệ
thống phức tạp nh m hoàn thành những chức năng quan trọng trong các lĩnh
vực công nghiệp khác nhau. [4]
Định lƣợng độ tin cậy của phần tử hoặc của cả hệ thống đƣợc đánh giá
b ng cách phân tích, tính toán các chỉ số của độ tin cậy, dựa trên hai yếu tố cơ
bản là: tính làm việc an toàn và tính sửa chữa đƣợc.
5
Theo[4], “Độ tin cậy P(t) của phần tử hoặc của hệ thống là xác suất để
trong suốt khoảng thời gian khảo sát t phần tử đó hoặc hệ thống đó vận hành
an toàn.”. Trong đó giá trị của độ tin cậy đƣợc biểu diễn theo công thức:
P(t) đƣợc định nghĩa nhƣ biểu thức sau:
P(t) = P{τ ≥ t} (1.1)
Trong đó: τ là thời gian liên tục vận hành an toàn của phần tử.
Biểu thức tính P(t) cho thấy r ng một phần tử muốn vận hành an toàn
trong khoảng thời gian t thì giá trị của t phải bé hơn giá trị quy định τ.
Đồng thời biểu thức trên cũng chỉ r ng phần tử chỉ vận hành an toàn với
một xác suất nào đó (0 ≤ P ≤ 1) trong suốt khoảng thời gian t. Tại thời điểm
bắt đầu khi hệ thống vận hành nghĩa là ở thời điểm t = 0, phần tử bao giờ
cũng hoạt động với hiệu suất cao nhất, do đó P(0) = 1. Ngƣợc lại thời gian
càng kéo dài, khả năng vận hành an toàn của phần tử càng giảm đi và tới khi
t→∞ thì theo quy luật phát triển của vật chất, không có sự tồn tại vĩnh viễn.
Chính vì vậy, với tác động ảnh hƣởng của thời gian, nhất định hiệu suất hoạt động
của phần tử sẽ bị ảnh hƣởng, nên khi đó độ tin cậy không còn, hay P(∞) = 0.
Theo định nghĩa ở (1.1), độ tin cậy của hệ thống còn đƣợc gọi theo cách
khác là xác suất an toàn, khi đó xác suất không an toàn Q(t) hay còn gọi là
xác suất hỏng của hệ thống sẽ là:
Q(t) = 1-P(t) (1.2)
1.1.3. Chỉ số độ tin cậy của hệ thống
Ngày nay hệ thống và thiết bị k thuật (các phần tử) tồn tại trong thực
tiễn thƣờng tồn tại dƣới 2 dạng là: các phần tử có khả năng phục hồi và các
phần tử không phục hồi đƣợc. Do đó để dễ xác định độ tin cậy của các phần
tử ta cũng sẽ phân chia các phần tử thành 2 dạng nhƣ trên.
1.1.3.1. Phần tử không phục hồi
Phần tử không phục hồi chính là phần tử mà khả năng làm việc của nó
không thiết lập lại trong trƣờng hợp xảy ra hỏng, tức là phục hồi đƣợc hiểu là
6
quá trình phát hiện và khắc phục sự cố nh m thiết lập lại khả năng vận hành
của hệ thống. Khi đƣợc đƣa vào sử dụng, nếu bị hƣ hỏng phần tử thì sẽ loại
bỏ ngay mà không tiến hành sửa chữa do không thể hoặc việc sửa chữa không
mang lại hiệu quả, ví dụ nhƣ: linh kiện điện trở, tụ điện, IC…ta chỉ quan tâm
đến sự kiện xảy ra sự cố đầu tiên.
Các thông số cơ bản của phần tử không phục hồi gồm có:
a) Thời gian vận hành an toàn τ
Giả thiết ở thời điểm t = 0 phần tử bắt đầu hoạt động và đến thời
điểm t = τ thì phần tử gặp sự cố. Trong đó, khoảng thời gian τ đƣợc gọi là
thời gian liên tục vận hành an toàn của phần tử. Vì sự cố không xảy ra tất định
nên τ là một đại lƣợng ngẫu nhiên có các giá trị trong khoảng 0 ≤ τ ≤ ∞.
Giả thiết trong khoảng thời gian khảo sát t thì phần tử xảy ra sự cố với
xác suất Q(t). Khi đó:
Q(t) = P{ τ < t}
Vì τ là đại lƣợng ngẫu nhiên liên tục nên:
- Q(t) đƣợc gọi là hàm phân phối của biến ngẫu nhiên liên tục τ.
Q(t)
Dq(t)
0
t
- q(t) là hàm mật độ phân phối xác suất của τ.
Hình 1.1: Biểu diễn hàm mật độ phân phối xác suất
Hình 1.1 Biểu diễn hàm mật độ phân phối xác suất của thời gian trung
bình vận hành an toàn. Theo tính chất của hàm mật độ phân phối xác suất của
biến ngẫu nhiên liên tục, ta có công thức tính q(t) sau đây:
7
( )
(1.3)
q(t)=Q’(t) {Đạo hàm bậc 1 của hàm phân phối xác suất}, do đó:
( )
Trong đó thỏa mãn tính chất:
(1.4)
∫ ( ) Khi đó ta có hàm mật độ phân phối xác suất của τ là:
( ) Q(t) =
Trong đó giá trị q(t).∆t là xác suất để thời gian hoạt động τ n m trong khoảng
(t→ t+∆t) với ∆t đủ nhỏ.
b) Độ tin cậy của phần tử P(t)
Theo 1.4, hàm Q(t) mô tả xác suất xảy ra sự cố của phần tử trong quá
trình vận hành, từ đó ta có hàm mô tả độ tin cậy của phần tử đƣợc ký hiệu là
P(t) và đƣợc tính theo định nghĩa hàm xác suất:
P(t) = 1 – Q(t) = P{ τ ≥ t} (1.5)
Nhƣ vậy P(t) là xác suất để phần tử vận hành an toàn trong khoảng thời
gian t vì ở đây ta đã giả thiết có τ ≥ t.
Từ biểu thức (1.3) ta có:
(1.6) ( ) ∫ ( )
Từ biểu thức (1.5) và (1.6) ta có
Q(t)
1
P(t0)
Q(t0)
t
0
(1.7) ( ) ∫ ( )
Hình 1.2: Biểu diễn hàm phân phối xác suất
8
P(t)
1
0
t
Hình 1.3: Biểu diễn độ tin cậy của phần tử
Từ hai đồ thị trên ta thấy r ng khi Q(∞) = 1 và P(∞) = 0, điều này
chứng tỏ độ tin cậy của phần tử giảm dần theo thời gian.
c) Cƣờng độ hỏng hóc τ (t) của phần tử
Cƣờng độ hỏng hóc [3] (hay cƣờng độ trở ngại) là một trong những khái niệm quan trọng khi nghiên cứu độ tin cậy, τ (t) là xác suất có điều kiện để một thiết bị làm việc trƣớc thời gian t và phát triển thành sự cố trong đơn
vị thời gian t tại thời điểm t, do đó τ (t) là một hàm theo thời gian.
Với giá trị ∆t đủ nhỏ thì τ (t).∆t chính là xác suất để phần tử đã hoạt động tốt đến thời điểm t sẽ hỏng hóc trong khoảng thời gian ∆t tiếp theo. Hay đó chính là số lần hỏng hóc trên một đơn vị thời gian trong khoảng thời gian ∆t.
( ) ( ) ( )
Trong đó, ( ) là xác suất có điều kiện, là xác suất
để phần tử hỏng hóc trong khoảng thời gian từ t đến ( )(sự kiện A) nếu
phần tử đó hoạt động tốt đến thời điểm t (sự kiện B).
Theo lý thuyết xác suất, xác suất nhân giữa hai sự kiện A và B là:
P(AB) = P(A).P(B|A) = P(B).P(A|B)
Hay:
( ) ( ) ( )
9
Nếu (A kéo theo B: Nếu A xảy ra thì B xảy ra) theo giả thiết ban đầu
khi thì ta có: P(AB) = P(A)
Và
( ) ( ) ( ) ( )
Từ (1.8) và (1.9) suy ra:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
Công thức (1.10) cho ta thấy mối liên hệ giữa bốn đại lƣợng là: cƣờng độ
hỏng hóc, hàm mật độ xác suất, hàm phân bố xác suất và độ tin cậy của phần tử.
Vậy độ tin cậy của phần tử đƣợc tính nhƣ sau:
Từ (1.3) và (1.5) ta có:
( ) ( ) ( ( )) ( ) ( )
(do đạo hàm của 1 b ng 0)
( )
( )
Thay giá trị q(t) vào (1.10) ta có:
<=> ( )
( )
( )
( )
( ) ( ) ( )
∫ ( )
∫
( ) ( ) ( )
Do P(0) = 1
( ) ∫ ( ) ( )
Công thức (1.11) cho phép tính đƣợc độ tin cậy của phần tử không
phục hồi khi đã biết cƣờng độ hỏng hóc τ (t), mà cƣờng độ hỏng hóc τ (t) này
xác định đƣợc nhờ phƣơng pháp thống kê quá trình hỏng hóc của phần tử
trong quá trình vận hành trƣớc kia.
10
Trong các hệ thống hiện nay thƣờng sử dụng điều kiện τ (t) = τ = h ng số
(λ tƣơng đối nhỏ), thực hiện đƣợc nhờ chế độ bảo quản định kỳ đối với các
thiết bị. Khi đó cƣờng độ hỏng hóc là giá trị trung bình số lần sự cố xảy ra
trong một đơn vị thời gian.
Khi đó: ; ( ) ; ( )
Q(t)
P(t)
1
Q(t)
P(t)
0
t
Biểu diễn mối quan hệ giữa các thông số trên nhƣ hình 1.4 sau:
Hình 1.4: Biểu diễn hàm phân phối và độ tin cậy
1
2
3
0
t
(t)
Hình 1.5: Biểu diễn cường độ hỏng hóc
Theo nhiều tài liệu thống kê thì quan hệ của cƣờng độ hỏng hóc τ (t) theo
thời gian thƣờng có dạng nhƣ hình 1.5. Đƣờng cong của cƣờng độ hỏng hóc τ
(t) đƣợc chia làm ba miền hay còn gọi là 3 thời kỳ vận hành của một thiết bị:
11
Miền 1: Mô tả thời kỳ “chạy thử”, những hỏng hóc ở giai đoạn này
thƣờng do lắp ráp, vận chuyển. Tuy giá trị ở giai đoạn này cao nhƣng thời
gian kéo dài ít, giảm dần và nhờ chế tạo, nghiệm thu có chất lƣợng nên giá trị
cƣờng độ hỏng hóc τ (t) ở giai đoạn này có thể giảm nhiều.
Miền 2: Mô tả giai đoạn sử dụng bình thƣờng, cũng là giai đoạn chủ yếu
của tuổi thọ các phần tử. Ở giai đoạn này, các sự cố thƣờng xảy ra ngẫu nhiên,
đột ngột do nhiều nguyên nhân khác nhau, vì vậy thƣờng giả thiết cƣờng độ
hỏng hóc τ (t) b ng h ng số.
Miền 3: Mô tả giai đoạn già cỗi của phần tử theo thời gian, cƣờng độ
hỏng hóc τ (t) tăng dần, đó là điều tất yếu xảy ra sự cố khi t →∞.
d) Thời gian hoạt động an toàn trung bình THD
Thời gian hoạt động an toàn trung bình THD hay còn đƣợc gọi là thời
gian trung bình đến lúc hƣ hỏng (MTTF: Mean Time To Failure) là thời gian
mà phần tử đảm bảo hoạt động tốt.
Thời gian hoạt động đƣợc định nghĩa là giá trị trung bình của thời gian
vận hành an toàn τ dựa trên số liệu thống kê τ của nhiều phần tử cùng loại,
nghĩa là THD là kỳ vọng toán hay còn gọi là giá trị trung bình của biến ngẫu
nhiên τ [9] và đƣợc xác định:
( )
∫ ( )
Từ (1.3) và (1.5) ta có:
∫ ( ( )) ∫ ( )
∫ ( )
∫
Sử dụng phƣơng pháp tính tích phân từng phần: ∫
∫ ( )
Đặt u=t; dv=P’(t)dt ta có:
∫ ( ) ( )
12
= 0
Do ( )
Vậy với τ (t) = h ng số, thì ( ) (phân bố hàm mũ)
∫
( )
⁄
Trong đó thƣờng chọn [τ] = 1/giờ và [THD] = giờ
( )
1.1.3.2. Phần tử phục hồi
Phần tử phục hồi là phần tử khi đƣa vào sử dụng đến khi xảy ra sự cố có
thể đƣợc đem đi sửa chữa phục hồi [6] hay là phần tử mà khả năng làm việc
của nó có thể thiết lập lại trong trƣờng hợp xảy ra hỏng [3]. Trong quá trình
vận hành phần tử này chỉ nhận một trong hai trạng thái: Trạng thái hoạt động
an toàn và trạng thái sửa chữa định kỳ hoặc sửa chữa sự cố.
Những thông số cơ bản của phần tử phục hồi gồm có:
a) Thông số dòng hỏng hóc
Thời điểm xảy ra sự cố và thời gian sửa chữa sự cố tƣơng ứng là những
đại lƣợng ngẫu nhiên, có thể mô tả trên trục thời gian nhƣ hình 1.6 dƣới đây.
T2 T3 T1 τ1 τ3 τ2 τ4
Hình 1.6: Các khoảng cách làm việc và khoảng cách phục hồi
Trong đó:
- T1, T2, T3 … biểu thị các khoảng thời gian hoạt động an toàn của các
phần tử giữa các lần sự cố xảy ra.
- τ1, τ2, τ3 … là thời gian sửa chữa sự cố tƣơng ứng.
13
Định nghĩa thông số dòng hỏng hóc (là cƣờng độ hỏng hóc đối với các
phần tử không phục hồi):
( ) ( ) ( )
Có ( ) là xác suất xảy ra hỏng hóc trong khoảng thời
gian t đến ( ). So với τ (t), trong trƣờng hợp này sẽ không đòi hỏi điều
kiện phần tử hoạt động tốt từ đầu đến thời điểm t mà chỉ cần đến thời điểm t
phần tử vẫn hoạt động (điều kiện này luôn luôn đúng vì phần tử là phục hồi).
τ (t).∆t là xác suất để hỏng hóc xảy ra trong khoảng thời gian t đến
( ) với ∆t đủ nhỏ. Giả thiết xác suất của thời gian hoạt động an toàn
THD của phần tử có phân bố mũ, với cƣờng độ hỏng hóc τ = h ng số, khi đó
khoảng thời gian giữa hai lần sự cố liên tiếp là T 1, T2 … cũng có phân bố
mũ và thông số dòng hỏng hóc là tối giản. Vậy thông số dòng hỏng hóc
là: τ (t) = τ = h ng số.
Vì vậy thông số dòng hỏng hóc và cƣờng độ hỏng hóc thƣờng đƣợc hiểu
theo cùng một ý nghĩa, trừ các trƣờng hợp riêng khi thời gian hoạt động
không tuân theo phân bố mũ thì phải phân biệt.
Đối với các phần tử phục hồi thuật ngữ MTBF (Mean Time Between
Failure) đƣợc dùng thay thế cho MTTF (Mean Time To Failure).
a. Thời gian trung bình sửa chữa sự cốτs
τs là kỳ vọng toán của τ1, τ2, τ3…là thời gian trung bình sửa chữa sự cố -
MTTR (Mean Time To Repair).
( )
Để đơn giản ta cũng xét xác suất của τs cũng tuân theo luật phân bố mũ.
Khi đó tƣơng tự đối với xác suất hoạt động an toàn ( ) của phần tử,
ta có thể biểu thị xác suất ở trong khoảng thời gian t phần tử đang ở trạng thái
hỏng hóc – nghĩa là chƣa sửa xong.
Xác suất phần tử ở trạng thái hỏng có giá trị là:
14
( ) ( )
Trong đó τ = 1/τs là cƣờng độ phục hồi hỏng hóc, (1/giờ).
Xác suất để sửa chữa kết thúc trong khoảng thời gian t, cũng chính là hàm
phân bố xác suất của thời gian τs là:
( ) ( )
Và hàm mật độ phân bố xác suất là:
( ) ( ) ( ) ( )
Vậy thời gian trung bình sửa chữa sự cố là:
( ) ∫ ( )
Phần tử có tính sửa chữa cao khi τs càng nhỏ (τ càng lớn) nghĩa là chỉ
sau một khoảng thời gian ngắn phần tử đã có khả năng hoạt động lại.
T là kỳ vọng toán của T1, T2, T3, ..., Tn. Vì thời gian trung bình giữa hai
hƣ hỏng liên tiếp có một lần sửa chữa ngay nên:
MTBF = MTTR + MTTF T = τs + THD
Với giả thiết T tuân theo luật phân bố mũ, giống nhƣ ở trên đã xét ta có:
Dựa vào sơ đồ ở hình 1.7 dƣới đây, ta có thể thấy đƣợc mối quan hệ
giữa thời gian trung bình để bị lỗi, phát hiện lỗi và sửa lỗi:
Hình 1.7: Một kịch bản phát hiện lỗi và sửa lỗi
15
b) Khả năng s n sàng hoạt động A (Availability)
Hệ số s n sàng A là phần lƣợng thời gian hoạt động trên toàn bộ thời gian
khảo sát của phần tử:
( ) ( )
c) Hàm tin cậy của phần tử R(t)
Độ tin cậy là xác suất mà thiết bị đảm bảo hoạt động không hƣ hỏng trong
thời gian t. Vậy R(t) là xác suất của giao hai sự kiện:
- Làm việc tốt tại t = 0
- Tin cậy trong khoảng 0 đến t
Giả thiết hai sự kiện này độc lập với nhau, ta có:
R(t) = A.P(t) (1.22)
Theo luật phân bố mũ:
( ) ( ) Trong đó: A là hệ số s n sàng.
1.2. Vai trò của độ tin cậy hệ thống
Với sự phát triển không ngừng của khoa học k thuật, đặc biệt là trong
lĩnh vực công nghệ, đã mở ra một thời kì mới với nhiều thành tựu về khoa học
công nghệ đƣợc ứng dụng trong các lĩnh vực khác nhau của cuộc sống nhƣ: y
tế, giáo dục, sản xuất công-nông nghiệp…Cùng với đó là sự phát minh ra
những hệ thống tính toán thông minh có khả năng thay thế hoặc hỗ trợ con
ngƣời nh m giảm công sức và tăng năng suất lao động. Các hệ thống siêu
phức tạp trong các lĩnh vực về khoa học máy tính, giao thông vận tải, năng
lƣợng và các ngành khác của nền kinh tế đã ra đời đánh dấu bƣớc nhảy vọt về
trình độ khoa học công nghệ. Trong các hệ thống đang vận hành đó, không
đơn thuần chỉ là một hệ thống đơn giản mà nó đƣợc đƣợc đặc trƣng bởi một
số lƣợng lớn các yếu tố thành phần, có cấu trúc phức tạp với các chƣơng trình
tính toán, điều khiển các hoạt động của nó. Đây chính là những hệ thống có
16
tính ứng dụng cao, tham gia vào trong tất cả các lĩnh vực của đời sống, là toàn
bộ cơ sở hạ tầng của xã hội hiện đại. Tuy nhiên, cũng chính vì các hệ thống
này tham gia tất cả các lĩnh vực trong xã hội nên nền sản xuất xã hội luôn
phải đối mặt với nguy cơ các thiết bị không s n sàng để hoạt động một cách
chính xác, cùng với việc thao tác sai và những sai lầm không đáng có trong
quá trình thiết kế chế tạo thiết bị,...đã làm cho cấu trúc hệ thống bị phá v , các
chức năng của hệ thống hoạt động không chính xác. [4]
Đối với những hệ thống lớn nhƣ máy bay, phi thuyền, dây chuyền sản
xuất công nghiệp, độ tin cậy đóng vai trò cực kì quan trọng. Tất cả các thành
phần trong hệ thống đƣợc thiết kế đảm bảo độ tin cậy riêng nh m đảm bảo độ
tin cậy của hệ thống. Trên thế giới đã có những kinh nghiệm tƣơng tự nhƣ:
Một điện trở nhỏ trị giá 10 cent khi có sự cố có thể làm hỏng chuyến bay của một
tên lửa trị giá 300.000 USD. Trong thực tế tổn thất về độ tin cậy không nhất thiết
vì sự hƣ hỏng của những bộ phận phức tạp, có khi chỉ do làm sai chức năng của
những bộ phận đơn giản nhƣ lắp ráp sai linh kiện điện, thu lực...
Từ những nguy cơ đối mặt với các hệ thống không hoạt động, thiết bị
cho kết quả không chính xác…chúng ta thấy đƣợc nguy cơ tiềm tàng xảy ra
đối với mỗi hệ thống. Từ vấn đề trên chúng ta càng hiểu rõ hơn tầm quan
trọng của các vấn đề liên quan đến độ tin cậy, khả năng hoạt động ổn định của
hệ thống…
Giải quyết vấn đề này sẽ cho phép giảm tổn thất do hệ thống ngừng hoạt
động, giảm chi phí thay thế, chi phí cho việc duy trì hoạt động, chi phí sửa
chữa. Các hệ thống có độ tin cậy thấp sẽ gây ra mất an toàn trong lao động
đôi khi còn nguy hiểm đến tính mạng con ngƣời, đƣa đến những hậu quả
không lƣờng hết đƣợc về mặt kinh tế. Định lƣợng độ tin cậy của phần tử hoặc
của cả hệ thống đƣợc đánh giá b ng cách phân tích, tính toán các chỉ số của
độ tin cậy, dựa trên hai yếu tố cơ bản là: Tính làm việc an toàn và tính sửa
chữa đƣợc.
17
Việc cần phát triển nhanh chóng các phƣơng pháp để đảm bảo nâng cao
độ tin cậy của các hệ thống ở tất cả các giai đoạn thiết kế, thử nghiệm, sản
xuất và hoạt động là điều hết sức quan trọng và cần thiết. Khi biết đƣợc độ tin
cậy của hệ thống có thể giúp chúng ta có đƣợc kế hoạch bảo trì, lên kế hoạch
dự phòng, nâng cao độ tin cậy, tránh đƣợc các sự cố lỗi có thể gây ra.
Lĩnh vực nghiên cứu về độ tin cậy của hệ thống tính toán hiện đang đƣợc
các nhà khoa học giành thời gian và công sức, cũng nhƣ đã có nhiều các công
bố khoa học quan trọng. Trong bài báo của Vijay Kumar và các đồng nghiệp
đã sử dụng mô hình Markov trong việc xác định và đánh giá các vấn đề liên
quan tới độ tin cậy [10], cũng nhƣ khả năng chịu lỗi của các thiết bị trong hệ
thống Sensor Network. Kết quả của nghiên cứu đƣa ra một cơ chế dự phòng
cho các thiết bị nh m sử dụng thay thế các sensor hỏng bởi các sensor dự
phòng, với cơ chế dự phòng này, các tác giả đã sử dụng tính toán để so sánh
và chứng minh độ tin cậy của hệ thống đã đƣợc cải thiện.
Nhóm tác giả V. Lakshminarayanan đã nghiên cứu sự tác động của điều
kiện môi trƣờng, cụ thể là nhiệt độ tới các thiết bị điện. Trong 2 trƣờng hợp
đƣợc sử dụng để thực hiện nghiên cứu tính toán, có sự chênh lệch về nhiệt độ ở mức 50oC và 125o C, kết quả cho thấy MTTF trong hai trƣờng hợp này có
sự chênh lệch nhau khá rõ. Điều này chứng tỏ sự tác động của các điều kiện
tự nhiên nhƣ nhiệt độ, độ ẩm không khí…sẽ ảnh hƣởng tới hoạt động của các
thiết bị điện tử, từ đó sẽ làm giảm mức độ tin cậy của hệ thống chung.
Bài báo của nhóm tác giả Lê Quang Minh nghiên cứu và đề xuất giải
pháp nh m nâng cao độ tin cậy cho hệ thống máy chủ DNS Anycast với
phƣơng pháp dự phòng tích cực [12]. Trong nghiên cứu này, nhóm nghiên
cứu phân tích các vấn đề ảnh hƣởng tới hoạt động và hiệu quả của các máy
chủ DNS có sử dụng công nghệ Anycast, từ đó với giả sử coi các yếu tố đó
nhƣ một tham số , với việc áp dụng công thức tính độ tin cậy cho hệ thống
song song và các phần tử là đồng nhất và không phục hồi. Với việc đƣa ra 2
18
phƣơng án dự phòng, bài báo đã thực hiện tính toán và so sánh đƣa ra đề xuất
cho một giải pháp có khả năng áp dụng cho hệ thống máy chủ DNS nh m
nâng cao độ tin cậy cho hệ thống.
Ngoài những nghiên cứu về mặt lý thuyết độ tin cậy, hiện nay trong hầu
hết các lĩnh vực trên thực tế đều yêu cầu đến vấn đề về đảm bảo độ tin cậy
của các hệ thống, thiết bị trƣớc khi đƣa vào sản xuất và vận hành, điều đó cho
thấy vai trò và tầm quan trọng của độ tin cậy hệ thống là rất lớn.
1.3. Các bƣớc tính toán độ tin cậy hệ thống
Nhƣ đã định nghĩa ở phần trên, độ tin cậy là xác suất để hệ thống (hoặc
phần tử) hoàn thành triệt để nhiệm vụ yêu cầu trong khoảng thời gian nhất
định và trong điều kiện vận hành nhất định. Mức đo độ tin cậy chính là xác
suất hoàn thành nhiệm vụ trong khoảng thời gian xác định. Xác suất này đƣợc
gọi là độ tin cậy của hệ thống (hay phần tử) và là đại lƣợng thống kê, do đó
độ tin cậy là khái niệm có tính thống kê từ kinh nghiệm làm việc trong quá
khứ của hệ thống (hay phần tử). Các bƣớc tính toán độ tin cậy của hệ thống
bao gồm:
Bƣớc 1: Xây dựng sơ đồ logic theo cấu trúc hệ thống
Bƣớc 2: Tìm các đƣờng đi thành công của hệ thống và ghi lại
những đƣờng đi đó dƣới dạng các toán tử logic cơ bản, rồi tiến hành
tối thiểu hóa các toán tử logic.
Bƣớc 4: Chuyển đổi mô hình logic sang giá trị đại số
Bƣớc 3: Trực giao hoá các toán tử logic
1.3.1. Xây dựng sơ đồ logic theo cấu trúc hệ thống
Cấu trúc vật lý của một hệ thống tính toán hiện nay có thể có nhiều dạng
khác nhau nhƣng hầu hết là sự kết hợp giữa sơ đồ nối tiếp (Hình 1.8) và sơ đồ
song song (Hình 1.9).
19
1
2
3
n
N
T
1
2
T
N
n
Hình 1.8: Sơ đồ của hệ các phần tử nối tiếp
Hình 1.9: Sơ đồ của hệ các phần tử song song
Sơ đồ cấu trúc logic là biểu diễn cấu trúc logic của hệ thống b ng sơ đồ
theo các quy ƣớc về cách mã hoá và biểu diễn mối quan hệ giữa các thành
phần dƣới dạng các ký hiệu. Việc xây dựng thành công sơ đồ cấu trúc logic
của hệ thống cho ta một hình ảnh trực quan về cấu trúc hệ thống và sẽ là điều
kiện tiền đề để có thể phân tích và đánh giá độ tin cậy của hệ thống.
Sơ đồ cấu trúc logic bao gồm:
- Các phần tử của một cấu trúc logic (hay còn gọi là các đỉnh), trong đó
có một nút khởi đầu và kết thúc (đầu vào và đầu ra), các nút trung gian.
- Các đỉnh đƣợc kết nối bởi các cạnh.
- Hƣớng của các cạnh trong đồ thị:
* Nếu việc truyền trao đổi thông tin giữa các đỉnh chỉ theo một hƣớng thì
các cạnh tƣơng ứng trong sơ đồ cấu trúc logic có hƣớng theo hƣớng truyền.
* Nếu các đỉnh truyền thông tin theo cả hai hƣớng thì các cạnh tƣơng
ứng trong sơ đồ khối là vô hƣớng.
- Cặp gồm hai đỉnh khác nhau trao đổi thông tin cho nhau đƣợc gọi là
một cạnh (cung) của sơ đồ cấu trúc logic.
20
1.3.2. Thuật toán chuyển đổi sơ đồ cấu trúc logic sang đồ thị liên kết
a) Phân loại các đỉnh và các cạnh của đồ thị liên kết
- Nút nguồn: Có ít nhất một cung đi ra và không có cung đến.
- Nút đích: Có ít nhất một cung đi vào và không có cung đi ra.
- Cạnh: Nối 2 đỉnh khác nhau của đồ thị. Ví dụ: Cạnh nối đỉnh i và j, ký
hiệu là (i,j).
- Cung: Là cạnh có hƣớng. Ví dụ: Cạnh nối 2 đỉnh i và j tƣơng ứng với 2
cung là (i,j) và (j,i) và có (i,j)=(j,i).
- Đƣờng đi bắt đầu từ một đỉnh và kết thúc tại chính đỉnh đó đƣợc gọi là
chu trình hay vòng lặp. Độ dài của đƣờng đi b ng số các cạnh (hoặc cung)
trong đƣờng đi đó.
- Đƣờng (chu trình) trong đồ thị đƣợc gọi là đơn nếu nó đi qua mỗi cạnh
đúng một lần.
- Đƣờng (chu trình) trong đồ thị đƣợc gọi là sơ cấp nếu nó đi qua mỗi
đỉnh đúng một lần.
- Đƣờng đi qua tất cả các đỉnh gọi là đƣờng đi đầy đủ.
b) Thuật toán chuyển đổi từ sơ đồ cấu trúc logic sang đồ thị liên kết
Thuật toán chuyển đổi từ sơ đồ cấu trúc logic sang đồ thị liên kết gồm
các bƣớc sau:
- Nguồn của sơ đồ cấu trúc logic đƣợc thay thể b ng các đỉnh của đồ thị,
gọi là đỉnh gốc. Các cung bắt đầu từ đỉnh nguồn của sơ đồ cấu trúc logic đƣợc
thay thế b ng các cung của đồ thị và xuất phát từ đỉnh gốc.
- Các nút đỉnh đƣợc thay thế b ng các đỉnh của sơ đồ cấu trúc logic.
- Các cung trong sơ đồ cấu trúc logic đƣợc thể hiện b ng các cung trong
đồ thị với các đỉnh tƣơng ứng.
- Tất cả các đỉnh khác (đỉnh khuyên – bắt đầu và kết thúc tại chính nó)
đƣợc thể hiện b ng các cung trong đồ thị.
21
- Các cung và các cạnh của đồ thị đƣợc thay thế bởi các cung của sơ đồ
cấu trúc logic.
Trong trƣờng hợp sơ đồ cấu trúc logic vô hƣớng thì việc biến đổi là đơn
giản nhƣng nếu sơ đồ cấu trúc logic là có hƣớng thì việc quan trọng là phải
xác định hƣớng của các cung và xây dựng làm sao cho hệ thống đạt hiệu quả.
Đồ thị liên kết nói chung (có ít nhất một cạnh) là có hƣớng nếu các cặp
(i,j) đƣợc sắp thứ tự và mỗi cặp (i,j) là một cung. Đồ thị là vô hƣớng nếu các
cặp (i,j) không sắp thứ tự và mỗi cặp (i,j) gọi là một cạnh
c) Thuật toán tìm tất cả các đƣờng đi trong ma trận liên kết:
* Trường hợp đồ thị cần biểu diễn là vô hướng:
Ý tưởng thuật toán: Đồ thị có thể đƣợc biểu diễn b ng ma trận kề vuông
cấp n, với n là số đỉnh của đồ thị. Phần tử δij ở hàng i cột j (i,j=0,1,2, ...n)
đƣợc xác định nhƣ sau:
- δij =1 nếu cặp đỉnh xi và xj có cạnh nối với nhau.
- δij =0 nếu cặp đỉnh xi và xj không có cạnh nào nối với nhau.
Ma trận của đồ thị vô hƣớng là ma trận đối xứng, tức là các phần tử đối
xứng qua đƣờng chéo chính sẽ tƣơng ứng b ng nhau.
* Trường hợp đồ thị cần biểu diễn là có hướng:
Ý tưởng thuật toán: Đồ thị có thể đƣợc biểu diễn b ng ma trận kề vuông
cấp n, với n là số đỉnh của đồ thị. Phần tử δij ở hàng i cột j (i,j=0,1,2, ...n)
đƣợc xác định nhƣ sau:
- δij =1 nếu cặp đỉnh (xi, xj ) có cung.
- δij =0 nếu cặp đỉnh (xi, xj ) không có cung nào.
Ma trận của đồ thị có hƣớng không phải là ma trận đối xứng và ma trận
biểu diễn đồ thị đơn là ma trận logic.
d) Thuật toán tìm tất cả các đường đi trong ma trên kề:
Để tìm tất cả các đƣờng đi trong ma trận kề dựa trên thao tác nhân ma
trận liên kết một cột tƣơng ứng của ma trận đó đƣợc thể hiện nhƣ sau:
22
k- 1(*)
Bk = A B*
Trong đó: - Bk cột ma trận kết quả của phép nhân (*).
k- 1 là kết quả của phép chuyển đổi B k- 1 ;
- B*
Bài toán tìm tất cả các đƣờng đi trong ma trận kề trở thành bài toán cho
ma trận A và ma trận cột B1 hãy tìm tất cả các đƣờng đi có thể có từ nguồn
(điểm phát) tới đích (điểm nhận).
Thuật toán:
- Bước 1: Kiểm tra ma trận cột B1 có chứa cung bắt đầu từ đỉnh nguồn
hay không. Nếu cung tồn tại thì ghi nhận đƣờng đi đó và thay thế cung đó bởi
1 ;
giá trị 0. Sự thay đổi này sẽ cho ta kết quả là B*
- Bước 2: Xét với k=2.
- Bước 3: Thực hiện phép tính (*) để tìm các giá trị Bk tƣơng ứng.
- Bước 4: Kiểm tra Bk bắt đầu từ nguồn, nếu đƣờng đi tồn tại thì ghi nhớ
và thay thế cung đƣờng đi đó bởi giá trị 0. Nếu đƣờng đi xuất hiện trong Bk là
k .
đƣờng đi đầy đủ thì thay thế Bk = 0. Sự thay đổi này cho ta kết quả là B*
k . Nếu B*
k =0 thì thực hiện tiếp bƣớc 7. Nếu B*
k ≠
- Bước 5: Kiểm tra B*
0 thì thực hiện tiếp bƣớc 6.
- Bước 6: Kiểm tra điều kiện k ≤ n-1. Nếu thoả mãn điều kiện k < n-1 thì
tăng k lên 1 và thực hiện tiếp bƣớc 3. Nếu điều kiện k = n-1 thì thực hiện tiếp
bƣớc 7.
- Bước 7: Kiểm tra lại danh sách đƣờng đi và kết quả nhận đƣợc là danh
sách các đƣờng đi có thể có từ đỉnh đầu đến đỉnh cuối.
* Ví dụ minh hoạ:
Xét ví dụ sau: cho hai đồ thị có hƣớng và đồ thị vô hƣớng
23
Đồ thị nhƣ hình 1.2a và 1.2b đƣợc chuyển thành dạng ma trận liên kết
tƣơng ứng là A1 và A2 trong đó các phần tử là 0 hoặc (i,j):
Để thuận tiện và đơn giản hóa cách viết các phần tử trong ma trận thì ta
bỏ dấu ngoặc đơn và dấu phẩy giữa hai đỉnh kết nối. Ví dụ: (1,2) = 12,…
Áp dụng thuật toán vừa trình bày ở mục trên để áp dụng với ma trận A1
để tìm tất các các đƣờng đi trong ma trận từ đỉnh nguồn là đỉnh 1 và đỉnh đích
là đỉnh 4:
Các bƣớc tiếp theo của thuật toán đƣợc thực hiện nhƣ sau:
Theo thuật toán thì ở bƣớc 6 khi gặp điều kiện k = n -1 thì dừng lại và
chuyển sang bƣớc 7 tức là liệt kê tất các đƣờng đi đã tìm đƣợc. Với bài toán
này ta đã tính đƣợc các ma trận B1, B2, B3 và danh sách tất cả các đƣờng đi
từ đỉnh 1 (đỉnh nguồn) đến đỉnh 4 (đỉnh đích) là: 14, 12*24, 13*34,
24
12*23*34, 13*32*24. Hệ thống có cấu trúc phức tạp đƣợc mô tả thông qua đồ
thị có tất cả các đƣờng đi thành công f(1,4): 1→4 v 1→2→4 v 1→3→4 v
1→2→3→4 v 1→3→2→4
e) Thuật toán tìm tất cả đƣờng đi của ma trận liên kết theo lý thuyết đồ thị
Thuật toán đã trình bày trong phần 2.1.3 chỉ thích hợp với những đồ thị
có kích thƣớc nhỏ. Đối với các đồ thị có kích thƣớc lớn thì việc thực hiện
bƣớc 4 và 5 là rất khó khăn, việc tính toán dài và dễ nhầm lẫn vì các phần tử
của ma trận lúc này là các chuỗi dài. Chính vì sự khó khăn đó nên yêu cầu cần
phát triển một thuật toán để tự động tìm kiếm tất cả các đƣờng đi giữa 2 đỉnh
của đồ thị.
Trong bài toán lý thuyết đồ thị [1] thì chúng ta biết đến bài toán tìm
đƣờng đi ngắn nhất, bài toán đƣờng đi tối thiểu giữa hai đỉnh của đồ thị, bài
toán tìm đƣờng đi qua tất cả các đỉnh của đồ thị nhƣng bài toán ở đây là tìm
tất cả danh sách các đƣờng đi từ đỉnh đầu đến đỉnh cuối của đồ thị.
* Ý tưởng thuật toán: Thuật toán sử dụng phƣơng pháp tìm kiếm theo chiều
sâu. Tƣ tƣởng của tìm kiếm theo chiều sâu là: Từ đỉnh nguồn (đỉnh đầu) của
đồ thị ta di chuyển đến một đỉnh khác (một đỉnh bất kỳ mà có thể đi từ đỉnh
đầu). Từ đỉnh này ta tiếp tục đi đến khác đỉnh khác. Nếu không thể đi tiếp
đƣợc nữa thì quay lại đỉnh trƣớc đó và đi đến đỉnh khác. Cứ nhƣ vậy cho đến
khi đến đỉnh cuối của đồ thị.
* Ví dụ mô tả:
Xét lại ví dụ trên, cho đồ thị vô hƣớng:
Áp dụng thuật toán tìm kiếm theo chiều sâu, ma trận A1 sẽ đƣợc viết lại
nhƣ sau:
25
Để tìm tất cả các đƣờng dẫn từ đỉnh 1 (nguồn) đến đỉnh 4 (đích) theo
thuật toán 2.1.3 chúng ta có đƣờng đi đầu tiên từ đỉnh 1→ 2, đỉnh 2 không
phải là đỉnh đích nên chuyển tiếp sang đỉnh 3, theo đƣờng: 1→2→3; đỉnh 3
không phải là đỉnh đích nên đi tiếp sang đỉnh 4, đỉnh 4 là đỉnh đích nên ta có
đƣờng đi: 1→2→3→4. Ghi nhớ lại đƣờng đi này và quay trở lại đỉnh 3,
nhƣng không có đƣờng đi nào từ đỉnh 3 đến đỉnh 4 ngoài con đƣờng đã tìm
đƣợc nên từ đỉnh 3 quay lại đỉnh 2 hoặc đỉnh 1.
- Nếu quay lại đỉnh 2 thì từ đỉnh 2 ta có thể đi tiếp đến đỉnh 4, vậy ta có
đƣờng đi: 1→2→4.
- Nếu quay lại đỉnh 1 thì ta có thể đi tiếp đến đỉnh 4, vậy ta có đƣờng đi:
1→3→4.
Tƣơng tự nhƣ vậy ta cũng tìm đƣợc các đƣờng đi: 1→ 3→ 2 → 4 và 1→ 4.
Hệ thống phức tạp đƣợc mô tả b ng phƣơng pháp đồ thị, áp dụng thuật
toán ở mục 2.1.3 ta tìm đƣợc tất cả các đƣờng đi thành công f(1,4): 1→4 v
1→2→4 v 1→3→4 v 1→2→3→4 v 1→3→2→4.
f) Tối thiểu hóa các toán tử logic
Việc tối thiểu hoá các toán tử logic thƣờng dựa trên các h ng đẳng thức
Boolean hay còn đƣợc gọi là các luật trong đại số Boolean.Tối thiểu hoá hàm
Boolean tức là tìm dạng biểu thức đơn giản nhất của hàm Boolean đó.
Các phƣơng pháp để tối thiểu hoá hàm Boolean bao gồm:
- Phƣơng pháp biến đổi đại số;
- Phƣơng pháp bảng Karnaugh;
- Phƣơng pháp Quine – Mc.Cluskey.
* Phƣơng pháp biến đổi đại số
Phƣơng pháp này dựa trên các luật, các h ng đẳng thức của đại số boole
để tối thiểu hoá các các biến và các phép toán trên biểu thức boole.
26
Ở đây ta đã sử dụng luật tồn tại của phần tử bù để tối thiểu hàm f(x,y).
* Phƣơng pháp bảng Karnaugh
Phƣơng pháp này dựa trên việc tổ hợp các hội sơ cấp có thể tổ hợp đƣợc
để loại bỏ các hội sơ cấp của hàm boole không cần thiết. Phƣơng pháp bảng
Karnaugh [5] mà ta sẽ nói ở đây đã đƣợc Maurice Karnaugh đƣa ra vào năm
1953. Phƣơng pháp này dựa trên một công trình trƣớc đó của E.W. Veitch và
nó cho ta một phƣơng pháp trực quan để rút gọn các khai triển tổng và tích.
Chú ý:
- Phƣơng pháp tối thiểu hoá hàm boole sử dụng bảng Karnaugh chỉ tổ hợp đƣợc khi số các hội sơ cấp sẽ tổ hợp là 2k và đối xứng với nhau qua các trục của bảng. Mục tiêu là cần nhận dạng các khối 2k ô biểu diễn các hội sơ
cấp có thể tổ hợp lại đƣợc mà trƣớc hết là nhận dạng khối lớn nhất.
- Nếu hàm cần tối thiểu hoá có n bit và số các hội sơ cấp có thể tổ hợp lại
đƣợc là 2k thì sau khi tổ hợp sẽ có n-k biến thuộc tổ hợp.
* Phƣơng pháp Quine – Mc.Cluskey
Các bảng Karnaugh có thể đƣợc dùng để tạo biểu thức cực tiểu của các
hàm Boolean nhƣ tổng của các tích Boolean. Tuy nhiên, các bảng Karnaugh sẽ
rất khó dùng khi số biến lớn hơn bảy. Hơn nữa, việc dùng các bản đồ Karnaugh
lại dựa trên việc rà soát trực quan để nhận dạng các số hạng cần đƣợc nhóm lại.
Vì những nguyên nhân đó, cần phải có một thủ tục rút gọn những khai triển tổng
các tích có thể cơ khí hoá đƣợc. Phƣơng pháp Quine-Mc.Cluskey [1] là một thủ
tục nhƣ vậy. Nó có thể đƣợc dùng cho các hàm Boole có số biến bất kỳ. Phƣơng
pháp này đƣợc W.V. Quine và E.J. McCluskey phát triển vào những năm 1950.
Về cơ bản, phƣơng pháp Quine-Mc.Cluskey có hai phần:
27
- Phần đầu là tìm các số hạng là ứng viên để đƣa vào khai triển cực tiểu
nhƣ một tổng các tích Boole mà ta gọi là các nguyên nhân nguyên tố.
- Phần thứ hai là xác định xem trong số các ứng viên đó, các số hạng nào
là thực sự dùng đƣợc.
1.3.3. Trực giao hóa các toán tử logic
Trực giao hóa các toán tử logic có thể coi là giai đoạn phức tạp nhất
trong quá trình tính toán độ tin cậy của hệ thống.
Vị từ 1 ngôi (ký hiệu là f(x)) đƣợc gọi là trực giao nhau khi và chỉ khi
kết quả của chúng b ng 0. Tuy nhiên nếu vị từ mà ta xét không phải là vị từ 1
ngôi mà là vị từ n ngôi (ký hiệu là f(x1, x2, …, xn)) thì chúng đƣợc gọi là trực
giao khi và chỉ khi các phần tử của chúng là trực giao và cho kết quả b ng 0.
Vậy phƣơng pháp trực giao chính là phƣơng pháp biến đổi logic sao cho kết
quả của các toán tử đều b ng 0.
Một trong những phƣơng pháp thƣờng đƣợc sử dụng là phƣơng phát trực
giao hóa theo công thức của Poresky.
Thuật toán trực giao hoá theo công thức của Poresky
Thuật toán trực giao hoá theo công thức của Poresky [10] gồm các bƣớc sau:
1- Hàm logic đƣợc viết dƣới dạng chuẩn tắc tuyển nhƣ sau:
f(xn) = K1 K2 … Kj …. KR
Trong đó: Kj là mệnh đề sơ cấp có số thứ tự là j.
2- Tất cả các biến trong hàm logic khi đƣợc viết dƣới dạng chuẩn tắc
tuyển thì phải đƣợc sắp xếp theo thứ tự tăng dần, bắt đầu với bậc thấp nhất
của biến.
3- Dạng chuẩn tắc tuyển đƣợc viết dƣới dạng công thức Poresky nhƣ sau:
28
4- Khai triển công thức ta đƣợc dạng trực giao không lặp của hàm ban đầu.
Ta thấy r ng việc sử dụng thuật toán đƣa hàm logic về dạng chuẩn tắc
tuyển đã trực giao này khá phức tạp trong việc triển khai các toán tử. Số
lƣợng các biến khi khai triển là khá dài. Tuy nhiên đây chính là một cách để
phát triển chƣơng trình trực giao hoá của hàm logic trên máy tính.
Thuật toán trực giao hoá theo công thức Poresky có thể đƣợc sử dụng
dƣới hình thức sửa đổi một chút nhƣ sau:
1. Hàm logic đƣợc viết dƣới dạng chuẩn tắc tuyển nhƣ sau:
f(xn) = K1 K2 … Kj …. KR
2. Từ dạng trực giao ta sử dụng công thức De Morgan để tiếp tục biến
đổi về dạng:
3. Kết quả nhận đƣợc sau khi loại bỏ hết các biến lặp ta đƣợc dạng trực
giao không lặp của hàm logic ban đầu. Dựa vào kết quả nhận đƣợc ta có thể
dễ dàng tính các hàm xác suất.
1.3.4. Chuyển đổi mô hình logic sang giá trị đại số
Bất kỳ một sự kiện phức tạp nào cũng có thể viết đƣợc dƣới dạng hàm
logic với các phép toán logic. Xác suất của hàm f(xi) luôn b ng 1, đƣợc ký
hiệu là P[f(xi)]=1.
Khi hàm logic đã đƣợc chuyển đổi về dạng chuẩn tắc tuyển trực giao
thì ta có thể tính xác suất của hàm một cách đơn giản theo quy tắc sau:
1. Các ký hiệu phép cộng và nhân logic đƣợc thay thế bởi dấu các phép
cộng và phép nhân đại số.
2. Các ký hiệu xi và xi đƣợc thay thế b ng các xác suất Pi và Qi tƣơng ứng.
Quá trình chuyển đổi về hàm xác suất đƣợc thực hiện theo quy tắc sau:
1. Sử dụng công thức De Morgan để đƣa về dạng chuẩn tắc hội, không
chứa phép cộng logic nào.
29
2. Các ký hiệu phép cộng và nhân logic đƣợc thay thế bởi dấu các phép
cộng và phép nhân đại số.
3. Các ký hiệu xi v xi đƣợc thay thế b ng các xác suất Pi và Qi tƣơng ứng. ̅( )đƣợc thay thế bởi 1- ̅( )
30
CHƢƠNG 2
CÁC PHƢƠNG PHÁP DỰ PHÒNG NÂNG CAO ĐỘ TIN CẬY
CỦA HỆ THỐNG
2.1. Bài toán dự phòng trong hệ thống
Bài toán dự phòng hay là nâng cao độ tin cậy cho hệ thống b ng cách
đƣa ra các đối tƣợng dƣ thừa làm nguồn lực bổ sung để các đối tƣợng có thể
thực hiện chức năng, nhiệm vụ của mình. Mục đích chính của giải pháp dự
phòng trong hệ thống chính là để đảm bảo cho hệ thống đó hoạt động bình
thƣờng sau khi xuất hiện của các lỗi trong các thành phần của nó.
Các thành phần của hệ thống phức tạp thƣờng cho độ tin cậy thấp nên
đòi hỏi cần phải có phƣơng pháp phát triển đặc biệt nhƣ thế nào để đảm bảo
tăng cƣờng và duy trì độ tin cậy cho những hệ thống phức tạp. Để nâng cao
đƣợc độ tin cậy của các hệ thống nhƣ thế thì phải bao gồm cả sự phát triển
của phƣơng pháp toán học, tính toán ƣu tiên và đánh giá thử nghiệm. Phƣơng
pháp tính toán về độ tin cậy của hệ thống dựa trên cơ sở lý thuyết xác suất và
quá trình ngẫu nhiên đã đƣợc áp dụng và đã đạt đƣợc những kết quả khả quan.
Từ những thông số về độ tin cậy của hệ thống thì chúng ta sẽ lập nên các
phƣơng pháp dự phòng để nâng cao độ tin cậy của hệ thống.
Độ tin cậy và khả năng hoạt động an toàn của hệ thống là phụ thuộc vào
phần lớn vào cấu trúc hệ thống, cũng nhƣ độ tin cậy của các thành phần cấu
thành hệ thống. Các phƣơng pháp nâng cao độ tin cậy của hệ thống dựa trên
cấu trúc của hệ thống thông qua độ tin cậy của từng thành phần hệ thống là một
bài toán phức tạp mà để giải quyết bài toán đó thì cần đến các công cụ nhƣ lý
thuyết xác suất, lý thuyết đồ thị, logic toán học. Việc nghiên cứu các phƣơng
pháp để nâng cao độ tin cậy của hệ thống là một trong những biện pháp để phát
triển công nghệ hiện đại ngày nay. Trong dự phòng cấu trúc thì có bốn phƣơng
pháp dự phòng cơ bản thƣờng đƣợc nghiên cứu:
31
- Dự phòng nóng
- Dự phòng lạnh
- Dự phòng theo cơ chế bỏ phiếu (chập 3)
- Dự phòng bảo vệ tích cực.
2.2. Các phƣơng pháp dự phòng truyền thống
2.2.1. Phương pháp dự phòng nóng
Hệ thống dự phòng nóng là hệ thống trong đó các phần tử dự phòng chịu
tải nhƣ nhau và nhƣ phần tử cơ bản, cả trƣớc và sau khi chúng bƣớc vào trạng
thái làm việc. Hệ thống có dự phòng nhƣ vậy còn gọi là hệ thống song song. [4]
Phần tử dự phòng khi thay thế phần tử bị hỏng vẫn giữ nguyên chế độ tải
trọng của mình. Do đó độ tin cậy của nó không phụ thuộc vào thời điểm
chuyển tiếp nó từ trạng thái dự phòng sang trạng thái làm việc. Hệ thống song
song nhƣ vậy chỉ bị hỏng khi các phần tử đều hỏng (lần lƣợt cho tới phần tử
cuối cùng), tức là sự hỏng của hệ là giao của các sự kiện hỏng của các phần
tử. [4]
Giả sử hệ thống có 1 phần tử gốc và n-1 phần tử dự phòng.
Hình 2.1: Hệ thống dự phòng nóng
Ta gọi:
- p1(t), p2(t)…pn(t) là độ tin cậy của các phần tử tƣơng ứng.
- q1(t), q2(t)…qn(t) là độ không tin cậy của chúng.
- Ps(t) là độ tin cậy của hệ thống và Qs(t) là độ không tin cậy.
- Theo lý thuyết nhân xác suất ta đƣợc xác suất hỏng (độ không tin cậy)
của hệ thống:
32
Độ tin cậy của hệ thống:
Độ tin cậy của phần tử thứ i: pi(t) = 1 - qi(t) nên có thể viết lại công thức
tính độ tin cậy của hệ thống nhƣ sau:
Từ công thức trên ta thấy độ tin cậy của hệ phụ thuộc vào số lƣợng và độ
tin cậy riêng của phần tử mà không phụ thuộc vào thời điểm chuyển tiếp.
Nếu mọi phần tử có cùng độ tin cậy:
p1(t) = p2(t) = …. = pn(t) = p(t)
Thì lúc này độ tin cậy của hệ thống sẽ đƣợc tính bởi:
(2.3) Pn(t) = 1 – [1 – p(t)]n
Trường hợp phân phối mũ:
Gọi các tham số phân phối (cƣờng độ hỏng) của phần tử là λi; i =1,..,n.
Xác suất không hỏng của phần tử thứ i đƣợc tính b ng:
Vậy kỳ vọng thời gian làm việc không hỏng của hệ thống song song gồm
n phần tử đƣợc tính:
Khi các phần tử có cùng loại, có các λi b ng nhau và b ng thì độ tin cậy
của hệ thống đƣợc tính b ng:
Khi đó kỳ vọng thời gian làm việc không hỏng của hệ thống:
33
2.2.2. Phương pháp dự phòng lạnh
Hệ thống dự phòng lạnh là hệ thống trong đó các phần tử dự phòng chƣa
hoạt động cho đến khi chúng đƣợc thay thế cho phần tử bị hỏng. Chỉ khi hệ
thống có sự cố hoặc cần sửa chữa, bảo trì thì phần tử dự phòng đƣợc khởi
động lên để thay thế phần tử hỏng.[4]
Giả sử phần tử ở trạng thái dự trữ sẽ không bị hỏng và không bị thay đổi
độ tin cậy trong trạng thái làm việc.
Hình 2.2: Hệ thống dự phòng lạnh
Giả sử hệ thống có 1 phần tử gốc và n – 1 phần tử dự trữ. Ta ký hiệu pi(t)
là độ tin cậy thứ i theo thứ tự của phần tử, còn qi(t) là độ không tin cậy của nó.
Phần tử gốc sau một thời gian t1 làm việc sẽ bị hỏng và đƣợc thay b ng
phần tử dự trữ thứ nhất nó lại làm việc một thời gian ngẫu nhiên t2…. Phần tử
dự trữ cuối cùng sau thời gian in sẽ bị thay thế. Nhƣ vậy thời gian sống ngẫu
nhiên của nhóm Tn là:
Khi các phần tử có độ tin cậy nhƣ nhau thì: Tn = n ̅ Ta xét độ tin cậy của hệ thống trong hai trƣờng hợp khác nhau về
phƣơng thức hoạt động của bộ chuyển tiếp.
Bộ chuyện tiếp hoạt động lý tưởng
Giả sử bộ chuyển tiếp không hỏng, hoạt động chính xác về thời gian và
đúng thứ tự chuyển. Xét hệ có 2 phần tử:
Ký hiệu; Ai, i=1, 2 là sự kiện phần tử thứ i làm việc không hỏng;
34
Ti là tuổi thọ ngẫu nhiên của phần tử thứ i với mật độ phân phối fi(ti)
Những khả năng đảm bảo cho hệ thống làm việc tính tới thời điểm t
không hỏng:
- Phần tử thứ nhất (phần tử cơ bản) làm việc tới thời điểm t vẫn không bị hỏng
- Phần tử cơ bản bị hỏng trƣớc thời điểm t, phần tử thứ hai đƣợc chuyển
vào trạng thái làm việc và phần tử thứ hai không bị hỏng trƣớc thời điểm t. Do
đó xác suất không hỏng Pn của hệ hai phần tử dự phòng lạnh đƣợc xác định:
Vì các sự kiện này không giao nhau nên:
Hình 2.3: Hệ thống dự phòng lạnh với 2 phần tử
Do đó:
Ta cũng xét lần lƣợt đối với hệ 3 phần tử không hỏng thì cũng có 3 khả
năng xảy ra, 2 khả năng đầu giống nhƣ trƣờng hợp trên nên ta chỉ cần tính xác
suất xảy ra khả năng thứ ba:
35
Khi đó xác suất không hỏng của hệ ba phần tử đƣợc xác định là:
Hình 2.4: Hệ thống dự phòng lạnh với 3 phần tử
Cũng tƣơng tự nhƣ vậy xét với hệ thống có 4 phần tử, ta sẽ tính đƣợc
công thức xác suất không hỏng của hệ 4 phần tử có dạng:
Trong trƣờng hợp khi tất cả các phần tử cùng loại và cùng có cƣờng độ
hỏng là λ = const, ta có công thức:
Tổng quát với n phần tử ta có:
Từ công thức trên cho thấy đối với cấu trúc hệ thống dự phòng không tải
số phần tử n càng lớn thì càng có lợi.
36
Biến đổi nhƣ trên ta có thời gian hƣ hỏng trung bình của hệ thống dự
phòng TLV:
Bộ chuyển tiếp hoạt động không lý tưởng
Xét trƣởng hợp bộ chuyển tiếp có thể bị hỏng dƣới dạng hoạt động
không chính xác với xác suất hỏng là Qn. Giả sử xác suất này không thay đổi
theo thời gian.
Phân tích khả năng hỏng của hệ thống theo cách tƣơng tự nhƣ trƣờng
hợp bộ chuyển tiếp hoạt động lý tƣởng thì có đƣợc xác suất không hỏng của
hệ hai phần tử và ba phần tử tƣơng ứng:
Trƣờng hợp bộ chuyển tiếp có cơ cấu phức tạp, có độ tin cậy thay đổi
theo thời gian Pn(t) và có tuổi thọ ngẫu nhiên Tn ta có xác suất không hỏng
của hệ hai phần tử.
Biến đổi công thức ta có
2.2.3. Phương pháp dự phòng theo cơ chế bỏ phiếu (chập 3)
Dự phòng theo cơ chế bỏ phiếu (chập 3) là các phần tử trong hệ thống
đƣợc nhân 3 số lƣợng. Khi đó hệ thống sẽ làm việc nếu ít nhất 2 trong 3 phần
tử đó làm việc và cho ra kết quả giống nhau. [6]
Hệ thống sẽ so sánh kết quả làm việc của 3 phần tử nếu có ít nhất 2 phần
tử trả về kết quả giống nhau thì lúc đó hệ thống sẽ làm việc.
37
Hình 2.5: Phương pháp dự phòng theo cơ chế chập 3
Gọi p1, p2, p3 là đọ tin cạ y của các phần tử trong hẹ thống. Khi đó xác
suất làm viẹ c không hỏng của hẹ thống sẽ b ng [6]:
P(t) = p1p2(1- p3) + p2p3(1- p1) + p1p3(1- p2) + p1p2p3
(2.23) = p1p2 + p2p3 + p1p3 - 2p1p2p3
Công thức (2.23) đƣợc gọi là hàm đọ tin cạ y của hẹ thống. Nó chỉ ra xác
suất làm viẹ c không có trở ngại của hẹ thống phụ thuọ c vào đại lƣợng p(t) của
các phần tử trong hẹ thống.
Trong trƣờng hợp cả 3 phần tử trong hẹ thống có đọ tin cạ y nhƣ nhau
(tức là p1 = p2 = p3 = p) thì công thức (2.23) đƣợc viết lại nhƣ sau:
P(t) = 3p2 – 2p3 (2.24)
2.2.4. Phương pháp dự phòng bảo vệ tích cực
Hệ thống dự phòng bảo vệ tích cực [4] hay còn gọi là hệ thống dự phòng
kiểu trƣợt, gồm n phần tử cùng loại làm việc nối tiếp và m phần tử cùng loại
đó ở vị trí dự phòng. Khi một phần tử bất kỳ trong số n phần tử làm việc bị
hỏng thì bộ chuyển tiếp sẽ đƣa một trong số m phần tử dự phòng vào thay.
Hình 2.6: Cơ chế dự phòng tích cực
38
Giả sử các phần tử làm việc và các phần tử dự phòng đều ở chế độ có tải
khi đó hệ thống sẽ duy trì khả năng làm việc của mình cho tới số phần tử làm
việc không hỏng (trong số m+n phần tử) không nhỏ hơn n.
Gọi xác suất không hỏng của cơ cấu chuyển tiếp là Pc(t); P(t) là xác suất
không hỏng của phần tử đứng riêng. Xác suất làm việc không hỏng của phần
tử dự phòng đứng trong hệ b ng Pc(t)P(t). Xác suất làm việc không hỏng của
hệ thống dự phòng đƣợc tính theo công thức xác suất đầy đủ có dạng:
Nếu cơ cấu chuyển tiếp tin cậy tuyệt đối tức là Pc(t)=1thì
Nên có thể viết:
Công thức có thể viết dƣới dạng:
Nếu hệ thống có n=1 thì hệ thống dự phòng này trở thành hệ thống dự
phòng song song. Thay n=1 vào công thức ta có công thức trùng với công
thức (2.3).
Từ công thức (2.28) ta tính đƣợc độ tin cậy của hệ thống Pmn(t) với
trƣờng hợp có n=2
và trong trƣờng hợp số phần tử dự phòng m=1
39
2.3. Thuật toán đảm bảo độ tin cậy của hệ thống
Giả định r ng có mọ t hẹ thống tính toán với đọ tin cạ y của từng phần tử
trong hẹ thống trên là p1, p2, ... pn. Ta sẽ xem xét hệ thống ba lớp ban đầu với
một cấu trúc 1-2-2, tức là cấu trúc phân cấp HSC (Hierarchical Computing
Systems) ở cấp độ đầu tiên có 1 bộ vi xử lý kiểm soát, cấp độ thứ hai có 2 bộ
vi xử lý điều khiển, cấp độ thứ ba có 4 bộ vi xử lý dữ liệu. Dựa trên hệ thống
này sẽ tính toán độ tin cậy của hệ thống dựa trên 2 phƣơng pháp là: phƣơng
pháp dự phòng tĩnh và phƣơng pháp dự phòng tích cực. Từ đó tiến hành so
sánh kết quả giữa 2 phƣơng pháp và đƣa ra kết luận.
2.3.1. Mô hình hệ thống sử dụng dự phòng tĩnh
Cấu hình HCS tƣơng ứng với tùy chọn nghiên cứu phƣơng pháp dự
phòng tĩnh thể hiện trong Hình 2.7.
Hình 2.7. Cấu hình HCS có dự phòng (1: Cấu hình ban đầu; 2-8: Cấu hình
với dự phòng)
Giả sử r ng tất cả các bộ vi xử lý của kiểm soát và xử lý HCS là đồng
nhất, trùng lặp đƣợc tất cả các tải:
Ký hiệu: p = p(t) khả năng hoạt động không có sự thất bại của mỗi bộ
xử lý.
q = 1-p xác suất thất bại của một bộ xử lý.
Gọi τ1 là một giá trị đặc trƣng cho khả năng phát hiện chính xác xác suất
thất bại của các cặp.
40
Với ký hiệu này biểu hiện cho khả năng của hệ thống thời gian hoạt động
của hai bộ vi xử lý (sơ cấp và sao lƣu), do với mỗi cặp có thể coi là một hệ
thống gồm 2 phần tử độc lập mắc song song X1, X2 với xác suất hoạt động an
toàn cùng là p. Khi đó ta có độ tin cậy của một cặp vi xử lý sẽ là Ps:
P(X1vX2)=P(X1)+Q(X1).P(X2)=p+(1-p).p=2p-p2=2p(1-p)+p2=2pq+p2
Với τ1 là xác suất thất bại của mỗi cặp nên ta có Ps=2τ1pq+p2 (1’)
Sau khi chuyển đổi (1) ta có: Ps=1-(1-p)[1-p(2τ1-1)]
Từ các cấu hình hệ thống với 01 bộ vi xử lý dự phòng ta có công thức
(2’) để xác định độ tin cậy của hệ thống nhƣ sau:
Trong đó:
Pi - xác suất thất bại của phần tử (bộ xử lý) thứ i HCS.
N - số lƣợng các bộ vi xử lý trong HCS.
d - số lƣợng các cặp vi xử lý bản sao trong hệ thống.
Từ biểu thức (2’), chúng ta sẽ nhận đƣợc biểu thức tính độ tin cậy của
HCS theo từng cấu hình trên:
41
2.3.2. Mô hình hệ thống sử dụng dự phòng tích cực
Trong phần này, ta sẽ sử dụng phƣơng pháp dự phòng tích cực để đƣa
ra các phƣơng án khác nhau của hệ thống, và dựa vào mô hình dự phòng để
tính toán độ tin cậy của từng cấu hình.
Mô hình dự phòng tích cực cho hệ các vi xử lý đang xét đƣợc biểu diễn
dƣới dạng cấu trúc HSC nhƣ sau:
Hình 2.8: Phương pháp dự phòng tích cực cho hệ thống
Với các giả thiết trên, từ các cấu hình số 9-14, chúng ta có thể tính
đƣợc độ tin cậy của hệ thống theo từng cấu hình với các công thức sau:
Giá trị của độ tin cậy đối với từng cấu hình đƣợc trình bày tại Bảng 2.1.
Khi tính toán xác suất P[i] (i = 1..14) đã đƣợc sử dụng các đầu vào sau: thời
gian hoạt động phân phối xác suất của mỗi bộ vi xử lý trong hệ thống tƣơng
ứng theo hàm mũ P(t)= ;
Giả sử cƣờng độ hỏng λ = 7*10-7 h-1 [2];
42
α1АP =0,8; α2АP =1-(1- α1АP)2=0,96;
α1=0,8; thời gian hoạt động HCS là 61.320 giờ (7 năm).
Bảng 2.1: Bảng giá trị độ tin cậy của hệ thống HCS theo từng cấu hình
Số bộ
Cấu hình
VXL dự
1 năm 2 năm 3 năm 4 năm 5 năm 6 năm 7 năm
số
phòng
0
0,9580 0,9177 0,8792 0,8422 0,8068 0,7729 0,7405
Số 1
1
0,9615 0,9244 0,8888 0,8545 0,8215 0,7897 0,7591
Số 2
2
0,9650 0,9312 0,8985 0,8669 0,8363 0,8068 0,7783
Số 3
3
0,9686 0,9380 0,9083 0,8795 0,8515 0,8243 0,7979
Số 4
4
0,9721 0,9449 0,9183 0,8923 0,8669 0,8422 0,8180
Số 5
5
0,9757 0,9518 0,9283 0,9053 0,8826 0,8604 0,8386
Số 6
6
0,9793 0,9587 0,9385 0,9184 0,8986 0,8791 0,8598
Số 7
7
0,9829 0,9658 0,9487 0,9318 0,9149 0,8981 0,8814
Số 8
3
0,9780 0,9563 0,9347 0,9134 0,8924 0,8716 0,8511
Số 9
5
0,9834 0,9669 0,9506 0,9344 0,9184 0,9025 0,8867
Số 10
4
0,9816 0,9633 0,9450 0,9267 0,9086 0,8905 0,8725
Số 11
5
0,9852 0,9703 0,9553 0,9402 0,9250 0,9098 0,8945
Số 12
4
0,9747 0,9479 0,9201 0,8913 0,8619 0,8321 0,8021
Số 13
7
0,9944 0,9883 0,9816 0,9744 0,9667 0,9585 0,9496
Số 14
Phân tích các giá trị trong Bảng 2.1 cho thấy ƣu điểm của việc sử dụng
dự phòng chủ động so với dự phòng tĩnh với cùng một số bộ vi xử lý cần
thiết. Với cùng một số lƣợng thiết bị dự phòng mà khi nhân bản, AP kiểm
soát bao gồm hầu hết các phần của hệ thống (hoặc phát hiện lỗi nhiều khả
năng), do đó làm tăng khả năng quan sát của hệ thống và cung cấp cái gọi là
dự phòng ảo (trong đó bộ vi xử lý chính với ít nhất một phần tử dự phòng
nâng cao khả năng kiểm soát của hệ thống). Cấu hình số 12 với 5 bộ vi xử lý
dự phòng, cung cấp độ tin cậy của hệ thống: 0,8945 là một trong những cấu
hình hiệu quả nhất.
43
Dựa trên kết quả sau khi tính toán độ tin cậy từ cấu hình 12 với 5 bộ vi
xử lý, ta tiến hành xem xét các trƣờng hợp nhân bản ba, nhân bản bốn cấu
hình số 12 trong Hình 2.8. Cấu hình HCS với các ứng dụng dự phòng ba đƣợc
thể hiện trong Hình 2.9 dƣới đây:
Hình 2.9: Nhân bản cấu hình với bộ 5 vi xử lý
Biểu thị РТРlà xác suất làm việc đúng của các bộ vi xử lý trong trƣờng
hợp dự phòng ba; τ2- khả năng phát hiện xác suất thất bại trong 3 bộ vi xử lý
trong trƣờng hợp dự phòng ba. Chúng tôi tin r ng sau khi phát hiện sự thất bại
của một bộ xử lý trong dự phòng ba sẽ đƣợc chuyển đến trùng lặp với khả
năng phát hiện chính xác của sự thất bại trong một cặp τ1.
Với các giả thiết trên, có thể tính đƣợc PTP theo công thức sau:
Từ đó, với cấu hình số 13-14 sẽ tính đƣợc xác suất độ tin cậy của các cấu
hình hệ thống này nhƣ sau:
Trong Hình 2.9 cho thấy đồ thị độ tin cậy của HCS với cấu hình số 1, số
12, số 15, số 16 theo thời gian.
Từ đó, có thể nhận thấy cấu hình số 12, số 14, số 15, số 16, cung cấp khả
năng cho phép hệ thống hoạt động với độ tin cậy cao trong suốt thời gian 7
năm. Trong khi, độ tin cậy của hệ thống mà không sử dụng bất kỳ phƣơng
pháp để cải thiện độ tin cậy (cấu hình số 1) b ng 0,7405 (tỉ lệ tăng 21,6%).
44
CHƢƠNG 3
ỨNG DỤNG VÀ GIẢI PHÁP XỬ LÝ DỰ PHÒNG CHO HỆ THỐNG
MÁY CHỦ
3.1. Bài toán độ tin cậy cho các máy chủ DNS Anycast
3.1.1. Vai trò và tầm quan trọng của máy chủ DNS
Trong mô hình hoạt động của hệ thống Internet ngày nay, dịch vụ
Domain Name Service (DNS) đóng vai trò hết sức quan trọng cho sự ổn định
của toàn bộ mạng Internet toàn cầu; rất nhiều các dịch vụ, chƣơng trình ứng
dụng hoạt động trên môi trƣờng mạng đều sử dụng DNS nhƣ cơ sở hạ tầng.
Nhiệm vụ chính của DNS là phân giải giữa tên miền với địa chỉ IP của các
máy chủ tƣơng ứng. Trong mô hình TCP/IP, giao thức DNS hoạt động trên
tầng ứng dụng. Ví dụ với DNS, ta có thể sử dụng tên miền google.com thay
cho việc phải ghi nhớ 1 dãy số nhƣ 113.171.246.20 trong địa chỉ IP của máy
chủ cần truy vấn tới [12].
Dịch vụ DNS đƣợc cài đặt và cấu hình trên các máy chủ gọi chung là
DNS server, đây là nơi lƣu trữ cơ sở dữ liệu đƣợc sử dụng cho việc chuyển
đổi tên miền và địa chỉ IP. Dịch vụ DNS hoạt động theo mô hình Client-
Server: phần server gọi là máy chủ phục vụ tên miền hay Name Server, phần
client là trình phân giải tên, gọi là Resolver. Name Server chứa các thông tin
dữ liệu của DNS, còn Resolver chỉ là các hàm thƣ viện dùng tạo các truy vấn
và gửi đến Name Server. DNS Server có thể cung cấp các thông tin do Client
yêu cầu, và chuyển đến một DNS Server khác để nhờ phân giải hộ trong
trƣờng hợp nó không thể trả lời đƣợc các truy vấn về những tên miền không
thuộc quyền quản lý và cũng luôn s n sàng trả lời các máy chủ khác về các
tên miền mà nó quản lý. DNS Server lƣu thông tin của Zone, truy vấn và trả
kết quả cho DNS Client. Máy chủ quản lý DNS cấp cao nhất là Root Server
do tổ chức ICANN quản lý: đây là máy chủ quản lý toàn bộ cấu trúc của hệ
45
thống tên miền, Root Server sẽ thực hiện công việc chuyển quyền (delegate)
quản lý xuống cho các Server cấp thấp hơn và do đó Root Server có khả năng
định tuyến đến của một domain tại bất kì đâu trên mạng.
3.1.2. Cấu trúc phân cấp, nguyên tắc hoạt động của DNS server
Hệ thống DNS có cơ sở dữ liệu đƣợc tổ chức theo kiểu phân tán và phân
cấp hình cây. Trong đó Root server sẽ chứa co sở dữ liẹ u quản lý các te n miền
ở cấp cao nhất, bên dƣới sẽ đƣợc phân nhánh thấp hơn theo thứ tự: Top-Level
Domains (TLDs), Second-Level Domains (SLDs)...Theo [13], TLDs đƣợc
phân chia thành hai kiểu cơ bản đƣợc mô tả chi tiết tại Hình 1, bao gồm:
Tên miền cơ bản (Generic Top-Level Domains – gTLDs): bao gồm các
tên miền có phần mở rộng là .com, .edu, .net, .org. .mil, .gov...
Tên miền quốc gia (Country Code Top-Level Domains – ccTLDs): gồm
tên miền đƣợc quản lý bởi các quốc gia nhƣ: .vn, .sg, .ca, .jp, .us, .ru...
Hình 3.1: Cấu trúc phân cấp của tên miền
Theo Hình 3.1, cấu trúc của dữ liệu trong hệ thống DNS đƣợc phân cấp
hình cây, root quản lý và phân quyền quản lý xuống dƣới, nhƣ vậy các tên
miền lại đƣợc chuyển xuống cấp thấp hơn (delegation) xuống dƣới.
Với sự gia tăng nhanh của cơ sở dữ liệu tên miền, hiện nay hệ thống
DNS cho phép phân chia tên miền để quản lý nh m chia nhỏ thành các miền
(Zone), từ đó trong mỗi Zone sẽ tự quản lý tên miền đƣợc phân chia đó. Các
Zone chứa thông tin về miền cấp thấp hơn, có khả năng chia thành các zone
cấp thấp hơn và phân quyền cho các DNS server khác quản lý.
46
Để đảm bảo cho hệ thống DNS hoạt động ổn định, trong các mô hình
hiện nay thƣờng sử dụng 2 máy chủ, trong đó:
Primary DNS Server (PDS): đƣợc sử dụng chủ yếu nhƣ nguồn xác thực
thông tin chính thức cho các tên miền mà nó đƣợc phép quản lý, các thông tin
này sau đó đƣợc chuyển sang các Secondary DNS Server (SDS).
Secondary DNS Server (SDS): đƣợc sử dụng để lƣu trữ dự phòng cho
zone và cả PDS. SDS đƣợc phép quản lý tên miền nhƣng dữ liệu đó đƣợc lấy
về từ PDS thông qua một cơ chế gọi là Zone Transfer [14]. Trong quá trình
hoạt động, SDS có thể thực hiện việc san tải từ PDS khi lƣợng truy vấn vào
các zone tăng cao, hoặc khi PDS gặp sự cố.
Bên cạnh đó, DNS Caching-only server cũng thƣờng xuyên đƣợc sử
dụng trong các hệ thống DNS server. Vai trò của máy chủ này là sử dụng cho
việc truy vấn, lƣu giữ câu trả lời dựa trên thông tin có trên cache của máy và
cho kết quả truy vấn. Trong quá trình tiếp nhận và phản hồi các truy vấn
DNS, thông tin sẽ đƣợc cập nhật theo thời gian khi các client truy vấn dịch vụ
DNS, việc sử dụng DNS Caching-only server là giải pháp hữu hiệu cho phép
giảm lƣu lƣợng thông tin truy vấn trên đƣờng truyền [12].
3.1.3. Công nghệ định tuyến Anycast
Khái niệm Anycast đó là dạng thông tin truyền bất kỳ hƣớng nào, cụ thể
là một gói tin đƣợc gởi tới một địa chỉ đơn bất kì hƣớng nào sẽ đƣợc chuyển
tới một node (hay giao diện) gần nhất (gần nhất là khoảng cách gần nhất xác
định qua giao thức định tuyến sử dụng) trong tập hợp node mang địa chỉ
Anycast đó. Sự khác nhau giữa Anycast và Multicast là quá trình chuyển gói
dữ liệu, thay vì chuyển tới tất cả các thành viên trong nhóm, các gói tin đƣợc
gửi đi chỉ đƣợc phát cho một điểm là thành viên gần nhất của nhóm Anycast.
47
Hình 3.2: Cơ chế hoạt động của Anycast (nguồn vnnic.vn)
Hình 3.2, mô tả mạng các máy chủ n m trên cùng mạng LAN, các máy
chủ đều sử dụng chung 1 địa chỉ IP Anycast là 10.5.0.1, tuy nhiên về mạ t
logic thì thực tế các máy chủ này đu ợc đạ t trong các dải mạng hoàn toàn khác
nhau. Khi đó với co chế định tuyến đu ợc cấu hình tại các router Anycast, viẹ c
lựa chọn đu ờng đi tiếp theo cho mỗi gói tin anycast tại từng hop sẽ đu ợc ca n
cứ vào bảng định tuyến đã đu ợc xây dựng tại từng router nhu Hình 3.3. Để có
các thông tin này, mỗi router trong mạng Anycast phải trải qua mọ t quá trình
thiết lạ p bảng định tuyến để thu thạ p các thông tin cần thiết cho router trong
viẹ c tìm đu ờng đi tiếp theo cho các gói tin. Các thông số đầu vào chính cho
mọ t bảng định tuyến sẽ bao gồm các tru ờng: địa chỉ đích (Destination
Address), khoảng cách (Distance) và trạm (Hop) tiếp theo [16].
Hình 3.3: Thông tin bảng định tuyến trong Anycast (nguồn vnnic.vn)
48
Hiện nay công nghệ Anycast đã đƣợc triển khai rộng rãi và áp dụng cho
các máy chủ dịch vụ DNS.Để thực hiện đƣợc việc này cần tới cấu hình định
tuyến cho các router Anycast và đặt các máy chủ DNS server tại đó [15]. Đạ c
điểm của co ng nghẹ Anycast là cho phép nhiều thiết bị máy chủ sử dụng cùng
1 địa chỉ IP và te n miền duy nhất, trong khi đu ợc triển khai mọ t cách pha n tán
tại các vị trí địa lý khác nhau.
Hình 3.4: Phân bổ DNS Anycast trên thế giới (nguồn wikipedia.org)
Hiẹ n nay, Anycast đã đu ợc ứng dụng và triển khai cho các DNS ở mức
cao nhất nhu Root DNS, gTLD DNS và mọ t số máy chủ cấp du ới. Theo sự
khảo sát trong mọ t nghie n cứu về hiẹ u quả của co ng nghẹ Anycast đối với
dịch vụ DNS, thì tre n thế giới hiẹ n nay có tới 72% các máy chủ TLDs đu ợc
cấu hình và sử dụng dịch vụ Anycast.
Trong mọ t thời điểm, các yêu cầu truy vấn tên miền từ ngu ời dùng sẽ
đu ợc gửi tới các máy chủ DNS Anycast (đu ợc gọi là cụm máy chủ DNS
Anycast), số lu ợng truy vấn cực kì lớn này có thể gây quá tải nếu đu ợc gửi
đến mọ t máy chủ DNS, do đó cần thiết phải sử dụng các kĩ thuạ t cần b ng tải
để giúp điều phối hợp lý số lu ợng truy vấn này tới các máy chủ trong cụm
Anycast. Hiẹ n nay với các cụm máy chủ DNS Anycast có quy mô nhỏ lẫn
quy mô lớn, mọ t trong những thuạ t toán cân b ng tải phổ biến đu ợc sử dụng
49
đó là: Thuạ t toán luân chuyển vòng (Round Robin) [15]. Theo đó, trong thuạ t
toán này, các máy chủ sẽ đu ợc xem là ngang hàng nhau và sắp xếp để phục vụ
theo mọ t vòng quay. Các truy vấn dịch vụ sẽ đu ợc lần lu ợt gửi tới các máy
chủ trong cụm Anycast theo thứ tự sắp xếp và xoay vòng, thuạ t toán cân b ng
tải này sẽ hoạt đọ ng hiẹ u quả khi các na ng lực xử lý của máy chủ và đu ờng
truyền đến máy chủ là tu o ng đu o ng nhau, tức là cụm máy chủ DNS có nhiều
máy cùng cấu hình với nhau.
3.1.4. Những thách thức hiện nay đối với hệ thống DNS Anycast
Do vai trò quan trọng đối với các dịch vụ khác hoạt đọ ng trên nền
Internet, nên hẹ thống DNS luôn có nguy co cao tru ớc các cuọ c tấn công
nh m mục đích phá hoại, gây ảnh hu ởng dây chuyền tới các dịch vụ, ứng
dụng khác. Hiẹ n nay phổ biến nhất là hình thức tấn công DOS, DDOS vào
các máy chủ DNS với những cách phổ biến nhu Ping of Death, Teardrop,
SYN Attack, Land Attack, Smurf Attack, UDP Flooding [16-18]. Những cuọ c
tấn công này đu ợc thực hiẹ n hàng ngày, hàng giờ với quy mô rọ ng, tạ p trung
chủ yếu lên các máy chủ DNS cấp cao nhu DNS Root, gTLD, nh m làm tê
liẹ t hoạt đọ ng các máy chủ, từ đó gây ảnh hƣởng đến các dịch vụ khác n m
trên hẹ thống Internet địa phu o ng hay ở mức đọ toàn cầu.
Bên cạnh các hình thức tấn công trực tiếp vào khả na ng đáp ứng dịch vụ
của các máy chủ DNS nhu đã nêu trên, mọ t nguy co tiềm ẩn khác liên quan
tới co chế đồng bọ dữ liẹ u tên miền giữa các máy chủ DNS, còn gọi là Zone
Transfer. Co sở dữ liẹ u về các zone trên mỗi máy chủ DNS là cực kì quan
trọng và cần đu ợc bảo mạ t nghiêm ngạ t, tuy nhiên có thể xảy ra những tình
huống khi máy chủ DNS vẫn hoạt đọ ng nhu ng dữ liẹ u về các zone tên miền bị
mất, bị sửa chữa hay thay đổi. Nguyên nhân là do trong suốt quá trình khai
thác, vạ n hành hẹ thống DNS, từ viẹ c cạ p nhạ t dữ liẹ u vào hẹ thống cho đến
các quá trình tìm kiếm và trả lời thông tin yêu cầu từ các máy trạm đến các hẹ
50
thống DNS đều có thể xảy ra những lỗ hổng bảo mạ t mà giao thức DNS thông
thu ờng không thể đáp ứng đu ợc. Nếu không có hẹ thống xác thực, viẹ c cạ p
nhạ t dữ liẹ u vào hẹ thống sẽ có nguy co bị giả mạo quyền cạ p nhạ t thông tin.
Quá trình đồng bọ dữ liẹ u giữa các máy chủ DNS phụ và máy chủ DNS chính
có nhiều khả na ng bị can thiẹ p dẫn đến sai lẹ ch thông tin, thạ m chí dữ liẹ u các
zone trên máy chủ DNS chính cũng có thể bị sửa đổi [16,19].
3.2. Bài toán nâng cao độ tin cậy cho máy chủ DNS Anycast và phƣơng án
3.2.1. Phát biểu bài toán
Trong mô hình các máy chủ DNS hiẹ n nay, thu ờng có mọ t PDS và mọ t
SDS dự phòng cho máy chủ chính, bên cạnh đó có thể có thêm máy chủ làm
nhiẹ m vụ Caching. Với các máy chủ DNS public của Google, hàng ngày phục
vụ số lu ợng truy vấn khoảng 70 triẹ u tu o ng đu o ng với 800.000 request/s, bao
gồm traffic từ khắp no i trên thế giới không chỉ giới hạn trong USA [20]. Tuy
nhiên với các máy chủ phục vụ DNS cấp ccTLDs nhu tại Viẹ t Nam thì số
lu ợng truy vấn sẽ thấp ho n, do các máy chủ này chỉ quản lý các zone có phần
mở rọ ng là .vn. Với khả na ng của mỗi máy chủ là có giới hạn trong mọ t số
lu ợng nhất định các yêu cầu truy vấn từ clients, k m theo các yếu tố về tốc đọ
đu ờng truyền, co sở hạ tầng, bên cạnh đó khi lu ợng truy cạ p ta ng đọ t biến từ
các cuọ c tấn công DOS/DDOS thì nguy co quá tải của các máy chủ DNS
chính là hoàn toàn có thể xảy ra [21]. Khi đó với mô hình chỉ có 1 máy chủ
DNS phụ hoạt đọ ng để chia tải thì cũng có thể xảy ra tru ờng hợp hẹ thống vẫn
không đáp ứng đu ợc yêu cầu truy vấn, dẫn đến treo các dịch vụ của máy chủ
và gây tắc nghẽn đƣờng truyền. Dựa trên vấn đề thực tế đó, trong nội dung
nghiên cứu của luận văn, tác giả đề xuất mọ t phu o ng án dự phòng cho máy
chủ SDS nh m nâng cao đọ tin cạ y của hẹ thống hoạt đọ ng, sử dụng co sở lý
thuyết về đọ tin cạ y để thực hiện tính toán và đề xuất giải pháp dự phòng hợp
lý cho cụm các máy chủ DNS Anycast.
51
Dựa trên giả thiết của yêu cầu bài toán, hãy xét mọ t hẹ thống DNS
Anycast server với 1 máy chủ đóng vai trò là PDS, 1 máy chủ là SDS và 1
máy chủ đóng vai trò dự phòng cho 2 máy kia. Với giả sử trong quá trình hoạt
đọ ng của hẹ thống, khi máy chủ PDS quá tải hoạ c gạ p trục trạ c khi vạ n hành,
theo co chế cân b ng tải đu ợc cấu hình mạ c định của hẹ thống, thiết bị SDS sẽ
thực hiẹ n viẹ c san tải hoạ c thay thế, làm viẹ c nhu 1 PDS, trong tru ờng hợp cả
2 máy chủ PDS và SDS đều không đáp ứng đu ợc yêu cầu do lu u lu ợng tải
ta ng quá cao khi gạ p các cuọ c tấn công DOS/DDOS với quy mô lớn, lúc này
máy chủ dự phòng Xi đu ợc sử dụng và thay thế công việc hiện tại của PDS
gần nhƣ tức thời. Giả sử r ng các thiết bị X1, X2...Xn đều là đồng nhất, có
cùng cấu hình về phần cứng, phần mềm máy chủ và tốc đọ truy cạ p mạng,
đồng thời trong quá trình vận hành của hệ thống, máy chủ là các thiết bị
không phục hồi.
Hình 3.5: Mô hình dự phòng cho máy chủ DNS Anycast
Với mo hình ở Hình 3.5, các máy chủ Xi sẽ làm dự phòng cho 2 máy chủ
PDS và SDS, viẹ c sử dụng bao nhie u máy chủ dự phòng còn phụ thuọ c vào
chi phí đầu tu cho hẹ thống, cũng nhu quy mo , số lu ợng các gói tin DNS truy
vấn mà máy chủ cần phải đáp ứng và tình trạng hoạt động của hệ thống. Nội
dung của luận văn sẽ trình bày phƣơng án nâng cao độ tin cạ y của hẹ thống
khi sử dụng các máy chủ dự phòng X1, X2.
52
3.2.2. Phương án dự phòng giải quyết bài toán độ tin cậy cho máy chủ DNS
Theo công thức (1.1) về tính toán độ tin cậy của hệ thống, ta có:
P(t) = P{t0 ≥ t}, trong đó t0 là thời gian vạ n hành liên tục cho đến lúc
hỏng. P(t) là hàm xác suất có phân bố mũ, P(t)= , trong đó τ là cu ờng
đọ hỏng của đối tu ợng đang xét.
Q(t) là xác suất để phần tử hoạ c hẹ thống bị hỏng, khi đó ta có Q(t)=1-P(t).
MTTF là thời gian hoạt đọ ng trung bình, hay thời gian hoạt đọ ng của
phần tử hoạ c hẹ thống đến lúc hỏng, khi đó MTTF là kỳ vọng toán của biến
ngẫu nhiên t0. Vạ y
a. Phƣơng án sử dụng 01 máy chủ dự phòng
Phƣơng án chỉ sử dụng 01 máy chủ dự phòng SDS chính là trƣờng hợp
bên cạnh 2 máy chủ DNS Anycast PDS và SDS sẽ bổ sung thêm 1 máy chủ
SDS khác có vai trò dự phòng cho hệ thống.
Do đó, khi chỉ có 2 máy chủ PDS và SDS hoạt đọ ng, xác suất của hẹ
(3.1) thống làm viẹ c ổn định là: P1(t)system = p(t)2
Gọi α là hẹ số hay giá trị xác suất khả na ng phát hiẹ n lỗi của dự phòng
tích cực, khi có thêm 1 phần tử dự phòng, giá trị xác suất của hẹ thống đảm bảo hoạt đọ ng bình thu ờng sẽ là: P2(t)system = p(t)3+3*α*(1−p(t))*p(t)2 (3.2)
Theo trên, ta có p(t) = với λ là cu ờng đọ hỏng hóc của mỗi máy tính, ở đây đối với hẹ thống máy chủ, giả sử lấy giá trị λ=10−5∗(h−1) và giá trị
xác suất khả năng phát hiện lỗi của dự phòng α=0.9
Nhƣ vậy (3.1) và (3.2) chính là công thức dùng để tính độ tin cậy của hệ
thống trong 2 trƣờng hợp:
Khi không sử dụng máy chủ dự phòng chỉ có PDS và 1 SDS
Khi sử dụng 1 máy chủ SDS làm dự phòng trong hệ thống
b. Phƣơng án sử dụng 2 máy chủ dự phòng
53
Trong trƣờng hợp này, ta sẽ bổ sung thêm máy chủ X2 để làm nhiệm
vụ dự phòng cùng với X1 nhƣ trong phƣơng án 1. Khi đó, hệ thống sẽ gồm 1
máy chủ DNS Anycast chính và 3 máy chủ phụ, trong đó 2 máy là dự phòng.
Theo công thức (2.28) ở mục trên, ta có công thức tính độ tin cậy
của hệ thống sử dụng dự phòng tích cực cho phƣơng án này nhƣ sau:
P3(t)system = p(t)4 + 4*α*(1−p(t))*p(t)3 + 6*α2*(1-p(t))2*p(t)2 (3.3)
Sau khi xác lập đƣợc công thức tính độ tin cậy cho hệ thống sử dụng
phƣơng pháp dự phòng tích cực theo 2 phƣơng án đề xuất ở trên, ta cần thực
hiện tính toán để đƣa ra kết quả từ đó so sánh giữa các phƣơng án.
3.3. Xây dựng chƣơng trình thử nghiệm và đánh giá kết quả
Dựa trên kết quả phân tích và công thức tính độ tin cậy của hệ thống
trong 2 phƣơng án sử dụng dự phòng tích cực, chƣơng trình thử nghiệm cần
tính toán và đƣa ra đƣợc kết quả độ tin cậy cho từng phƣơng án dự phòng.
Các công thức cần tính đƣợc đƣa ra tại (3.1), (3.2), (3.3), trong đó các giá trị
tham số nhƣ α và λ đƣợc giả thiết với một giá trị cho trƣớc.
Chƣơng trình thử nghiệm đƣợc xây dựng trên ngôn ngữ lập trình Java
dƣới dạng console, vì đây là ngôn ngữ dễ lập trình và phù hợp với việc tính
toán, tốc độ xử lý nhanh. Xác định các thành phần input và output của chƣơng
trình thử nghiệm nhƣ sau:
Hình 3.6: Chức năng chương trình thử nghiệm
54
Trong khi xây dựng chƣơng trình tính toán, các tham số λ và α đƣợc gán cho giá trị cố định nhƣ đã trình bày trong nội dung phần trƣớc, các giá trị thời gian t đƣợc đƣa vào 1 mảng để thuận tiện cho việc chạy thử nghiệm chƣơng trình. Các hàm tính giá trị của P(t), P1, P2, P3…đƣợc xây dựng để thực hiện trong quá trình gọi khi giá trị t thay đổi.
Hình 3.7: Mã nguồn chính cài đặt thuật toán tính độ tin cậy
Kết quả thu đƣợc sau khi tiến hành chạy thử nghiệm khi thực hiện
chƣơng trình nhƣ dƣới đây:
Hình 3.8: Kết quả tính toán của chương trình demo
55
Dựa vào kết quả thu đƣợc sau khi chạy thử nghiệm chƣơng trình, ta có
thể tổng hợp và đƣa vào trong bảng sau đây:
Bảng 3.1: Kết quả tính độ tin cậy hệ thống trong các phƣơng án
Ghi P2- P3- t (giờ) P(t) P1(t) P2(t) P3(t) chú P1(%) P1(%)
100 0.999 0.998 1.000 1.000 0.17 0.16
500 0.995 0.990 0.998 0.998 0.85 0.81
1000 0.990 0.980 0.997 0.996 1.70 1.62
4000 0.961 0.924 0.985 0.984 6.63 6.58
8760 0.916 0.839 0.959 0.965 14.28 15.03 1 năm
17520 0.839 0.704 0.897 0.927 27.32 31.55 2 năm
26280 0.769 0.591 0.823 0.881 39.29 49.05 3 năm
35040 0.704 0.496 0.746 0.829 50.25 67.04 4 năm
43800 0.645 0.416 0.668 0.771 60.29 85.18 5 năm
52560 0.591 0.350 0.592 0.710 69.50 103.18 6 năm
61320 0.542 0.293 0.522 0.648 77.93 120.83 7 năm
Phân tích các giá trị trong bảng (3.1), ta có thể thấy ƣu điểm khi sử dụng
phƣơng án dự phòng so với hệ thống lúc ban đầu. Nếu nhƣ trong 100 giờ hoạt
động đầu tiên, sự chênh lệch về độ tin cậy giữa 2 phƣơng án dự phòng với hệ
thống không sử dụng dự phòng chỉ là 0.17%. Tuy nhiên sau 1 năm hoạt động
của hệ thống, độ tin cậy trong quá trình vận hành đã tăng lên đáng kể, tƣơng
ứng là 14.28% cho phƣơng án dự phòng 1 và 15.03% cho phƣơng án dự
phòng 2. Điều này cho thấy thời gian hoạt động của hệ thống càng lâu, thì độ
tin cậy để hệ thống vận hành ổn định càng tăng cao trong 2 phƣơng án có sử
dụng dự phòng.Tới năm thứ 5 của quá trình hoạt động, sự chênh lệch về độ
tin cậy của phƣơng án 1 so với hệ thống lúc ban đầu không có dự phòng là
60.29%, còn với phƣơng án 2 lên tới 85.18%. Trong năm thứ 7, khi hệ thống
56
hoạt động với phƣơng án dự phòng 1, độ tin cậy tăng lên đến 77.93%, còn
phƣơng án 2 là 120.83%. Điều này có thể rút ra nhận xét là: Đối với những
hệ thống có sử dụng phƣơng án dự phòng cho các phần tử, độ tin cậy cho hệ
thống hoạt động ổn định sẽ tăng lên theo thời gian so với hệ thống ban đầu
khi không dự phòng.
Dựa vào số liệu trong bảng trên, ta có thể dựng biểu đồ để thấy một
cách trực quan giá trị độ tin cậy có sự chệnh lệch ra sao giữa các phƣơng án:
Hình 3.9: Biểu đồ so sánh độ tin cậy của các phương án dự phòng
Theo mọ t số nghie n cứu thì các linh kiẹ n điẹ n tử đu ợc sử dụng để cấu
thành le n các thiết bị trong máy tính có chu kì vòng đời khoảng 5 na m, tức là
sau thời gian đó, các thiết bị sẽ cần thiết phải thay thế để đảm bảo hoạt động
một cách đồng bộ. Bên cạnh đó, với chu kỳ của sự phát triển công nghệ, thời
gian 5 năm cũng đủ để các công nghệ, giải pháp mới ra đời, do vậy các hệ
thống công nghệ thông tin cũng cần phải đƣợc nâng cấp, cải tiến để phù hợp
với hiện trạng thực tế. Với chi phí kinh tế cho viẹ c vạ n hành the m mọ t máy
chủ DNS, k m theo phí bản quyền các phần mềm tre n máy chủ, lu ợng điẹ n
tie u thụ cho thiết bị, chi phí vạ n hành, bảo trì, quản trị...thì viẹ c lựa chọn
phu o ng án dự phòng nào sẽ còn tuỳ thuọ c vào các yếu tố tre n.
57
3.4. Kết luận và đánh giá kết quả của bài toán
Phƣơng án dự phòng cho hệ thống máy chủ truy cập Internet an toàn là
một bài toán thực tế, hiện thu hút đƣợc nhiều nhà khoa học nghiên cứu và đƣa
ra các giải pháp cũng nhƣ mô hình tính toán. Đa phần các giải pháp là dựa
trên thiết bị phần cứng nh m mục đích phân chia luồng dữ liệu, cân b ng tải
cho hệ thống để đáp ứng nhu cầu sử dụng một cách tối ƣu nhất. Tuy nhiên,
với giả thiết bổ sung các thiết bị máy chủ đồng loại để tăng khả năng dự
phòng cho hẹ thống các máy chủ DNS Anycast, có chứng minh kết quả b ng
các công thức toán học và lý thuyết về độ tin cậy, hai phƣơng án đƣợc đề xuất
trong bài toán ở trên cho thấy hiệu quả rõ rệt và hƣớng nghiên cứu mở rộng
để có thể triển khai áp dụng trong thực tế.
Bài toán sử dụng phƣơng pháp dự phòng tích cực để đƣa ra các phƣơng
án đề xuất nh m nâng cao độ tin cậy cho hẹ thống các máy chủ DNS Anycast,
tuy nhiên một hạn chế mà bài toán chƣa đề cập ở đây chính là các tham số
môi trƣờng ảnh hƣởng trực tiếp tới hiệu suất làm việc của thiết bị. Hiện tại
trong các công thức đƣa ra để tính độ tin cậy cho hệ thống trong các phƣơng
án, tác giả đang lấy giả thiết sử dụng giá trị α=0.9 để đại diện chung cho các
tham số ảnh hƣởng đến hệ thống. Tuy nhiên khi phân tích trong điều kiện
thực tế, áp dụng cho hệ thống máy chủ DNS Anycast, các tham số đó có thể
là: cấu hình phần cứng của máy chủ, cấu hình các dịch vụ mạng trên máy chủ,
tốc độ đƣờng truyền, nhiệt độ của máy chủ trong quá trình hoạt động, băng
thông hệ thống…do đó để có kết quả tính toán chi tiết hơn, chính xác hơn thì
cần phân tích đến các yếu tố ảnh hƣởng này.
58
KẾT LUẬN
1. Kết luận
Trong nội dung của luạ n va n đã đu a ra và pha n tích cơ sở lý thuyết lie n
quan đến đọ tin cạ y của hẹ thống, phần tử dự phòng, các phƣơng pháp dự
phòng phổ biến hiện nay. Bài toán về đảm bảo độ tin cậy cho hệ thống máy
chủ truy cập Internet đã có cách tiếp cận hợp lý, đây là vấn đề giành đƣợc
nhiều sự quan tâm hiện nay của các nhà khoa học, viện nghiên cứu và các tổ
chức quản lý, vận hành và duy trì dịch vụ hoạt động.
Internet ngày nay đóng vai trò rất to lớn trong sự phát triển của nhân
loại, cũng nhƣ các ngành kinh tế, các khía cạnh khác của đời sống xã hội.
Dịch vụ DNS nhƣ cầu nối và cũng là nền tảng cơ bản cho nhiều các dịch vụ
khác cùng hoạt động trên môi trƣờng mạng. Kết quả thử nghiệm của bài toán
với hai phƣơng án dự phòng đề xuất nh m nâng cao độ tin cậy cho hệ thống
máy chủ DNS Anycast có thể là cơ sở lý thuyết và hƣớng nghiên cứu mở rộng
sau này trên cùng lĩnh vực.
Chu o ng trình mô phỏng nh m tính toán các kết quả của bài toán đu ợc
viết trên Java, đây là ngo n ngữ lạ p trình phổ biến hiẹ n nay, đã giải quyết đu ợc
ye u cầu đạ t ra của bài toán, với tạ p hợp các tham số đầu vào sẽ cho các kết
quả, các kết quả đu ợc pha n tích và thấy r ng chúng phù hợp với những gì
chúng ta mong đợi, điều này chứng tỏ chu o ng trình hoạt đọ ng đúng đắn.
Lý thuyết về độ tin cậy của hệ thống đƣợc ứng dụng trong nhiều lĩnh vực
khác nhau nhƣ: kĩ thuật, cơ khí, kĩ nghệ phần mềm…Chu o ng trình tính toán
đọ tin cạ y này là co sở để phát triển cho các phần mềm tính toán đọ tin cạ y
của hẹ thống bất kỳ trong tu o ng lai.
2. Hƣớng nghiên cứu tiếp theo
Bài toán nâng cao độ tin cậy cho hệ thống máy chủ dự phòng DNS
Anycast đã đƣa ra 2 phƣơng án dự phòng với việc sử dụng lần lƣợt 1, 2 máy
chủ thay thế với chức năng và cấu hình tƣơng tự nhƣ máy chủ chính PDS.
59
Tuy nhiên trong thực tế, những vấn đề về cấu hình của máy chủ, kĩ thuật cấu
hình các dịch vụ hoạt động trên máy chủ, băng thông đƣờng truyền, các yếu
tố môi trƣờng…cũng đều có thể ảnh hƣởng tới sự vận hành và hoạt động của
các thiết bị. Do đó việc nghiên cứu một cách chi tiết, cụ thể sự ảnh hƣởng của
các yếu tố này là rất quan trọng, bên cạnh đó việc thu thập dữ liệu của hệ
thống đang vận hành, sử dụng các công cụ chuyên dụng để đo đạc và phân
tích hiệu năng hoạt động của máy chủ là rất cần thiết.
Nội dung của luận văn đã đề cập đến một số phƣơng pháp để tính độ tin
cậy cho hệ thống nhƣ: phƣơng pháp chập 3, phƣơng pháp dự phòng nóng,
lạnh, dự phòng tích cực, tuy nhiên các nghiên cứu hiện nay cũng đã hƣớng tới
các phƣơng pháp khác nhƣ: Monte Carlo, mô hình Markov tính độ tin cậy cho
hệ thống cảm biến trong mạng không dây phi cấu trúc (WSN)…Các phần tử
đƣợc xét tới trong bài toán thử nghiệm đƣợc giả thiết là các phần tử không tải
và đồng nhất, tuy nhiên trong thực tế còn phức tạp hơn nhiều với các phần từ
không đồng nhất, phần tử hoạt động có tải, hay các phần tử phục hồi…những
vấn đề này cần có thời gian và định hƣớng nghiên cứu nghiêm túc và áp dụng
vào các bài toán giải quyết những vấn đề thực tế, có ý nghĩa khoa học.
60
DANH MỤC
CÔNG TRÌNH KHOA HỌC LIÊN QUAN ĐẾN LUẬN VĂN
[1]. Nguyễn Anh Chuyên, Lê Quang Minh, Trần Thị Dung, “Nâng cao độ
ĐƢỢC CÔNG BỐ
tin cậy cho máy chủ DNS Anycast với giải pháp dự phòng tích cực”, K
yếu hội thảo @ lần thứ 18 năm 2015, tr 202-206.
61
TÀI LIỆU THAM KHẢO
[1]. Phan Văn Khôi (2001), Cơ sở đánh giá độ tin cậy, Nhà xuất bản Khoa
học và K thuật, tr 9, tr13, tr33-37, tr180-185, tr188-196
[2]. Trần Diên Hiển, Vũ Viết Yên (2005), Nhập môn lý thuyết xác suất và
thống kê toán, Nhà xuất bản Đại học Sƣ phạm, Hà Nội, tr16, 31.
[3]. Phạm Thị Thanh Hồng, Phạm Minh Tuấn (2006), Hệ thống thông tin
quản lý, Nhà xuất bản Khoa học và k thuật Hà Nội, tr.23, 24.
[4]. Đỗ Đức Giáo (2008), Toán rời rạc, Nhà xuất bản Đại học Quốc gia Hà
Nội, tr492-495, 496-498.
[5]. Nguyễn Duy Việt (4/2011), “Tính độ tin cậy của hệ thống không phục
hồi”, tạp chí Khoa học Giao thông Vận tải, tr2-4.
[6]. Lê Thị Hải Yến (2012), Các phương pháp đánh giá độ tin cậy của hệ
thống tính toán qua cấu trúc hệ thống, Luận văn Thạc sĩ Công nghệ phần
mềm, Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội.
[7]. Lê Quang Minh, Lê Khánh Dƣơng, Phạm Anh Khiêm (06/2014), “Đảm
bảo độ tin cậy của hệ thống bằng các phương pháp dự phòng truyền
thống và dự phòng bảo vệ tích cực”, báo cáo tham dự Hội nghị Nghiên
cứu cơ bản và ứng dụng công nghệ thông tin (FAIR) 2014.
[8]. Trần Minh Ta n, “Mọ t số giải pháp na ng cao tính bảo mạ t và hi u na ng
cho h thống máy chủ te n miền DNS cấp quốc gia”, luạ n án tiến sĩ toán
học, 2014.
[9]. Carlo Kopp (1996), System Reliability and metrics of Reliability, Peter
Harding & Associates Pty Ltd, pp.5-7, 8,9.
[10]. Mahesh Pandey, Mikko Jyrkama (2008), System Reliability
Analysis,University of Waterloo, pp.2-5, 23.
[11]. Vijay Kumar, Reliability Analysis in Wireless Sensor, 2011.
[12]. Lakshminarayanan, The Effect of Temperature on the Reliability of the
reliability of electronic componenents.
62
[13]. J. Abley. Hierarchical Anycast for Global Service Distribution, 2003.
http://ftp.isc.org/isc/pubs/tn/isc-tn-2003-1.html
[14]. Ron Aitchison, “Pro DNS and Bind 10”, ISBN 978-1-4302-3049-6, 2010.
[15]. "DNS Zone Transfer Protocol", RFC 5936,
http://www.ietf.org/rfc/rfc5936.txt
[16]. C. Partridge, T. Mendez, W. Milliken (1993), "Host Anycasting
Service", RFC1546.
[17]. “Advisory on DDoS Attacks Leveraging DNS Infrastructure”, ICANN
Security and Stability Advisory Committee (SSAC), February 2014.
[18]. I. Avramopoulos, M. Suchara, “Protecting the DNS from Routing
Attacks - A comparison of two Alternative Anycast Implementations”,
Proceedings IEEE, 2009.
[19]. Elsevier North-Holland (2000), "DNS Security", Computer Networks:
The International Journal of Computer and Telecommunications
Networking. ISSN:1389-1286, Volume 34 Issue 6, Dec. 1, 2000.
[20]. Google DNS report, http://googleblog.blogspot.com/2012/02/google-
public-dns-70-billion-requests.html
[21]. H. Ballani, P. Francis, “Mitigating DNS DoS Attacks”.
63
PHỤ LỤC
Mã nguồn chƣơng trình demo:
package com.master.project;
importjava.math.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
publicclass Reliability {
//khaibaovagangiatrilamda, alpha
publicstaticfinaldoublelamda = 0.00001;
publicstaticfinaldoublealpha = 0.9;
//Ham tinh P(t)
privatedouble pt(intt){
doubleresult = 0;
result = Math.exp(-lamda * t);
returnresult;
}
//Ham tinhgiatri P1 taithoidiem t bat ki
privatedouble p1t(intt){
doubleresult = 0;
result = Math.pow(this.pt(t),2);
returnresult;
}
//Ham tinhgiatri P2 taithoidiem t bat ki
privatedouble p2t(intt){
return Math.pow(this.pt(t), 3) + 3*alpha*(1-this.pt(t))*Math.pow(this.pt(t), 2);
}
//Ham tinhgiatri P3 taithoidiem t bat ki
privatedouble p3t(intt){
doubleresult = 0;
result = Math.pow(this.pt(t),4) + 4*alpha*(1-this.pt(t))*Math.pow(this.pt(t),3) +
64
6*Math.pow(alpha,2)*Math.pow(1-this.pt(t),2)*Math.pow(this.pt(t),2);
returnresult;
}
//Ham tinhtile % cua P2 so voi P1
privatedoublep2p1(intt){
doubletemp = (this.p2t(t) - this.p1t(t))/this.p1t(t);
returntemp * 100;
}
//Ham tinhtile % cua P3 so voi P1
privatedoublep3p1(intt){
doubletemp = (this.p3t(t) - this.p1t(t))/this.p1t(t);
returntemp * 100;
}
//main program
publicstaticvoid main(String[] args) {
Reliability re = new Reliability();
//mangluuthoigiantheogio (h)
int[] time = {100, 500, 1000, 4000, 8760, 17520, 26280, 35040, 43800, 52560,
61320};
doublept = 0, p1, p2, p3;
intt = 0;
String str;
re.printHeader();
for(inti=0; i
t = time[i];
pt = re.pt(t);
p1 = re.p1t(t);
p2 = re.p2t(t);
p3 = re.p3t(t);
str = String.valueOf(t).toString() +"\t\t" + re.convert(pt)+"\t\t" +
65
re.convert(p1)+"\t\t" + re.convert(p2)+"\t\t" + re.convert(p3);
System.out.println(str);
}
}
//print the header
privatevoid printHeader(){
System.out.println("Chuong trinh tinh do ti cay cua he thong trong 2 phuong an:");
System.out.println("t(gio) \t\t P(t) \t\t P1(t) \t\t P2(t) \t\t P3(t)");
}
//convert and format the double value
private String convert(doubled){
NumberFormat formatter = new DecimalFormat("#0.000");
String str = formatter.format(d).toString();
returnstr;
}
}
t = time[i];
pt = re.pt(t);
p1 = re.p1t(t);
p2 = re.p2t(t);
p3 = re.p3t(t);
str = String.valueOf(t).toString() +"\t\t" + re.convert(pt)+"\t\t" +
65
re.convert(p1)+"\t\t" + re.convert(p2)+"\t\t" + re.convert(p3);
System.out.println(str);
}
}
//print the header
privatevoid printHeader(){
System.out.println("Chuong trinh tinh do ti cay cua he thong trong 2 phuong an:");
System.out.println("t(gio) \t\t P(t) \t\t P1(t) \t\t P2(t) \t\t P3(t)");
}
//convert and format the double value
private String convert(doubled){
NumberFormat formatter = new DecimalFormat("#0.000");
String str = formatter.format(d).toString();
returnstr;
}
}