SlideShare ist ein Scribd-Unternehmen logo
1 von 74
I 1
17TMTB
:
17TMTB
n.
.
.
.
I 2
a)
.
b)
.
c)
.
I 3
TT
01 LVS Linux Virtual Server
02 NBL Network Load Balancing
03 TCP Transmission Control Protocol
04 UDP User Datagram Protocol
05 FTP File Transfer Protocol
06 NAT Network Address Translation
07 SAN Storage Area Network
08 CPU Central Processing Unit
09 VPS Virtual Private Server
10 HTTP Hypertext Transfer Protocol
11 GUI Graphical User Interface
12 NAS Network Attached Storage
13 VIP Virtual IP
14 IPVS IP Virtual Server
15 RAID Redundant Array Of Independent Disks
16 RAM Random Access Memory
17 HDD Hard Disk Drive
18 GNU General Public License
19 KDE K Desktop Environment
20 IP Internet Protocol
21 VLAN Virtual Local Area Network
I 4
-BASED..................................................................13
-BASED................................................14
..............................................................................16
.....................................................17
..............................................................19
-DEVICE-BASED .........................................20
-BASED........................................................20
......................................21
..............................................22
..........................................................................31
............................................32
................................32
1 node passive.........................33
................................................36
.........................................38
...................................................43
1 ........................................................................47
2 ........................................................................47
..................................................49
.....................................50
..............................................51
..................................................52
.......................................53
3.2 Download EPEL...............................................................................56
..............................................................................56
...............................................................57
.................................................................................58
................................................................58
...........................................................................59
.............................................................................59
..............................................................................60
I 5
..................................................................60
1...................................................................61
ver 2...................................................................61
...................................................................62
3.14 Active Virtual Server......................................................................62
...............................................................63
2 Real Server ................................64
.............................................................65
.html trên Real Server 1 ......................................65
.html trên Real Server 2 ......................................66
LVS..........................................66
1..............................................................67
.....................................................................68
2.......................................................................68
...........................................69
........................................................................69
1 ...............................................................70
...............................................................70
........................................................70
...........................................................71
............................................................71
.................................................72
I 6
................................................28
1.2: .................................................30
1.3: ...................53
I 7
.....................................................................................................................9
..................................................................................9
2. Mục tiêu đề tài.................................................................................................9
3. Phạm vi đề tài..................................................................................................9
4. Đối tƣợng nghiên cứu....................................................................................10
5. Phƣơng pháp nghiên cứu...............................................................................10
6. Ý nghĩa khoa học và thực tiễn.......................................................................10
CHƢƠNG 1 ..............................................................................................................11
............................................................11
.................................................................................11
.....................................................................................11
1.2. ...............................11
...........................................12
1.3.1 Tìm hiểu các dịch vụ công nghệ ...................................................12
....................................................................................13
1.3.3 Thành phần của hệ thố ..............................................................22
1.3.4 Ƣu điểm và nhƣợc điểm của công nghệ .......................................23
CHƢƠNG 2 ..............................................................................................................25
LINUX VIRTUAL SERVER ...................................................................................25
.............................................................................25
..................................................................................25
......................................................................26
.........................................................................28
................................................................................29
...................................................................31
2.2.1 Tổng quan về Clustering..........................................................................31
2.2.2 Phân loại Clustering.................................................................................33
2.2.3 ......................................................34
..........................................35
2.3.1 Giới thiệu về Linux Virtual Server ..........................................................35
2.3.2 Kiến trúc chung của Linux Virtual Server...............................................36
2.3.3 Các thuật toán lập lịch kết nối..................................................................39
.......................................................................41
...........................................................................................41
I 8
2.4.2 Thuậ .........................................................42
............................................................45
...............................................................46
....................................................48
CHƢƠNG 3 ..............................................................................................................53
D BALANCING.......................................................53
............................54
....................................................................55
....................................................................................................55
..............................................................................................55
..........................56
3.4.1 Cài đặt các gói cần thiết ...........................................................................56
3.4.2 Thực hiện cấu hình...................................................................................58
3.4.3 Thực hiện kiểm thử ..................................................................................66
...............................................................................................................73
..........................................................................................73
.......................................................................................................73
...............................................................................................73
.........................................................................................74
I 9
1.
Năm 2012 đánh dấu sự phát triển mạnh mẽ của các hệ thống Cloud
Computing và Big Data đi kèm đấy là sự phát triển mạnh mẽ của Internet và nhu
cầu của số lƣợng ngƣờ ột tăng cao. Điều này tạo ra cơ hội kinh doanh
cũng nhƣ khả năng “hái ra tiền” từ các dịch vụ Thƣơng mại điện tử. Hàng loạt các
Website thƣơng mại điện tử, các mạng xã hội cũng nhƣ các dịch vụ khác ra đời
nhằm đáp ứng nhu cầu đấy.
Tuy nhiên, đứng trƣớc việc luân chuyển dữ liệu mạnh mẽ ấy. Các hệ thống cũ đặc
biệt là các Webserver dƣờng nhƣ luôn bị quá tải bởi sự luân chuyển dữ liệu. Điều
này đƣa ra 1 thách thức cho doanh nghiệp. Việc xoá bỏ các máy chủ cũ và thay thế
một máy chủ mới thật sự tốn kém và chƣa hẳn đáp ứng đƣợc nhu cầu ngày càng cao
của ngƣời dùng.
Từ những bất cập đấy, một công nghệ mới đã ra đời, công nghệ ảo hoá, mà “Linux
Virtual Server” là một trong những công nghệ đấy. Linux Virtual Server nhƣ một
chiếc phao cứu sinh cho những hệ thố ự kết
hợp giữa các máy chủ, tạo nên một máy chủ bao gồm các máy chủ con, đảm nhiệm
nhiều công việc khác nhau. Việc này cho thấy đƣợc khả năng mở rộng cũng nhƣ
khả năng kết hợp, bắt tay giữa các máy chủ khi cùng chia sẻ tài nguyên cho nhau.
Linux Virtual Server kết hợp vớ
ờng nhƣ là cặp đôi hoàn hảo cho các doanh nghiệp vừa và nhỏ ngay tại
thời điểm này.
2. Mục tiêu đề tài
- Tìm hiểu về tổng quan công nghệ ảo hoá
- Tìm hiểu về hệ thống Linux Virtual Server
- Ứng dụng thực tiễn cho các doanh nghiệp vừa và nhỏ tại Việt Nam
3. Phạm vi đề tài
- Nghiên cứu trong phạm vi lý thuyết các vấn đề về hệ thống Linux Virtual
Server
- Cách thức triển khai hệ thống Linux Virtual Server kết hợp vớ
.
I 10
4. Đối tƣợng nghiên cứu
- Các lý thuyết về
-
- Các mô hình Linux Virtual Server
- Cách triển khai, vậ
Server
5. Phƣơng pháp nghiên cứu
- Sử dụng các kiến thức đã học và các nguồn thông tin có tính xác thực cao để
nghiên cứu.
- Sử dụng việc phân tích các vấn đề liên quan một cách logic về lý thuyết để
áp dụng vào thực tiễn
6. Ý nghĩa khoa học và thực tiễn
- Tạo một mô hình mới về hệ thống các máy chủ
- Giúp các doanh nghiệp tại Việt Nam có một hƣớng giải quyết mới khi các
vấn đề về điều kiện kinh tế còn hạn hẹp
I 11
CHƢƠNG 1
1.2
(Virtualization) là công nghệ đƣợc thiết kế để tạo ra tầng
trung gian giữa hệ thống phần cứng máy tính và phần mềm chạy trên nó.
Ý tƣởng của công nghệ ảo hóa máy chủ là từ một máy vật lý đơn lẻ có thể
tạo thành nhiều máy ảo độc lập. Mỗi một máy ảo đều có một thiết lập nguồn hệ
thống riêng rẽ, hệ điều hành riêng và các ứng dụng riêng.
.
Internet
năm 2
.
.
: Vmware,
Microsoft, Oracle, Amazon, Redhat, Google…
I 12
1.3
1.3.1 Tìm hiểu các dịch vụ công nghệ oá
1.3.1.1 VMware
.
.
1.3.1.2 Citrix
n
Amazon EC2, Rackspace, Softlayer.
1.3.1.3 Oracle
ARC.
1.3.1.4 Microsoft
-
.
I 13
1.3.2.1Ảo hoá hệ thống máy chủ
a.
(VPS:
Virutal Private Server).
-
-BASED
b.
-BASED
i : Hypervisor hay còn gọi là Virtual Machine
Monitor (VMM), là một lớp phần mềm “mỏng” giữa phần cứng và hệ điều hành để
cho phép các hệ điều hành đó quản lý và sử dụng các tài nguyên phần cứng cùng
lúc.
-BASED
I 14
Kiến trúc này sử dụng một lớp Hypervisor chạy trên nền tảng hệ điều hành,
sử dụng các dịch vụ đƣợc hệ điều hành cung cấp để phân chia tài nguyên tới các
máy ả ột lớp phần mềm riêng biệt, do đó thì các hệ điều
hành khách của máy ảo sẽ nằm trên lớp thứ 3 so với phần cứng máy chủ.
-
: Bao gồm các thiết bị nhập xuất, thiết bị lƣu trữ (HDD,
SSD, Ram), bộ vi xử lý CPU, và các thiết bị khác (các thiết bị mạng, vi xử lý
đồ họa, âm thanh…)
: Hệ điều hành này thực hiện việc liên lạc trực tiếp với
phần cứng, qua đó cung cấp các dịch vụ và chức năng thông qua hệ điều
hành này.
(hybervisor): Chạy trên nền tảng hệ điều
hành host, các hệ thống này lấy tài nguyên và dịch vụ do hệ điều hành host
cung cấp, thực hiện việc quản lý, phân chia trên các tài nguyên này.
: Sử dụng tài nguyên do hypervisor quản lý.
Một số hệ thống hypervisor dạng Hosted có thể kể đến nhƣ VMware Server,
VMware Workstation, Microsoft Virtual Server…
-BASED
-BASED
I 15
Trong kiến trúc này, lớp phần mềm hypervisor chạy trực tiếp trên nền tảng
phần cứng của máy chủ, không thông qua bất kì một hệ điều hành hay một nền tảng
nào khác. Qua đó, các hypervisor này có khả năng điều khiển, kiểm soát phần cứng
của máy chủ. Đồng thời, nó cũng có khả năng quản lý các hệ điều hành chạy trên
nó.
-
: Bao gồm các thiết bị nhập xuất, thiết bị lƣu trữ (HDD,
Ram), bộ vi xử lý CPU, và các thiết bị khác (các thiết bị mạng, vi xử lý đồ
họa, âm thanh…)
: thực hiện việc liên lạc trực
tiếp với nền tảng phần cứng phía dƣới, quản lý và phân phối tài nguyên cho
các hệ điều hành khác nằm trên nó.
: Các máy ảo này sẽ lấy tài nguyên từ phần cứng, thông
qua sự cấp phát và quản lý của hypervisor.
Một số ví dụ về các hệ thống Bare-metal hypervisor nhƣ là: Oracle VM,
VMware ESX Server, IBM's POWER Hypervisor (PowerVM), Microsoft's Hyper-
V (xuất xƣởng tháng 6 năm 2008), Citrix XenServer…
1.3.2.2 Ảo hoá hệ thống mạng
a)
Ả ạng hình dung một cách đơn giản là gom các dịch vụ, các
ứng dụng dựa trên nền ngƣời dùng/máy chủ, đƣa chúng lên hệ thống mạng. Sau đó,
các ứng dụng, dịch vụ này sẽ đƣợc gán và cung cấp vào các kênh phù hợp theo nhu
cầu (nhƣ VLAN), hay ứng dụng cụ thể đƣợc đối tƣợng nào đó yêu cầu để sử dụng
(Assign for request).
b)
Có nhiều phƣơng pháp để thực hiện việc ảo hóa hệ thống mạng. Các phƣơng
pháp này tùy thuộc vào các thiết bị hỗ trợ, tức là các nhà sản xuất thiết bị đó, ngoài
ra còn phụ thuộc vào hạ tầng mạng sẵn có, cũng nhƣ nhà cung cấp dịch vụ mạ
.
I 16
(Virtualized Overlay Network)
Trong mô hình này, nhiều hệ thống mạng ảo sẽ cùng tồn tại trên một lớp nền
tài nguyên dùng chung. Các tài nguyên đó bao gồm các thiết bị mạng nhƣ Router,
Switch, các dây truyền dẫn, NIC (network interface card).Việc thiết lập nhiều hệ
thống mạng ảo này sẽ cho phép sự trao đổi thông suốt giữa các hệ thống mạng khác
nhau, sử dụng các giao thức và phƣơng tiện truyền tải khác nhau, ví dụ nhƣ mạng
Internet, hệ thống PSTN, hệ thống Voip. Điều này làm tăng tính linh động trong hệ
thống mạng, giúp doanh nghiệp, ngƣời dùng thoát khỏi sự trói buộc của thiết bị, hạ
tầng vật lý.
Substrate link: Các liên kết vật lý nền tảng.
Sustrate router: Các router vật lý
Virtual link và Substrate router là các thiết bị và liên kết đƣợc ảo hóa.
I 17
Một giải pháp về ảo hóa hệ thống mạng đƣợc Cisco đƣa ra, đó là phân mô
hình ảo hóa ra làm 3 khu vực, với các chức năng chuyên biệt. Mỗi khu vực sẽ có
các liên kết với các khu vực khác để cung cấp các giải pháp đến tay ngƣời dùng 1
cách thông suốt. Cụ thể nhƣ sau:
Khu vực quản lý truy nhập (Access Control): Có nhiệm vụ chứng thực ngƣời
dùng muốn đăng nhập để sử dụng tài nguyên hệ thống, qua đó sẽ ngăn chặn
các truy xuất không hợp lệ của ngƣời dùng; ngoài ra khu vực này còn kiểm
tra, xác nhận và chứng thực việc truy xuất của ngƣời dùng trong vào các
vùng hoạt động (nhƣ là VLan, Access list).
Khu vực đƣờng dẫn (Path Isolation): Nhiệm vụ của khu vực này là
 Duy trì liên lạc thông qua hạ tầng cấu trúc Layer 3 (tầng Network trong
mô hình OSI).
 Vận chuyển liên lạc giữa các vùng khác nhau trong hệ thống. Trong các
vùng này sử dụng giao thức khác nhau, nhƣ MPLs (Multiprotocol Label
I 18
Switching) và VRF (Virtual Routing and Forwarding), do đó cần một cầu
nối để liên lạc giữa chúng).
 Ngoài ra, khu vực này có nhiệm vụ liên kết (maping) giữa các đƣờng
truyền dẫn với các vùng hoạt động ở hai khu vực cạnh nó là Access
Control và Services Edge.
Khu vực liên kết với dịch vụ (Services Edge): Tại đây sẽ áp dụng những
chính sách phân quyền, cũng nhƣ bảo mật ứng với từng vùng hoạt động cụ
thể; đồng thời qua đó cung cấp quyền truy cập đến dịch vụ cho ngƣời dùng.
Các dịch vụ có thể ở dạng chia sẻ hay phân tán, tùy thuộc vào môi trƣờng
phát triển ứng dụng và yêu cầu của ngƣời dùng.
1.3.2.1Ảo hoá hệ thống lưu trữ
a)
Ngày nay, nhu cầu lƣu trữ dữ liệu của ngƣời dùng, doanh nghiệ
ầu ấ ần một số lƣợng
đĩa cứng tăng tƣơng ứng, cùng với sự phát triển dung lƣợng của các đĩa. Do đó, vấn
đề bị phát si ều thiết bị lƣu trữ vật lý cần đƣợc quản
lý. Mặc dù có nhiều phƣơng pháp đƣợc đề xuất để phục vụ cho việc quản lý này
nhƣ RAID (Ghép nhiều đĩa cứng vật lý thành 1 đĩa cứng, qua đó gia tăng tốc độ đọc
ghi và có khả năng chịu lỗi cao), NAS (Network-attached storage), và SAN
(Storage-area networks), việc quản lý vẫn rất khó khăn và độ phức tạp cao. Do đó,
khái niệm ảo hóa hệ thống lƣu trữ (Storage virtualization) ra đời. Ảo hóa hệ thống
lƣu trữ, về cơ bản là sự mô phỏng, giả lập việc lƣu trữ từ các thiết bị lƣu trữ vật lý.
Các thiết bị này có thể là băng từ, ổ cứng hay kết hợp cả 2 loại.
I 19
Ảo hóa hệ thống lƣu trữ mang lại các ích lợi nhƣ việc tăng tốc khả năng truy
xuất dữ liệu, do việc trải rộng và phân chia các tác vụ đọc/ghi trong mạng lƣu trữ.
Ngoài ra, việc mô phỏng các thiết bị lƣu trữ vật lý cho phép tiết kiệm thời gian hơn
thay vì phải định vị xem máy chủ nào hoạt động trên ổ cứng nào để truy xuất.
b)
-BASED
Server
Ổ đĩa vật lý
Driver của
thiết bị
Lớp ảo hóa
-BASED
Trong mô hình này, ngăn cách giữa lớp ảo hóa và ổ đĩa vật lý là driver điều
khiển của các ổ đĩa. Phần mềm ảo hóa sẽ truy xuất tài nguyên (các ổ cứng vật lý)
thông qua sự điều khiển và truy xuất của lớp Driver này.
-DEVICE-BASED
Server
Phần mềm ảo
hóa được nhúng
vào ổ cứng vật lý
I 20
-DEVICE-BASED
Trong dạng này, phần mềm ảo hóa giao tiếp trực tiếp với ổ cứng. Ta có thể
xem nhƣ đây là 1 dạng firmware đặc biệt, đƣợc cài trực tiếp vào ổ cứng. Dạng này
cho phép truy xuất nhanh nhất tới ổ cứng, nhƣng các thiết lập thƣờng khó khăn và
phức tạp hơn các mô hình khác. Dịch vụ ảo hóa đƣợc cung cấp cho các Server
thông qua một thiết bị điều khiển gọi là Primary Storage Controller.
ETWORK-BASED
-BASED
Trong mô hình này, việc ảo hóa sẽ đƣợc thực thi trên một thiết bị mạng, ở
đây có thể là một thiết bị switch hay server. Các switch/server này kết nối với các
trung tâm lƣu trữ (SAN). Từ switch/server này, các ứng dụng kết nối vào đƣợc giao
tiếp với trung tâm dữ liệu bằng các “ổ cứng” mô phỏng do Switch/server tạo ra dựa
trên trung tâm dữ liệu thật. Đây cũng là mô hình hay gặp nhất trên thực tế.
1.3.2.4 Ảo hoá ứng dụng
a) m
Thông thƣờng, khi muốn sử dụng một phần mềm nào đó nhƣ office, design,
ngƣời dùng hay có suy nghĩ rằng cần phải tốn thời gian cài đặt phần mềm đó lên
trên máy tính, cụ thể hơn là lên hệ điều hành đang sử dụng. Điều này tốn khá nhiều
thời gian, nhất là nếu áp dụng trên những doanh nghiệp lớn, có cả ngàn máy tính, và
I 21
đồng thời vấn đề quản lý các phần mềm này nhƣ ai truy xuất, thời gian truy xuất
cho phép ra sao trở thành một thách thức thật sự.
Do đó, khái niệm ảo hóa ứng dụng ra đời. Một ứng dụng đƣợc ảo hóa sẽ
không đƣợc cài đặt lên máy tính một cách thông thƣờng, mặc dù ở góc độ ngƣời sử
dụng, ứng dụng vẫn hoạt động một cách bình thƣờng. Ảo hóa ứng dụng sẽ giúp tách
rời sự phụ thuộc giữa nền tảng phần cứng, hệ điều hành và ứng dụng với nhau.
b)
ể kể đến nhƣ
Citrix với mô hình Application Streaming, Microsoft vớ
Citrix.
Kỹ thuật streaming cho phép ngƣời quản lý có thể “đẩy” và quản lý các ứng
dụng trên nền tảng hệ điều hành Windows đến bất cứ ngƣời dùng nào theo yêu cầu.
Cụ thể hơn, thông qua các đƣờng truyền dữ liệu đƣợc dành riêng, các ứng dụng
đƣợc tải về thiết bị của ngƣời dùng, sau đó chạy trên một môi trƣờng giả lập. Các
thành phần của hệ thống application streaming này bao gồm:
Application Profiler: Tại đây các application đƣợc đóng gói, kèm với nó là
các thông tin nhƣ tài nguyên cần thiết để chạy ứng dụng, các quy tắc khi
triển khai trên thiết bị ngƣời dùng, các thành phần của ứng dụng…
Application Hub: Sau khi đã đƣợc đóng gói kèm theo các thông tin cần thiết,
các ứng dụng/phần mềm đƣợc lƣu trữ tại đây.
Một đặc điểm với kỹ thuật này là: Các ứng dụng đƣợc lƣu trữ tại bộ nhớ cục
bộ tại các máy tính cuối của ngƣời dùng, và đƣợc sử dụng nhƣ các phần mềm đƣợc
I 22
cài đặt theo cách truyền thống. Nhƣng thật sự nó không đƣợc cài đặt, mà là chạy
trên lớp đệm là môi trƣờng ảo hóa nằm ngay trên hệ điều hành.
1.3.3 Thành phần của hệ thống oá
Một hệ thống ảo hóa bao gồm những thành phần sau.
Tài nguyên vật lý (host machine,host hardware)
Các phần mềm ảo hóa (virtual software) cung cấp và quản lý môi trƣờng
làm việc của các máy ảo .
Máy ảo (virtual machine) là các máy đƣợc cài trên phần mềm ảo hóa.
Hệ điều hành: là hệ điều hành đƣợc cài trên máy ảo.
1.3.3.1 Tài nguyên vật lý
Các tài nguyên vật lý trong môi trƣờng ảo hóa cung cấp tài nguyên mà các
máy ảo sẻ sử dụ . Một môi trƣờng tài nguyên lớn có thể đƣợ ều
máy ảo chạy trên nó và hiệu quả làm việc của các máy ảo cao hơn.Các tài nguyên
vật lý thông thƣờng nhƣ là ổ đĩa cứng, ram, card mạng.
1.3.3.2 Phần mềm ảo hoá
Lớp phần mềm ảo hóa này cung cấp sự truy cập cho mỗi máy ảo đến tài
nguyên hệ thống. Nó cũng chịu trách nhiệm lập kế hoạch và phân chia tài nguyên
vật lý cho các máy ảo. Phần mềm ảo hóa là nền tảng của một môi trƣờng ảo hóa. Nó
I 23
cho phép tạo ra các máy ảo cho ngƣời sử dụng, quản lý các tài nguyên và cung cấp
các tài nguyên này đến các máy ảo. Kế hoạch quản lý sử dụng tài nguyên khi có sự
tranh chấp một tài nguyên đặc biệt của các máy ảo, điều này dẫn tới sự hiệu quả làm
việc của các máy ảo. Ngoài ra phần mềm ảo hóa còn cung cấp giao diện quản lý và
cấu hình cho các máy ảo.
1.3.3.3 Máy ảo
Thuật ngữ máy ảo đƣợc dùng chung khi miêu tả cả máy ảo và hệ điều hành
ảo. Máy ảo thực chất là một phần cứng ảo một môi trƣờng hay một phân vùng trên
ổ đĩa. Trong môi trƣờng này có đầ ết bị phần cứng nhƣ một máy thật.
Đây là một kiểu phần mềm ảo hóa dựa trên phần cứng vật lý. Các hệ điều hành
khách mà chúng ta cài trên các máy ảo này không biết phần cứng mà nó nhìn thấy
là phần cứng ảo.
1.3.3.4 Hệ điều hành khách
Hệ điều hành khách đƣợc xem nhƣ một phần mềm đƣợc cài đặt trên một máy
ảo giúp ta có thể sử dụng dễ dàng và xử lý các sự cố trong môi trƣờng ảo hóa. Nó
giúp ngƣờ ững thao tác giống nhƣ là đang thao tác trên một lớp phần
cứng vật lý thực sự.
1.3.4 Ƣu điểm và nhƣợc điểm của công nghệ oá
1.3.4.1 Ưu điểm của công nghệ ảo hoá
.
.
1.3.4.2 Nhược điểm của công nghệ ảo hoá
.
I 24
.
I 25
CHƢƠNG 2
LINUX VIRTUAL SERVER
2.1 LINUX
Linux là tên gọi của một hệđiều hành máy tính và cũng là tên hạt nhân của
hệ điề . Nó có lẽ là
một ví dụ nổi tiếng nhất của phầnmềm tự do và của việc phát triển mã nguồn mở.
Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn
là một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng
say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994. Bộ
phận chủ yếu này đƣợc phát triển và tung ra trên thị trƣờng dƣới bản quyền GNU
General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của
Linux.
Một cách chính xác, thuật ngữ "Linux" đƣợc sử dụng để chỉ NhânLinux,
nhƣng tên này đƣợc sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều
hành giống (còn đƣợc biết đến dƣới tên GNU/Linux) đƣợc tạo ra bởi việc đóng gói
nhân Linux cùng với các thƣ viện và công cụ GNU, cũng nhƣ là các bản phân phối
Linux. Thực tế thì đó là tập hợp một số lƣợng lớn các phần mềm nhƣ máy chủ web,
các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trƣờng làm
việcdesktop nhƣ GNOME và KDE, và các ứng dụng thích hợp cho công việc văn
phòng nhƣ Openoffice.
Ban đầu, Linux đƣợc phát triển và sử dụng bởi những ngƣời say mê. Tuy
nhiên, hiện nay Linux đã có đƣợc sự hỗ trợ bởi các công ty lớn nhƣ IBM và
Hewlett-Packard, đồng thời nó cũng bắt kịp đƣợc các phiên bản Unix độc quyền và
thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một
số lĩnh vực. Sở dĩ Linux đạt đƣợc những thành công một cách nhanh chóng là nhờ
vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ
cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin
cậy cao cũng nhƣ là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung
I 26
cấp. Một đặc tính nổi trội của nó là đƣợc phát triển bởi một mô hình phát triển phần
mềm nguồn mởhiệu quả.
Tuy nhiên, hiện tại số lƣợng phần cứng đƣợc hỗ trợ bởi Linux vẫn còn rất
khiêm tốn so với Windows vì các trình điều khiển thiết bị tƣơng thích với Windows
nhiều hơn là Linux. Nhƣng trong tƣơng lai số lƣợng phần cứng đƣợc hỗ trợ cho
Linux sẽ tăng lên.
.
Linux là một hệ điều hành mã nguồn mở ể tùy ý sửa
chữa theo nhƣ mình thích (miễ ủ kiến thức). Bạn có thể chỉnh sửa
Linux và các ứng dụng trên đó sao cho phù hợp với mình nhất. Việc Việt hóa
Windows đƣợc xem là không thể nếu nhƣ bạn không có sự đồng ý và hỗ trợ của
Microsoft. Tuy nhiên với Linux thì bạn có thể làm đƣợc điều này một cách đơn giản
hơn. Mặt khác do Linux đƣợc một cộng đồng rất lớn những ngƣời làm phần mềm
cùng phát triển trên các môi trƣờng, hoàn cảnh khác nhau nên tìm một phiên bản
phù hợp với yêu cầu của bạn sẽ không phải là một vấn đề quá khó khăn.
Tính linh hoạt của Linux còn đƣợc thể hiện ở chỗ nó tƣơng thích đƣợc với
rất nhiều môi trƣờng. Hiện tại, ngoài Linux dành cho server, máy tính để bàn nhân
Linux (Linux kernel) còn đƣợc nhúng vào các thiết bị điều khiển nhƣ máy tính
palm, robot.... Phạm vi ứng dụng của Linux đƣợc xem là rất rộng rãi.
Trƣớc hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng. Chỉ có
"root" (ngƣời dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống. Ngoài ra
Linux cũng có cơ chế để một ngƣời dùng bình thƣờng có thể chuyển tạm thời
chuyển sang quyền "root" để thực hiện một số thao tác. Điều này giúp cho hệ thống
có thể chạy ổn định và tránh phải những sai sót dẫn đế ệ thống. Trong
những phiên bản Windows gần đây, cơ chế phân quyền này cũng đã bƣớc đầu đƣợc
áp dụng, nhƣng so với Linux thì vẫn kém chặt chẽ hơn.
I 27
Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux. Nếu nhƣ
một lỗ hổng nào đó trên Linux đƣợc phát hiện thì nó sẽ đƣợc cả cộng đồng mã
nguồn mở ờng thì chỉ sau 24h sẽ có thể cho ra bả . Mặt khác
đối với những hệ điều hành mã nguồn đóng nhƣ Windows, bạn không thể biết đƣợc
ngƣời ta viết gì, và viết ra sao mà chỉ biết đƣợc chúng chạy nhƣ thế nào. Vì vậy nếu
nhƣ Windows có chứa những đoạn mã cho phép tạo những "backdoor" để xâm nhập
vào hệ thống của bạn thì bạn cũng không thể biết đƣợc. Đối với ngƣời dùng bình
thƣờng nhƣ chúng ta vấn đề này có vẻ nhƣ không quan trọng nhƣng đối với một hệ
thống tầm cỡ nhƣ hệ thống quốc phòng thì vấn đề nhƣ thế này lại mang tính sống
còn. Các nhân viên an ninh không đƣợc phép để lộ một kẽ hở nào, dù là nhỏ nhất vì
nó liên quan đến an ninh của cả một quốc gia.Và một lần nữa các phần mềm mã
nguồn mở nói chung và Linux nói riêng lại là sự lựa chọn số một. Trong Linux mọi
thứ đều công khai, ngƣời quản trị có thể tìm hiểu tới mọi ngõ ngách của hệ điều
hành. Điều đó cũng có nghĩa là độ an toàn đƣợc nâng cao.
2.1.1
Đƣợc thiết kế ngay từ đầu cho chế độ đa ngƣời dùng, Linux đƣợc xem là một
hệ điều hành mạng rất giá trị. Nếu nhƣ Windows tỏ ra là một hệ điều hành thích hợp
với máy tính Desktop thì Linux lại là hệ điều hành thống trị đối với các Server. Đó
là do Linux có rất nhiều ƣu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính
bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt… Giao thức TCP/IP
mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này
mới đƣợc đƣa vào Windows)
Dù cho có rất nhiều phiên bản Linux đƣợc các nhà phân phối khác nhau ban
hành nhƣng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel
486 đến những máy Pentium mới nhất, từ những máy có dung lƣợng RAM chỉ 4MB
đến những máy có cấu hình cực mạnh (tất nhiên là tốc độ sẽ khác nhau nhƣng về
nguyên tắc vẫn có thể chạy đƣợc). Nguyên nhân là Linux đƣợc rất nhiều lập trình
viên ở nhiều môi trƣờng khác nhau cùng phát triển (không nhƣ Windows chỉ do
Microsoft phát triển) và bạn sẽ bắt gặp nhiều ngƣời có "cùng cảnh ngộ" nhƣ mình
và dễ dàng tìm đƣợc các driver tƣơng ứng với thiết bị của mình . Tính chất này hoàn
I 28
toàn trái ngƣợc với Windows. Mỗi khi có một phiên bản Windows mới ra đời thì
bao giờ kèm theo đó cũng là một cơn khát về phần cứng vì hệ điều hành mới
thƣờng không hỗ trợ các thiết bị quá cũ.
1. b phân p
Tên bản phân phối Trang web chính thức Các bản tƣơng tự
Ubuntu 9.04 www.ubuntu.com Kubuntu, Xubuntu
Debian GNU/Linux 5.0 www.debian.org
Ultimate Edition 1.7
Red Hat Enterprise Linux 5.0 www.redhat.com/rhel/
Fedora 11.0 www.fedoraproject.org
Knoppix 5.3.1 www.knoppix.com/
PCLinuxOS 2008 www.pclinuxos.com/
Mandrake 2007.0 www.madrivalinux.com Madriva
CentOS 6 www.centos.org/
Gentoo www.gentoo.org/
Slackware 12.1 www.slackware.com/
SLAX
Easys
Sabayon
Dreamlinux
OpenSolaris 2008 www.opensolaris.org
Hacao Linux 4.21 http://www.hacao.com/
Asianux 2.0 http://www.asianux.com/ Asianux Server
Asianux http://www.asianux.com/ Asianux Server 3
Fenix Desktop 2009 http://www.rongvietnam.vn/
I 29
g
CentOS (tên viết tắt của Community ENTerprise Operating System ) là một
phân phối Linux tập trung vào lớp doanh nghiệp, xây dựng từ nhiều nguồn miễn phí
(theo GPL và một số bản quyền tƣơng tự) của Red Hat.
CentOS tồn tại để cung cấp một nền tảng điện toán doanh nghiệp tự do và
phấn đấu để duy trì khả năng tƣơng thích nhị phân 100% với nguồn thƣợng nguồn
của nó, Red Hat
CentOS dựa trên nền tảng Red Hat Enterprise Linux , hỗ trợ dòng x86 (i586
và i686), dòng x86_64 (AMD64 và Intel EMT64), các cấu trúc IA64, Alpha, S390
và S390x.
I 30
ng 1.2 L
Centos Kiến trúc Bản
RHEL CentOS RHEL
2 I386 2.1 14/05/2004 17/05/2002
3.1 I386,X86-64, IA64,
S390,S390X
3 19/04/2004 23/10/2003
3.3 I386,X86-64, IA64,
S390,S390X
3.3 17/09/2004 03/09/2004
3.4 I386,X86-64, IA64,
S390,S390X
3.4 23/01/2005 12/12/2004
3.5 I386 3.5 10/06/2005 18/05/2005
3.6 I386 3.6 11/01/2005 28/09/2005
3.7 I386,X86-64, IA64,
S390,S390X
3.7 10/04/2006 17/03/2006
3.8 I386,X86-64 3.8 25/08/2006 20/07/2006
3.9 I386,X86-64, IA64,
S390,S390X
3.9 26/07/2007 15/06/2007
4 I386,X86-64, varius 4 09/03/2005 14/02/2005
4.1 I386. IA64, S390 4.1 12/06/2005 18/06/2005
4.2 I386,X86-64, IA64,
S390,S390X,alpha
4.2 13/10/2005 05/10/2005
4.3 I386,X86-64, IA64,
S390,S390X
4.3 21/03/2006 12/03/2006
4.4 I386,X86-64 4.4 30/08/2006 10/08/2006
CentOS có thể cài đặt trên các loại máy tính để bàn, máy tính mini có cấu
trúc dựa trên nền tảng Intel-based Mac architectures (dành cho chíp 64bit có phiên
bản riêng). Yêu cầu tối thiểu để chạy Ubuntu là 256MB RAM (384MB RAM để
chạy trực tiếp Ubuntu từ đĩa CD), nhƣng khuyến cáo nên cài đặt trên máy có
I 31
512MB RAM trở lên. Ubuntu khi cài đặt vào ổ đĩa cứng cần ít nhất 5GB trống (bao
gồm cả phân vùng trao đổi). Nên có card đồ họa mạnh để sử dụng các hiệu ứng trên
giao diện đồ họa.
2.2 CLUSTERING
2.2.1 Tổng quan về Clustering
2.2.1.1 Khái niệm
ằ ẵn sàng cho
các hệ ạng. Clustering bao gồm nhiều server riêng lẻ đƣợc liên kết và hoạt
động cùng với nhau trong một hệ thống. Các server này giao tiếp với nhau để trao
đổi thông tin và giao tiếp với mạng bên ngoài để thực hiện các yêu cầu. Khi có lỗi
xảy ra các dịch vụ trong cluster hoạt động tƣơng tác với nhau để duy trì tính ổn định
và độ sẵn sàng cao cho hệ thống.
2.2.1.2 Cấu trúc Clustering
Tùy theo nhu cầu mà chúng ta có thể triển khai nhiều dịch vụ trên cùng 1
cluster hay cài đặt trên mỗi node 1 dịch vụ, nói chung cấu trúc của 1 cluster không
cố định nhƣng chủ yếu chúng ta thấy hữu ích nhất là các loại cấu trúc nhƣ
a) Dịch vụ chạy song song: Triển khai 2 dịch vụ trên hệ thống cluster thì có 1
phƣơng pháp đơn giản là cài đặt cả 2 dịch vụ ấy vào mỗi node của cluster . Ở
I 32
cấu trúc này thì 2 dịch vụ trên cùng 1 server do đó nếu ứng này bị lỗi thì sẽ
ảnh hƣởng đến dịch vụ kia, hiệu quả của hệ thống cluster thấp
b) Cluster riêng lẻ: Tạo 2 hệ thống cluster riêng lẻ, trong mỗi cluster cài đặt
duy nhất 1 dịch vụ. Ở cấu trúc này thì hệ thống sẽ hiệu quả hơn nếu có dịch
vụ nào đó bị lỗi thì cũng không ảnh hƣởng đến các dịch vụ khác. Nhƣng chi
phí đầu tƣ cho kiểu này rất cao bởi vì số lƣợng các node cho mỗi dịch vụ
nhiều hơn loại a ở trên.
c) Dịch vụ dự phòng: Triển khai cả 2 dịch vụ trên cùng 1 cluster, mỗi node cài
1 dịch vụ nhƣng khác với loại 1 là sẽ có 1 cluster làm nhiệm vụ backup. Cụ
I 33
thể nhƣ hình cho ta thấy hệ thống này có 1 node passive dùng làm backup và
cài cả 2 dịch vụ của node 1 và node 2 (2 node Active). Nếu 1 trong 2 node
này bị lỗi thì node passive sẽ thay thế chức năng của node bị lỗi.
1 node passive
2.2.2 Phân loại Clustering
Kỹ thuật clustering đƣợc chia thành hai loại là Cluster và Network Load
Balancing
2.2.2.1 Cluster
Đƣợc dùng cho các ứng dụng hoạt động thƣờng xuyên trong thời gian dài
bao gồm các database server hay còn gọi là các ứng dụng stateful applications. Tất
cả các node trong cluster dùng chung một nơi lƣu trữ dữ liệu có thể sử dụng công
nghệ SCSI (Small Computer System Interface) hay Storage Area Network (SAN)
chi tiết về SAN sẽ đƣợc trình bày trong chƣơng tiếp theo.
2.2.2.2 Network Load Balancing
Network Load Balancing(NLB) Là một loại khác của kỹ thuật clustering có
khả năng chia tải và nâng cao khả năng chịu lỗi của hệ thống. Đƣợc dùng cho các
ứng dụng hoạt động không tiên tục nhƣ File tranfer protocol (FTP) hay Virtual
I 34
Private Network (VPN). Các node trong cluster không dùng chung một nơi lƣu trữ
cơ sở dữ liệu cho nên cần phải có quá trình đồng bộ hóa (replication) dữ liệu giữa
các nơi lƣu trữ, số lƣợng node càng nhiều thì thời gian cho việc đồng bộ càng lâu.
Mỗi node trong nhóm có thể định ra mức tải mà nó sẽ xử lý hoặc tải có thể
phân phối một cách đồng đều giữa các node. Nhờ sử dụng việc phân phối tải này,
mỗi server sẽ lựa chọn và xử lý một phần yêu cầu. Tải do các client gửi đến đƣợc
phân phối sao cho mỗi server nhận đƣợc số lƣợng các yêu cầu theo đúng phần tải đã
định của nó. Sự cân bằng tải này có thể điều chỉnh động khi các host tham gia vào
hoặc rời khỏi nhóm.
Các node trong nhóm cân bằng tải phát đi một bản tin đặc biệt thông báo
trạng thái hoạt động của nó (heartbeat message) tới các node khác trong nhóm đồng
thời nghe bản tin này từ các node khác. Nếu một node trong nhóm gặp sự cố, các
node còn lại sẽ điều chỉnh và tái phân phối lại tải để duy trì việc cung cấp dịch vụ
một cách liên tục cho các client.
NLB sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ các client đến các
node trong nhóm. Thuật toán này cho phép các node trong nhóm đƣa ra các quyết
định cân bằng tải một cách độc lập và nhanh chóng cho từng gói đến. Nó đƣợc tối
ƣu hoá để cung cấp khả năng cân bằng tải một cách thống kê đối với một số lƣợng
lớn các yêu cầu nhỏ do vô số client tạo ra.
Một điểm cần lƣu ý là cả cluster và network load balancing đều có khả năng
cân bằng tải và có khả năng chịu lỗi (failover) cho các dịch vụ. Tuy nhiên sự khác
biệt trong hoạt động đó là khi một node trong cluster xảy ra sự cố thì server
clustering sẽ loại bỏ node đó ra và request từ client sẽ không đƣợc chuyển tới node
này cho đến khi nào node khôi phục lại trạng thái hoạt động bình thƣờng. Trong khi
đối với network load balancing thì không có cơ chế này.
Mỗi máy chủ trong cluster đƣợc gọi là một node (cluster node), và có thể
đƣợc thiết lập ở chế độ chủ động (active) hay thụ động (passive). Khi một node ở
chế độ chủ động, nó sẽ chủ động xử lý các yêu cầu. Khi một node là thụ động, nó sẽ
nằm ở chế độ dự phòng nóng (standby) chờ để sẵn sàng thay thế cho một node khác
nếu bị hỏng.
I 35
Trong một cluster có nhiều node có thể kết hợp cả node chủ động và node
thụ động. Trong những mô hình loại này việc quyết định một node đƣợc cấu hình là
chủ động hay thụ động rất quan trọng. Để hiểu lý do tại sao, hãy xem xét các tình
huống sau:
Nếu một node chủ động bị sự cố và có một node thụ động đang sẵn sàng, các
ứng dụng và dịch vụ đang chạy trên node hỏng có thể lập tức đƣợc chuyển
sang node thụ động. Vì máy chủ đóng vai trò node thụ động hiện tại chƣa
chạy ứng dụng hay dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của
máy chủ hỏng mà không ảnh hƣởng gì đến các ứng dụng và dịch vụ cung cấp
cho ngƣời dùng cuối.
Nếu tất cả các máy chủ trong cluster là chủ động và có một node bị sự cố,
các ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang
một máy chủ khác cũng đóng vai trò node chủ động. Vì là node chủ động
nên bình thuờng máy chủ này cũng phải đảm nhận một số ứng dụng hay dịch
vụ gì đó, khi có sự cố xảy ra thì nó sẽ phải gánh thêm công việc của máy chủ
hỏng. Do vậy để đảm bảo hệ thống hoạt động bình thƣờng kể cả khi có sự cố
thì máy chủ trong cluster cần phải có cấu hình dƣ ra đủ để có thể gánh thêm
khối lƣợng công việc của máy chủ khác khi cần.
2.3
2.3.1 Giới thiệu về Linux Virtual Server
Linux virtual server (LVS) là kỹ thuật tập hợp các server thành một server
duy nhất đối với client. Server này đƣợc gọi là virtual server, bên trong là các real
server, chúng chịu sự điều khiển của director hay còn gọi là load balancer với một
địa chỉ IP ảo (IPV). IPVS là một đặc tính quan trọng trong load balancer, nó thực
hiện cân bằng tải ở tầng vận chuyển bên trong nhân linux. Nó điều hƣớng các yêu
cầu về các dịch vụ TCP/UDP tới các real server và làm cho các dịch vụ của real
server xuất hiện nhƣ một dịch vụ ảo với một IP duy nhất.
Load balancer đƣợc xem nhƣ một router lớp 4 nắm giữ bảng định tuyến. Khi
client gửi yêu cầu đến một dịch vụ mà LVS cung cấp, director sẽ lựa chọn một real
server thích hợp và sau đó yêu cầu sẽ đƣợc chuyển đến cho real server đó. Sự giao
I 36
tiếp giữa client và real server chỉ tồn tại trong một phiên kết nối, ở phiên kết nối
khác thì director sẽ chọn một real server khác.
LVS cung cấp các dịch vụ mạng có tính sẵn sàng và độ tin cậy cao bằng việc
sử dụng cluster là tập hợp của nhiều real server. Chồng giao thức TCP/IP của nhân
linux đƣợc mở rộng để hổ trợ 3 kỹ thuật IP Load Balancing mà có thể tạo ra nhiều
dịch vụ chạy song song trên các real server khác nhau của cluster để tạo ra một dịch
vụ với một IP duy nhất. Tính tin cậy cũng đƣợc thực hiện bằng việc thêm hay gỡ bỏ
real server một cách trong suốt trong hệ thống cluster cũng nhƣ khả năng phát hiện
sự cố và khắc phục lỗi của node hoặc daemon một cách tƣơng thích.
2.3.2 Kiến trúc chung của Linux Virtual Server
2.3.2.1 Các thành phần trong hệ thống LVS
Load Balancer
LAN/WAN
Real Server 1
Real Server 2
Real Server n
…….
Virtual Server
Client
Internet
I 37
Virtual Server: Tập hợp các server thành một hệ thống duy nhất.
Real Server: Các server các dịch vụ để cung cấp cho client nhƣ: Web, mail,
ftp, dns … Các server này nằm sau Load balancer.
Virtual service: Các dịch vụ mà virtual server cung cấp cho client.
Director: hay còn gọi là Load balancer, là server cài LVS, nó tiếp nhận yêu
cầu từ client và phân phối cầu đến các real server. Server làm director không
cài ứng dụng hay dịch vụ nào cả.
IPVS (IP Virtual Server): Là một thành phần quan trọng trong LVS, nó đƣợc
tích hợp trong nhân Linux. Nhiệm vụ của nó là tiếp nhận yêu cầu từ client và
phân phối đến các real server trong hệ thống.
VIP (Virtual IP): Director sử dụng một địa chỉ IP ảo để giao tiếp với client.
Khi client gửi yêu cầu đến VIP, director sẽ lựa chọn real server thích hợp và
chuyển yêu cầu tới nó. Các dịch vụ mà real server cung cấp có thể tìm thấy ở
/etc/services. LVS đƣợc đại diện bằng một địa chỉ IP trên director khi giao
tiếp với client. VIP không phải là địa chỉ của của bất kỳ director hay real
server nào cả. Mỗi director có thể có nhiểu VIP, mỗi VIP dùng cho một dịch
vụ. Các VIP này có thể đƣợc trả lời từ các real server khác nhau hoặc từ một
real server.
2.3.2.2 Kiến trúc 3 lớp trong hệ thống LVS
Kiến trúc 3 lớp của LVS đƣợc mô tả nhƣ hình sau:
Load Balancer: là front-end đối với dịch vụ và đƣợc thấy bởi client. Nó điều
khiển các kết nối từ client đến các real server trong cluster.
Server Cluster: là tập hợp các Real Server nằm trong cluster đang thực thi
các dịch vụ có thể cung cấp cho client.
Storage: cung cấp lƣu trữ chia sẽ cho các server để các server có thể dễ dàng
theo dõi cùng một nội dung và cung cấp các dịch vụ giống nhau.
Load balancer hổ trợ các kết nối đi vào bằng cách sử dụng kỹ thuật IP Load
Balancer, nó lựa chọn server từ Server Cluster, duy trì kết nối hiện hành và thực
hiện chuyển gói tin, tất cả các công việc đều đƣợc thực hiện bên trong nhân vì vậy
nên Load Balancer có thể hổ trợ số lƣợng lớn kết nối mà không xảy ra tình trạng
thắc cổ chai (bottleneck). Các server trong kiến trúc này có thể sao chép qua lại với
I 38
nhau để tang tính sẵn sàng và tính bảo mật. Khi yêu cầu đƣợc chuyển tới thì hệ
thống sẽ tính toán xem node server nào phù hợp để chọn, có thể có nhiều node
server đƣợc chọn để tối ƣu hóa công việc. Một trong những thuận lợi của hệ thống
cluster là nó có tính dƣ thừa về phần cứng và phần mềm. Tính sẵn sàng cao đƣợc
cung cấp bởi sự phát hiện sự hƣ hỏng của các node hay dịch vụ và cấu hình lại để
hệ thống để mà công việc có thể thực hiện trên các node trong cluster. Thông
thƣờng sẽ có một dịch vụ giám sát cluster chạy trên Load Balancer để theo dõi tình
trạng của các Real server. Nếu không thể ping hay không nhận đƣợc phản hồi từ các
real server trong một thời gian nào đó thì dịch vụ giám sát sẽ gỡ bỏ hoặc disable
real server đó ra khỏi bảng lập lịch của Load Balancer để Load Balancer không lập
lịch kết nối tới real server đó.
Nhƣ vậy, Load Balancer là điểm quan trọng nhất trong hệ thống. Để tránh sự
hƣ hỏ ết lập thêm Load Balancer dƣ phòng. Hai dịch vụ heartbeat
I 39
chạy trên Primary và Backup Load Balancer sẽ lắng nghe thông điệp về tình trạng
thông qua kênh heartbeat chẳng hạn nhƣ serial line hay UDP Periodically. Khi dịch
vụ heartbeat trên Backup không thể nhận đƣợc thông tin từ Primary trong khoảng
thời gian nhất định nó sẽ sử dụng ARP spoofing để lấy địa chỉ IP ảo cung cấp cho
dịch vụ load balancing. Khi Primary khôi phục lại thì sẽ có 2 phƣơng án: Một là
Primary sẽ trở thành Backup, hai là dịch vụ heartbeat sẽ nhận thông điệp từ Primary
và trả địa chỉ IP ảo lại cho nó. Tuy nhiên trong quá trình hƣ hỏng và khôi phục lại
của Primary đã làm cho việc thiết lập kết nối trong bảng trạng thái bị mất đi, vì vậy
client phải gửi yêu cầu lại.
2.3.3 Các thuật toán lập lịch kết nối
2.3.3.1 Round-Robin
Thuật toán lập lịch Round-Robin phân phối yêu cầu đến từng server trong
server cluster một cách liên tục. Đối với thuật toán này, các server trong server
cluster là nhƣ nhau, không quan tâm đến khả năng chịu tải của từng server.
2.3.3.2 Weighted Round-Robin
Thuật toán lập lịch Weighted Round-Robin phân phối yêu cầu đến từng
server trong server cluster một cách liên tục nhƣng số kết nối nhận đƣợc sẽ tùy theo
từng khả năng của từng server. Mỗi server sẽ có một trọng số có giá trị nguyên để
đại diện cho khả năng xử lý. Server có trọng số cao hơn sẽ nhận đƣợc kết nối mới
trƣớc sau đó mới đến các server có trọng số nhỏ hơn, và server có trọng số cao hơn
sẽ nhận đƣợc nhiều kết nối hơn các server có trọng số thấp hơn, các server có trọng
số bằng nhau thì sẽ nhận đƣợc số kết nối nhƣ nhau.
2.3.3.3 Least-Connection
Thuật toán này sẽ chuyển hƣớng những kết nối mạng tới những server mà có
số lƣợng kết nối đang hoạt động ít nhất, đây là thuật toán lập lịch tự động vì nó cần
đếm số lƣợng kết nối đang hoạt động của từng server. Với thuật toán này thì những
yêu cầu lớn thì sẽ không đƣợc duy trì trên một server. Thuật toán least-connection
có thể hoạt động tốt thậm chí server có khả năng xử lý khác nhau bởi vì server
nhanh hơn sẽ nhận đƣợc nhiều kết nối hơn. Tuy nhiên có một yếu tố gọi là TCP’s
TIME WAIT làm cho thuật toán này hoạt động không tốt, giá trị TCP’s TIME
WAIT thƣờng là 2 phút.
I 40
Ví dụ:server B mạnh hơn server A thì server B sẽ nhận được hàng ngàn kết
nối và nó sẽ lưu giữa giá trị TCP’s TIME WAIT. Lúc này server B sẽ nhận kết nối
mạng nhưng vì nó chậm nên việc xử lý số lượng kết nối nhiều thì không thể. Như
vậy thuật toán này cân bằng tải không tốt khi các server có khả năng xử lý khác
nhau.
2.3.3.4 Weighted Least-Connection
Thuật toán Weighted Least-Connection là thuật toán cải tiến của thuật toán
Least-Connection. Đối với thuật toán này chúng ta có thể thêm trọng số xử lý cho
mỗi real server. Server có giá trị trọng số cao hơn sẽ nhận đƣợc số kết nối hoạt động
nhiều hơn. Mặc định, trọng số có giá trị là 1. Và ngƣời quản trị IPVS hay phần mềm
theo dõi đặt trọng số này cho real server. Kết nối mới sẽ đƣợc chuyển đến server
nào có tỉ lệ giữa số lƣợng kết nối hoạt động với trọng số của nó là nhỏ nhất.
2.3.3.5 Locality-Based Least-Connection
Thuật toán này phân phối nhiều yêu cầu đến các máy chủ có ít kết nối đang
hoạt động liên quan địa chỉ IP của chúng. Thuật toán này đƣợc thiết kế để sử dụng
trong proxy-cache cluster server. Nó định tuyến các gói tin có chung một địa chỉ IP
đến máy chủ có địa chỉ đó, nếu server không đủ khả năng thì sẽ có một server khác
tải một nửa. Trong thuật toán này địa chỉ IP sẽ đƣợc gán cho server có tải ít nhất.
2.3.3.6 Locality-Based Least-Connection With Replication
Thuật toán này phân phối nhiều yêu cầu đến các máy chủ có ít kết nối đang
hoạt động liên quan đến địa chỉ IP của chúng. Thuật toán này đƣợc thiết kế để sử
dụng trong proxy-cache cluster server. Nó khác với Locality-Based Least
Connection là nó ánh xạ địa chỉ IP đích tới một tập hợp (subset) các server. Nếu các
real server trong tập hợp này không đủ khả năng xử lý thì nó sẽ sử dụng những
server mới trong server cluster bằng cách thêm những server này vào tập hợp.
2.3.3.7 Destination Hash
Phân phối những yêu cầu đến cluster của những real server bằng cách tìm địa
chỉ IP đích trong một bảng băm tĩnh. Thuật toán này đƣợc thiết kế cho proxy-cache
cluster server.
I 41
2.3.3.8 Source Hash
Phân phối những yêu cầu đến cluster của những real server bằng cách tìm địa
chỉ IP nguồn trong một bảng băm tĩnh. Thuật toán này đƣợc thiết kế cho LVS router
với nhiều Firewall.
2.4
Cân bằng tải là một kỹ thuật để phân phối khối lƣợng công việc đồng đều
giữa hai hoặc nhiều máy tính, kết nối mạng, CPU, ổ cứng, hoặ
khác, để ử dụ ối ƣu, tối đa hóa thông lƣợng, giảm
thiểu thời gian đáp ứng và tránh tình trạng quá tải.
2.4.1.2 Heartbeat
.
..
2.4.1.3 Ldirector
.
2.4.1.4 Piranha
Piranha là sản phẩm clustering của Red Hat đƣợc phân
phối từ phiên bản Red Hat 6.1. Piranha bao gồm LVS, các dịch vụ giám sát cluster
và những công cụ quản trị bằng GUI.
2.4.1.5 Mon
Mon là hệ thống giám sát nguồn tài nguyên tổng thể (VD: Cluster), nó đƣợc
mở rộng để giám sát tính sẵn sàng của các dịch vụ mạng và các server node. Các
I 42
module trong mon bao gồm: fping.monitor, http.monitor, ldap.monitor,…. Mon
đƣợc dùng để giám sát các real server trong cluster. Mon sẽ đƣa ra cảnh báo sẽ đƣợc
đƣa ra khi xóa hay thêm một entry vào bảng lập lịch, mon còn phát hiện server ở
tình trạng down/up vì vậy ngƣời quản trị có thể đánh dấu những dịch vụ nào hay
server nào bị lỗi và đƣa chúng trở lại khi chúng đƣợc phục hồi. Heartbeat đƣợc sử
dụng để điều khiển việc dự phòng lỗi giữa 2 load balancer.
2.4.2 Thuậ
Network Load Balancing sử dụng thuật toán lọc phân tán hoàn toàn để ánh
xạ các client đến các host trong nhóm. Thuật toán này cho phép các host trong
nhóm đƣa ra các quyết định cân bằng tải một cách độc lập và nhanh chóng cho từng
gói đến. Nó đƣợc tối ƣu hoá để cung cấp khả năng cân bằng tải một cách thống kê
đối với một số lƣợng lớn các yêu cầu nhỏ do vô số client tạo ra, điển hình là đối với
các Web server.
Nếu số client và/hoặc các kết nối client tạo ra các tải quá chênh lệch nhau
trên server, thuậ ải sẽ ít hiệu quả. Tuy nhiên, tính đơn giản và tốc độ
của thuật toán cho phép cung cấp hiệu nǎng rất cao bao gồm cả thông lƣợng cao và
thời gian đáp ứng ngắn trong một dải rộng các ứng dụng client/server thông dụng.
I 43
Network Load Balancing (NLB) xử lý các yêu cầu của client bằng cách dẫn
đƣờng cho một tỉ lệ phần trăm đã chọn những yêu cầu mới cho từng host trong
nhóm. Thuật toán không đáp ứng những thay đổi về tải trên mỗi host (chẳng hạn
nhƣ tải CPU hay vấn đề sử dụng bộ nhớ). Tuy nhiên, quá trình ánh xạ sẽ đƣợc thay
đổi khi quan hệ thành viên trong nhóm thay đổi và tỉ lệ phần trăm tải phân bố sẽ
đƣợc tái cân bằng.
Khi xem xét một gói đến, tất cả các host thực hiện đồng thời việc ánh xạ
thống kê để xác định nhanh chóng host nào sẽ xử lý gói đó. Quá trình ánh xạ sử
dụng một hàm ngẫu nhiên để tính mức ƣu tiên của host dựa trên địa chỉ IP và cổng
đến của client cùng các thông tin trạng thái khác để tối ƣu hoá việc cân bằng tải.
Host tƣơng ứng sẽ chuyển gói đó từ các tầng dƣới lên tầng TCP/IP còn các host
khác sẽ loại bỏ gói này. Quá trình ánh xạ không thay đổi trừ phi quan hệ giữa các
host trong nhóm thay đổi, để đảm bảo rằng địa chỉ IP và cổng đến của client cho
trƣớc sẽ luôn đƣợc ánh xạ đến cùng một host trong nhóm.
Tuy nhiên, host cụ thể trong nhóm mà địa chỉ IP và cổng đến của client ánh
xạ tới không thể đƣợc xác định trƣớc do hàm ngẫu nhiên có tính đến quan hệ thành
viên trong nhóm hiện tại và quá khứ để tối thiểu hoá khả năng ánh xạ lại.
I 44
Nhìn chung, chất lƣợng cân bằng tải đƣợc xác định một cách thống kê bởi số
lƣợng client tạo ra yêu cầu. Nhƣ kết cấu tăng giảm về số lƣợng client theo thống kê,
sự đều đặn về chất lƣợng của thuật toán cân bằng tải sẽ thay đổi nhẹ.
Để hoạt động cân bằng tải có độ chính xác cao trên mỗi host trong nhóm,
một phần tài nguyên hệ thống sẽ đƣợc sử dụng để đo và phản ứng trƣớc những thay
đổi của tải. Sự trả giá về hiệu năng này phải đƣợc cân nhắc so với lợi ích của việc
tối đa hoá khả năng sử dụng các tài nguyên trong nhóm (về cơ bản là CPU và bộ
nhớ). Trong bất cứ trƣờng hợp nào, việc sử dụng hợp lý các nguồn tài nguyên server
phải đƣợc duy trì để có thể phục vụ cho các tải client khác trong trƣờng hợp xảy ra
lỗi.
Khi một host mới tham gia vào nhóm, nó sẽ kích hoạt quá trình hội tụ và một
quan hệ thành viên mới trong nhóm sẽ đƣợc tính toán. Khi quá trình hội tụ hoàn
thành, một phần tối thiểu client sẽ đƣợc ánh xạ tới host mới. NLB dò các kết nối
TCP trên mỗi host và sau khi kết nối TCP hiện tại của chúng hoàn thành, kết nối
tiếp theo từ các client bị ảnh hƣởng sẽ đƣợc xử lý bởi host mới.
Do đó, các host nên đƣợc bổ sung vào nhóm tại những thời điểm tải tăng quá
mạnh nhằm tối thiểu hoá hiện tƣợng ngắt quãng các phiên. Để tránh vấn đề này,
trạng thái phiên phải đƣợc quản lý bởi ứng dụng server sao cho nó có thể đƣợc tái
cấu trúc hay đƣợc trả lại từ bất kỳ một host nào trong nhóm. Ví dụ, trạng thái phiên
có thể đƣợc đẩy đến server cơ sở dữ liệu và lƣu trong các cookies của client.
Các host trong nhóm trao đổi định kỳ các bản tin thông báo trạng thái hoạt
động “heartbeat” multicast hoặc broadcast với nhau. Điều này cho phép các host có
thể giám sát trạng thái của nhóm. Khi trạng thái của nhóm thay đổi (chẳng hạn nhƣ
khi có host gặp trục trặc, rời khỏi hoặc tham gia vào nhóm), NLB kích hoạt một chu
trình gọi là hội tụ trong đó các host trao đổi bản tin "heartbeat" để định ra một trạng
thái mới, bền vững cho nhóm. Khi tất cả các đạt đƣợc sự "nhất trí" trạng thái mới
của chúng sẽ đƣợc thiết lập và những thay đổi này sẽ đƣợc lƣu vào nhật ký sự kiện.
Trong quá trình hội tụ, các host tiếp tục xử lý lƣu lƣợng mạng đến nhƣ mọi
khi ngoại trừ lƣu lƣợng đến host bị lỗi không nhận đƣợc dịch vụ. Quá trình hội tụ
I 45
kết thúc khi tất cả các host trong nhóm có đƣợc một quan hệ thành viên ổn định
trong vòng một vài chu kỳ heartbeat.
Khi hoàn thành quá trình hội tụ, lƣu lƣợng đến host bị lỗi sẽ đƣợc tái phân
phối cho các host còn lại. Nếu một host đƣợc thêm vào nhóm, quá trình hội tụ cho
phép host này nhận đƣợc phần tải của nó trong lƣu lƣợng đã đƣợc cân bằng.
Việc mở rộng nhóm không ảnh hƣởng đến các hoạt động của nhóm và theo
một cách hoàn toàn trong suốt đối với tất cả các Internet client cũng nhƣ trƣớc các
chƣơng trình phần mềm server. Tuy nhiên, nó có thể ảnh hƣởng đến các phiên client
vì các client có thể phải tái ánh xạ tới các host khác trong nhóm.
Trong chế độ unicast, mỗi host sẽ phát quảng bá (broadcast) bản tin
"heartbeat" theo chu kỳ. Còn trong chế độ multicast, nó sẽ phát các bản tin này ở
chế độ multicast. Mỗi bản tin "heartbeat" chiếm một khung Ethernet và đƣợc gắn
thêm địa chỉ IP chính của nhóm nhằm cho phép nhiều nhóm có thể cùng tồn tại trên
cùng một mạng con. Bản tin "heartbeat" của NLB của Microsoft đƣợc gán một giá
trị 0x886F. Chu kỳ gửi các bản tin này mặc định là 01 giây. Giá trị này có thể thay
đổi.
Trong quá trình hội tụ, chu kỳ này đƣợc giảm xuống chỉ còn một nửa để đẩy
nhanh việc hoàn tất quá trình này. Thậm chí, đối với các cluster lớn, băng thông cần
thiết để truyền các bản tin "heartbeat" rất thấp (24kBytes/s cho một cluster 16
đƣờng). Để có thể khởi tạo quá trình hội tụ, theo mặc định cần 05 bản tin heartbeat
không đƣợc nhận. Giá trị này có thể thay đổi.
Vai trò của NLB tác động đến hiệu năng của hệ thống có thể đƣợc đánh giá
dựa trên các tiêu chí chính sau:
CPU overhead trên các host của nhóm.
Phần trăm CPU cần thiết để phân tích và lọc các gói của mạng.
Tất cả các giải pháp cân bằng tải đều cần sử dụng một phần tài nguyên của
hệ thống để xem xét gói đến và đƣa ra quyết định cân bằng tải và do đó ít nhiều ảnh
hƣởng đến hiệu năng của mạng.
Giải pháp cân bằng tải dựa trên bộ điều phối cần kiểm tra, hiệu chỉnh và
truyền lại gói tới các host trong nhóm (thƣờng phải sửa đổi lại địa chỉ IP để tái định
I 46
tuyến gói từ địa chỉ IP ảo tới địa chỉ IP của từng host cụ thể). Đối với NLB, nó phân
phối đồng thời các gói đến tới tất cả các host trong nhóm và áp dụng một thuật toán
lọc để loại bỏ các gói không mong muốn...
Quá trình lọc gây ảnh hƣởng ít hơn so với quá trình tái định tuyến và kết quả
là thời gian đáp ứng nhanh hơn với thông lƣợng toàn hệ thống cao hơn.
.
.
.
.
.
.
I 47
a)
1
2.
2
.
I 48
b)
.
2.4.5.1 LVS-NAT
Vì sự thiếu hụt của IPv4 và một số lý do bảo mật, nhiều mạng sử dụng địa
chỉ IP private, nó không thể dùng trên internet. Vì thế đã phát sinh nhu cầ
ạng nội bộ muốn
truy cập internet và ngƣợc lại.
NAT port đƣợc dùng trong LVS/NAT :
I 49
2.11 Mô
Load Balancer có 2 địa chỉ: một để liên lạc với client, một để liên lạc với các
real server bên trong. Địa chỉ để liên lạc với các real server cũng nhƣ địa chỉ của các
real server có thể là địa chỉ private. Địa chỉ để liên lạc với client bên ngoài là địa chỉ
public.
Quá trình làm việc của LVS/NAT đƣợc mô tả nhƣ sau: Khi một client truy
xuất tới dịch vụ ảo đƣợc cung cấp bởi server cluster, một gói tin request với địa chỉ
đích là địa chỉ public của Load Balancer. Load Balancer sẽ kiểm tra địa chỉ đích của
gói tin và số hiệu cổng, nếu hợp lệ với bảng chính sách của Virtual Server về dịch
vụ ảo thì lúc này một Real Server đƣợc chọn từ cluster bằng thuật toán lập lịch và
kết nối đƣợc đƣa vào trong bảng hash (là nơi ghi lại các thông tin kết nối). Sau đó,
địa chỉ đích và số hiệu cống đƣợc viết lại thành địa chỉ và số hiệu cổng cho server
đƣợc lựa chọn và gói tin đƣợc chuyển đến server. Khi những gói tin khác đi đến thì
kết nối đƣợc tìm trong bảng hash nếu nó thuộc vào trạng thái đã đƣợc thiết lập thì
gói tin sẽ đƣợc viết lại và chuyển đến server. Khi gói tin phản hồi đƣợc gửi lại thì
Load Balancer sẽ viết lại địa chỉ nguồn và số hiệu cổng thành địa chỉ public của
Load Balancer.
Khi một kết nối kết thúc hay hết hạn thì nó sẽ đƣợc xỏa khỏi bảng Hash.
I 50
2.4.5.2 LVS-Tunneling
IP Tunnleling (IP encapsulation) là kỹ thuật đóng gói gói tin IP này trong gói
tin IP khác, cho phép gói tin đi đến 1 địa chỉ IP, đƣợc đóng gói và chuyển hƣớng tới
1 địa chỉ )
Điểm khác biệt lớn nhất giữa LVS/TUN với LVS/NAT đó là Load Balancer
sẽ tạo ra đƣờng hầm để chuyển gói tin yêu cầu đến các Real Server, sau đó Real
Server xử lý và trả kết quả trực tiếp cho client không thông qua Load Balancer.
Khi 1 user truy cập đến dịch vụ ảo đƣợc cung cấp bởi cluster, một gói tin
đƣợc chuyến đến VIP. Load Balancer sẽ kiểm tra địa chỉ đích và số hiệu cổng của
gói tin. Nếu chúng hợp lệ với dịch vụ ảo, thì 1 Real Server sẽ đƣợc chọn theo thuật
toán lập lịch kết nối, và kết nối này đƣợc thêm vào bảng Hash. Sau đó, Load
Balancer sẽ đóng gói gói tin này trong gói tin IP và chuyển đến cho server. Khi một
gói tin khác đƣợc chuyển đến từ kết nối đã đƣợc thiết lập và server đƣợc chọn đƣợc
tìm trong bản Hash, gói tin sẽ đƣợc đóng gói lại và chuyển đến cho server đó. Khi
server nhận đƣợc gói tin đã đóng gói, nó mở gói gói tin và xử lý yêu cầu, cuối cùng
I 51
nó trả về kết quả cho user một cách trực tiếp theo bảng routing của nó. Sau khi kết
nối bị hủy hoặc hết thời gian, kết nối đó sẽ đƣợc xóa khỏi bảng Hash.
Tiến trình đƣợc minh họa theo hình vẽ sau:
Trong mô hình này, những Real Server có thể có những địa chỉ IP bất kỳ
thuộc bất kỳ mạng nào nhƣng chúng phải hổ trợ giao thức IP Tunneling và chúng
phải có thiết bị tunnel để cấu hình với VIP.
2.4.5.3 LVS-Direct Routing
LVS/DR cũng gần giống với NetDispather của IBM. Các Real Server và
Load Balancer dùng chung địa chỉ IP ảo. Load Balancer có một card mạng để cấu
hình VIP, nó tiếp nhận gói tin yêu cầu, và chuyển trực tiếp gói tin đó đến server
đƣợc chọn.
Khi 1 user truy cập đến 1 dịch vụ ảo do cluster cung cấp, 1 gói tin đƣợc
chuyển đến VIP. Load Balancer sẽ kiếm tra tính hợp lệ của địa chỉ đích và số hiệu
cổng của gói tin. Nếu chúng hợp lệ với 1 dịch vụ ảo, 1 Real Server sẽ đƣợc chọn
theo thuật toán lập lịch kết nối, và kết nối đó đƣợc thêm vào bảng Hash. Sau đó,
Load Balancer sẽ chuyển trực tiếp đến cho server đƣợc chọn. Khi một gói tin khác
đƣợc chuyển đến theo kết nối đã đƣợc thiết lập thì server đƣợc chọn đƣợc tìm thấy
trong bảng Hash, gói tin sẽ đƣợc đóng gói lại và chuyển trực tiếp đến cho server.
I 52
Khi server nhận đƣợc gói tin đƣợc chuyển tới, server xác định gói tin thông qua
card loopback, nó xử lý yêu cầu và trả lại kết quả trực tiếp cho user. Sau khi kết nối
bị hủy bỏ hoặc hết thời gian thì nó đƣợc xóa khỏi bảng Hash.
:
Load Balancer chỉ thay đổi địa chỉ MAC của frame, chọn server và chuyển
lại nó trong LAN. Đó là lý do mà Load Balancer và các Real Server cần phải kết nối
trực tiếp trên một phần đoạn LAN liên tục.
I 53
trong LVS
LVS/NAT LVS/TUN LVS/DR
Server Any Tunneling Non-arp
Server Network Private LAN/WAN LAN
Server Number 10 – 20 100 100
Server Gateway Load Balancer Own router Own router
CHƢƠNG 3
I 54
3.2
HeartBeat
Director – Load Balancer
Backup – Load Balancer
Real Server 1(Web Server)
Real Server 2(Web Server)
Virtual IP Address
192.168.2.100
192.168.2.5/24
192.168.2.6/24
192.168.2.3/24
172.16.1.1/24
192.168.2.4/24
172.16.1.2/24
Client Passive
Active
,
2 Real Server
.
.
: Mail Server, DNS
Server…
Virtual IP Address
I 55
3.3
3.3.
.
.
: Trong mô
.
.
I 56
3.4
3.4.1 Cài đặt các gói cần thiết
.
3.4.1.1 Cài đặt Hearbeat
E )wget :
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
3.2 Download EPEL
: rpm -ivUh epel-release-6-8.noarch.rpm
: yum –enablerepo=epel install
heartbeat
I 57
:
rpm –qa|grep heartbeat
:
http://rpmfind.net
http://mirror.centos.org/centos/5/extras/i386/RPMS/
đ
2 Server )
#yum install piranha
#yum install ipvsadm
nhau.
3.4.1.2 Cài đặt Apache
đƣợc hỗ trợ bở ên 2 Real
Server.
I 58
2 Server: yum install httpd
3.4.2 Thực hiện cấu hình
Piranha , Vitual IP Address, 2 Real
Server), Director, Backup.
3.4.2.1 Cấu hình Piranha
.
#chkconfig piranha-gui on
#chkconfig pulse on
#chkconfig httpd on
#/usr/sbin/piranha-passwd
3636
:
http:192.168.2.3:3636
Username: piranha
.
I 59
CONTROL/MONITORI
Primary Server
NAT, Direct Routing
Routing
I 60
.
Director
Heartbeat
.
I 61
.
.
1
1
80 cho httpd
.
2
h Real Server 2
I 62
3.14 Active Virtual Server
#Vi/etc/sysctl.conf
net.ipv4.ip_forward=0 net.ipv4.ip_forward=1
#sysctl–p
#service piranha-gui restart
#service pulse resart
I 63
3.4.2.3 Cấu hình Real Server
.
rpm -ivh arptables_jf-0.0.8-8.i386.rpm
rpm –ivh arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm
3.15
: /etc/sysconfig/network-scripts/ifcfg-lo:0
I 64
3.16 2 Real Server
2 Real Server.
Thực hiện chặn ARP trên IP ảo củ .
# /etc/init.d/arptables_jf stop
# /usr/sbin/arptables-noarp-addr 192.168.2.100 start
# /etc/init.d/arptables_jf save
# /etc/init.d/arptables_jf start
# /sbin/chkconfig --level 2345 arptables_jf on
Serve
.
:
I 65
#service network restart
#service httpd restart
3.17
2 Real
Server
3.18 .html trên Real Server 1
.html
I 66
3.19 .html trên Real Server 2
3.4.3 Thực hiện kiểm thử
T
.
#Service piranha-gui restart
#Service pulse restart
/MONITORING trên Director
I 67
2 Server:
Server 1: 2
Server 2: 2
.
1
, I
sang .
I 68
Xem trên Backup
Backup.
trên Real Server
2
2
I 69
2
#service httpd restart
.
.
)
2.
I 70
cho Real 1
.
1.
I 71
.
#service pulse stop
irector
I 72
3.31 Backup
.
I 73
1.
2 Real Server.
2.
.
, Mail
Server hay
.
3.
th Firewall
.
I 74
. -Linux
,2009
[2] Josep Jorba Esteve, Remo Suppi Boldrito. GNU/LINUX Advanced
Administration. FUOC, 2009
[3] Shawn A Butler. System Integration, Integrating Services. Carnegie Mellon
University, 2010
Trang Web
[4] http://www.linuxvirtualserver.org/architecture.html
[5] http://www.linuxvirtualserver.org/HighAvailability.html
[6] http://www.linuxvirtualserver.org/docs/ha/heartbeat_ldirectord.html
[7] http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F
[8] http://www.linux-ha.org/wiki/
[9]http://khanh.com.vn/post/2011/11/03/Cau-hinh-Linux-Virtual-Server-via-Direct-
Routing.aspx
[10] http://kenhgiaiphap.vn/Detail/62/LVS-%28Linux-Virtual-Server%29.html

Weitere ähnliche Inhalte

Empfohlen

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Empfohlen (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Đồ Án Linux Virtual Server - Nguyễn Văn Châu Khôi

  • 3. I 3 TT 01 LVS Linux Virtual Server 02 NBL Network Load Balancing 03 TCP Transmission Control Protocol 04 UDP User Datagram Protocol 05 FTP File Transfer Protocol 06 NAT Network Address Translation 07 SAN Storage Area Network 08 CPU Central Processing Unit 09 VPS Virtual Private Server 10 HTTP Hypertext Transfer Protocol 11 GUI Graphical User Interface 12 NAS Network Attached Storage 13 VIP Virtual IP 14 IPVS IP Virtual Server 15 RAID Redundant Array Of Independent Disks 16 RAM Random Access Memory 17 HDD Hard Disk Drive 18 GNU General Public License 19 KDE K Desktop Environment 20 IP Internet Protocol 21 VLAN Virtual Local Area Network
  • 4. I 4 -BASED..................................................................13 -BASED................................................14 ..............................................................................16 .....................................................17 ..............................................................19 -DEVICE-BASED .........................................20 -BASED........................................................20 ......................................21 ..............................................22 ..........................................................................31 ............................................32 ................................32 1 node passive.........................33 ................................................36 .........................................38 ...................................................43 1 ........................................................................47 2 ........................................................................47 ..................................................49 .....................................50 ..............................................51 ..................................................52 .......................................53 3.2 Download EPEL...............................................................................56 ..............................................................................56 ...............................................................57 .................................................................................58 ................................................................58 ...........................................................................59 .............................................................................59 ..............................................................................60
  • 5. I 5 ..................................................................60 1...................................................................61 ver 2...................................................................61 ...................................................................62 3.14 Active Virtual Server......................................................................62 ...............................................................63 2 Real Server ................................64 .............................................................65 .html trên Real Server 1 ......................................65 .html trên Real Server 2 ......................................66 LVS..........................................66 1..............................................................67 .....................................................................68 2.......................................................................68 ...........................................69 ........................................................................69 1 ...............................................................70 ...............................................................70 ........................................................70 ...........................................................71 ............................................................71 .................................................72
  • 7. I 7 .....................................................................................................................9 ..................................................................................9 2. Mục tiêu đề tài.................................................................................................9 3. Phạm vi đề tài..................................................................................................9 4. Đối tƣợng nghiên cứu....................................................................................10 5. Phƣơng pháp nghiên cứu...............................................................................10 6. Ý nghĩa khoa học và thực tiễn.......................................................................10 CHƢƠNG 1 ..............................................................................................................11 ............................................................11 .................................................................................11 .....................................................................................11 1.2. ...............................11 ...........................................12 1.3.1 Tìm hiểu các dịch vụ công nghệ ...................................................12 ....................................................................................13 1.3.3 Thành phần của hệ thố ..............................................................22 1.3.4 Ƣu điểm và nhƣợc điểm của công nghệ .......................................23 CHƢƠNG 2 ..............................................................................................................25 LINUX VIRTUAL SERVER ...................................................................................25 .............................................................................25 ..................................................................................25 ......................................................................26 .........................................................................28 ................................................................................29 ...................................................................31 2.2.1 Tổng quan về Clustering..........................................................................31 2.2.2 Phân loại Clustering.................................................................................33 2.2.3 ......................................................34 ..........................................35 2.3.1 Giới thiệu về Linux Virtual Server ..........................................................35 2.3.2 Kiến trúc chung của Linux Virtual Server...............................................36 2.3.3 Các thuật toán lập lịch kết nối..................................................................39 .......................................................................41 ...........................................................................................41
  • 8. I 8 2.4.2 Thuậ .........................................................42 ............................................................45 ...............................................................46 ....................................................48 CHƢƠNG 3 ..............................................................................................................53 D BALANCING.......................................................53 ............................54 ....................................................................55 ....................................................................................................55 ..............................................................................................55 ..........................56 3.4.1 Cài đặt các gói cần thiết ...........................................................................56 3.4.2 Thực hiện cấu hình...................................................................................58 3.4.3 Thực hiện kiểm thử ..................................................................................66 ...............................................................................................................73 ..........................................................................................73 .......................................................................................................73 ...............................................................................................73 .........................................................................................74
  • 9. I 9 1. Năm 2012 đánh dấu sự phát triển mạnh mẽ của các hệ thống Cloud Computing và Big Data đi kèm đấy là sự phát triển mạnh mẽ của Internet và nhu cầu của số lƣợng ngƣờ ột tăng cao. Điều này tạo ra cơ hội kinh doanh cũng nhƣ khả năng “hái ra tiền” từ các dịch vụ Thƣơng mại điện tử. Hàng loạt các Website thƣơng mại điện tử, các mạng xã hội cũng nhƣ các dịch vụ khác ra đời nhằm đáp ứng nhu cầu đấy. Tuy nhiên, đứng trƣớc việc luân chuyển dữ liệu mạnh mẽ ấy. Các hệ thống cũ đặc biệt là các Webserver dƣờng nhƣ luôn bị quá tải bởi sự luân chuyển dữ liệu. Điều này đƣa ra 1 thách thức cho doanh nghiệp. Việc xoá bỏ các máy chủ cũ và thay thế một máy chủ mới thật sự tốn kém và chƣa hẳn đáp ứng đƣợc nhu cầu ngày càng cao của ngƣời dùng. Từ những bất cập đấy, một công nghệ mới đã ra đời, công nghệ ảo hoá, mà “Linux Virtual Server” là một trong những công nghệ đấy. Linux Virtual Server nhƣ một chiếc phao cứu sinh cho những hệ thố ự kết hợp giữa các máy chủ, tạo nên một máy chủ bao gồm các máy chủ con, đảm nhiệm nhiều công việc khác nhau. Việc này cho thấy đƣợc khả năng mở rộng cũng nhƣ khả năng kết hợp, bắt tay giữa các máy chủ khi cùng chia sẻ tài nguyên cho nhau. Linux Virtual Server kết hợp vớ ờng nhƣ là cặp đôi hoàn hảo cho các doanh nghiệp vừa và nhỏ ngay tại thời điểm này. 2. Mục tiêu đề tài - Tìm hiểu về tổng quan công nghệ ảo hoá - Tìm hiểu về hệ thống Linux Virtual Server - Ứng dụng thực tiễn cho các doanh nghiệp vừa và nhỏ tại Việt Nam 3. Phạm vi đề tài - Nghiên cứu trong phạm vi lý thuyết các vấn đề về hệ thống Linux Virtual Server - Cách thức triển khai hệ thống Linux Virtual Server kết hợp vớ .
  • 10. I 10 4. Đối tƣợng nghiên cứu - Các lý thuyết về - - Các mô hình Linux Virtual Server - Cách triển khai, vậ Server 5. Phƣơng pháp nghiên cứu - Sử dụng các kiến thức đã học và các nguồn thông tin có tính xác thực cao để nghiên cứu. - Sử dụng việc phân tích các vấn đề liên quan một cách logic về lý thuyết để áp dụng vào thực tiễn 6. Ý nghĩa khoa học và thực tiễn - Tạo một mô hình mới về hệ thống các máy chủ - Giúp các doanh nghiệp tại Việt Nam có một hƣớng giải quyết mới khi các vấn đề về điều kiện kinh tế còn hạn hẹp
  • 11. I 11 CHƢƠNG 1 1.2 (Virtualization) là công nghệ đƣợc thiết kế để tạo ra tầng trung gian giữa hệ thống phần cứng máy tính và phần mềm chạy trên nó. Ý tƣởng của công nghệ ảo hóa máy chủ là từ một máy vật lý đơn lẻ có thể tạo thành nhiều máy ảo độc lập. Mỗi một máy ảo đều có một thiết lập nguồn hệ thống riêng rẽ, hệ điều hành riêng và các ứng dụng riêng. . Internet năm 2 . . : Vmware, Microsoft, Oracle, Amazon, Redhat, Google…
  • 12. I 12 1.3 1.3.1 Tìm hiểu các dịch vụ công nghệ oá 1.3.1.1 VMware . . 1.3.1.2 Citrix n Amazon EC2, Rackspace, Softlayer. 1.3.1.3 Oracle ARC. 1.3.1.4 Microsoft - .
  • 13. I 13 1.3.2.1Ảo hoá hệ thống máy chủ a. (VPS: Virutal Private Server). - -BASED b. -BASED i : Hypervisor hay còn gọi là Virtual Machine Monitor (VMM), là một lớp phần mềm “mỏng” giữa phần cứng và hệ điều hành để cho phép các hệ điều hành đó quản lý và sử dụng các tài nguyên phần cứng cùng lúc. -BASED
  • 14. I 14 Kiến trúc này sử dụng một lớp Hypervisor chạy trên nền tảng hệ điều hành, sử dụng các dịch vụ đƣợc hệ điều hành cung cấp để phân chia tài nguyên tới các máy ả ột lớp phần mềm riêng biệt, do đó thì các hệ điều hành khách của máy ảo sẽ nằm trên lớp thứ 3 so với phần cứng máy chủ. - : Bao gồm các thiết bị nhập xuất, thiết bị lƣu trữ (HDD, SSD, Ram), bộ vi xử lý CPU, và các thiết bị khác (các thiết bị mạng, vi xử lý đồ họa, âm thanh…) : Hệ điều hành này thực hiện việc liên lạc trực tiếp với phần cứng, qua đó cung cấp các dịch vụ và chức năng thông qua hệ điều hành này. (hybervisor): Chạy trên nền tảng hệ điều hành host, các hệ thống này lấy tài nguyên và dịch vụ do hệ điều hành host cung cấp, thực hiện việc quản lý, phân chia trên các tài nguyên này. : Sử dụng tài nguyên do hypervisor quản lý. Một số hệ thống hypervisor dạng Hosted có thể kể đến nhƣ VMware Server, VMware Workstation, Microsoft Virtual Server… -BASED -BASED
  • 15. I 15 Trong kiến trúc này, lớp phần mềm hypervisor chạy trực tiếp trên nền tảng phần cứng của máy chủ, không thông qua bất kì một hệ điều hành hay một nền tảng nào khác. Qua đó, các hypervisor này có khả năng điều khiển, kiểm soát phần cứng của máy chủ. Đồng thời, nó cũng có khả năng quản lý các hệ điều hành chạy trên nó. - : Bao gồm các thiết bị nhập xuất, thiết bị lƣu trữ (HDD, Ram), bộ vi xử lý CPU, và các thiết bị khác (các thiết bị mạng, vi xử lý đồ họa, âm thanh…) : thực hiện việc liên lạc trực tiếp với nền tảng phần cứng phía dƣới, quản lý và phân phối tài nguyên cho các hệ điều hành khác nằm trên nó. : Các máy ảo này sẽ lấy tài nguyên từ phần cứng, thông qua sự cấp phát và quản lý của hypervisor. Một số ví dụ về các hệ thống Bare-metal hypervisor nhƣ là: Oracle VM, VMware ESX Server, IBM's POWER Hypervisor (PowerVM), Microsoft's Hyper- V (xuất xƣởng tháng 6 năm 2008), Citrix XenServer… 1.3.2.2 Ảo hoá hệ thống mạng a) Ả ạng hình dung một cách đơn giản là gom các dịch vụ, các ứng dụng dựa trên nền ngƣời dùng/máy chủ, đƣa chúng lên hệ thống mạng. Sau đó, các ứng dụng, dịch vụ này sẽ đƣợc gán và cung cấp vào các kênh phù hợp theo nhu cầu (nhƣ VLAN), hay ứng dụng cụ thể đƣợc đối tƣợng nào đó yêu cầu để sử dụng (Assign for request). b) Có nhiều phƣơng pháp để thực hiện việc ảo hóa hệ thống mạng. Các phƣơng pháp này tùy thuộc vào các thiết bị hỗ trợ, tức là các nhà sản xuất thiết bị đó, ngoài ra còn phụ thuộc vào hạ tầng mạng sẵn có, cũng nhƣ nhà cung cấp dịch vụ mạ .
  • 16. I 16 (Virtualized Overlay Network) Trong mô hình này, nhiều hệ thống mạng ảo sẽ cùng tồn tại trên một lớp nền tài nguyên dùng chung. Các tài nguyên đó bao gồm các thiết bị mạng nhƣ Router, Switch, các dây truyền dẫn, NIC (network interface card).Việc thiết lập nhiều hệ thống mạng ảo này sẽ cho phép sự trao đổi thông suốt giữa các hệ thống mạng khác nhau, sử dụng các giao thức và phƣơng tiện truyền tải khác nhau, ví dụ nhƣ mạng Internet, hệ thống PSTN, hệ thống Voip. Điều này làm tăng tính linh động trong hệ thống mạng, giúp doanh nghiệp, ngƣời dùng thoát khỏi sự trói buộc của thiết bị, hạ tầng vật lý. Substrate link: Các liên kết vật lý nền tảng. Sustrate router: Các router vật lý Virtual link và Substrate router là các thiết bị và liên kết đƣợc ảo hóa.
  • 17. I 17 Một giải pháp về ảo hóa hệ thống mạng đƣợc Cisco đƣa ra, đó là phân mô hình ảo hóa ra làm 3 khu vực, với các chức năng chuyên biệt. Mỗi khu vực sẽ có các liên kết với các khu vực khác để cung cấp các giải pháp đến tay ngƣời dùng 1 cách thông suốt. Cụ thể nhƣ sau: Khu vực quản lý truy nhập (Access Control): Có nhiệm vụ chứng thực ngƣời dùng muốn đăng nhập để sử dụng tài nguyên hệ thống, qua đó sẽ ngăn chặn các truy xuất không hợp lệ của ngƣời dùng; ngoài ra khu vực này còn kiểm tra, xác nhận và chứng thực việc truy xuất của ngƣời dùng trong vào các vùng hoạt động (nhƣ là VLan, Access list). Khu vực đƣờng dẫn (Path Isolation): Nhiệm vụ của khu vực này là  Duy trì liên lạc thông qua hạ tầng cấu trúc Layer 3 (tầng Network trong mô hình OSI).  Vận chuyển liên lạc giữa các vùng khác nhau trong hệ thống. Trong các vùng này sử dụng giao thức khác nhau, nhƣ MPLs (Multiprotocol Label
  • 18. I 18 Switching) và VRF (Virtual Routing and Forwarding), do đó cần một cầu nối để liên lạc giữa chúng).  Ngoài ra, khu vực này có nhiệm vụ liên kết (maping) giữa các đƣờng truyền dẫn với các vùng hoạt động ở hai khu vực cạnh nó là Access Control và Services Edge. Khu vực liên kết với dịch vụ (Services Edge): Tại đây sẽ áp dụng những chính sách phân quyền, cũng nhƣ bảo mật ứng với từng vùng hoạt động cụ thể; đồng thời qua đó cung cấp quyền truy cập đến dịch vụ cho ngƣời dùng. Các dịch vụ có thể ở dạng chia sẻ hay phân tán, tùy thuộc vào môi trƣờng phát triển ứng dụng và yêu cầu của ngƣời dùng. 1.3.2.1Ảo hoá hệ thống lưu trữ a) Ngày nay, nhu cầu lƣu trữ dữ liệu của ngƣời dùng, doanh nghiệ ầu ấ ần một số lƣợng đĩa cứng tăng tƣơng ứng, cùng với sự phát triển dung lƣợng của các đĩa. Do đó, vấn đề bị phát si ều thiết bị lƣu trữ vật lý cần đƣợc quản lý. Mặc dù có nhiều phƣơng pháp đƣợc đề xuất để phục vụ cho việc quản lý này nhƣ RAID (Ghép nhiều đĩa cứng vật lý thành 1 đĩa cứng, qua đó gia tăng tốc độ đọc ghi và có khả năng chịu lỗi cao), NAS (Network-attached storage), và SAN (Storage-area networks), việc quản lý vẫn rất khó khăn và độ phức tạp cao. Do đó, khái niệm ảo hóa hệ thống lƣu trữ (Storage virtualization) ra đời. Ảo hóa hệ thống lƣu trữ, về cơ bản là sự mô phỏng, giả lập việc lƣu trữ từ các thiết bị lƣu trữ vật lý. Các thiết bị này có thể là băng từ, ổ cứng hay kết hợp cả 2 loại.
  • 19. I 19 Ảo hóa hệ thống lƣu trữ mang lại các ích lợi nhƣ việc tăng tốc khả năng truy xuất dữ liệu, do việc trải rộng và phân chia các tác vụ đọc/ghi trong mạng lƣu trữ. Ngoài ra, việc mô phỏng các thiết bị lƣu trữ vật lý cho phép tiết kiệm thời gian hơn thay vì phải định vị xem máy chủ nào hoạt động trên ổ cứng nào để truy xuất. b) -BASED Server Ổ đĩa vật lý Driver của thiết bị Lớp ảo hóa -BASED Trong mô hình này, ngăn cách giữa lớp ảo hóa và ổ đĩa vật lý là driver điều khiển của các ổ đĩa. Phần mềm ảo hóa sẽ truy xuất tài nguyên (các ổ cứng vật lý) thông qua sự điều khiển và truy xuất của lớp Driver này. -DEVICE-BASED Server Phần mềm ảo hóa được nhúng vào ổ cứng vật lý
  • 20. I 20 -DEVICE-BASED Trong dạng này, phần mềm ảo hóa giao tiếp trực tiếp với ổ cứng. Ta có thể xem nhƣ đây là 1 dạng firmware đặc biệt, đƣợc cài trực tiếp vào ổ cứng. Dạng này cho phép truy xuất nhanh nhất tới ổ cứng, nhƣng các thiết lập thƣờng khó khăn và phức tạp hơn các mô hình khác. Dịch vụ ảo hóa đƣợc cung cấp cho các Server thông qua một thiết bị điều khiển gọi là Primary Storage Controller. ETWORK-BASED -BASED Trong mô hình này, việc ảo hóa sẽ đƣợc thực thi trên một thiết bị mạng, ở đây có thể là một thiết bị switch hay server. Các switch/server này kết nối với các trung tâm lƣu trữ (SAN). Từ switch/server này, các ứng dụng kết nối vào đƣợc giao tiếp với trung tâm dữ liệu bằng các “ổ cứng” mô phỏng do Switch/server tạo ra dựa trên trung tâm dữ liệu thật. Đây cũng là mô hình hay gặp nhất trên thực tế. 1.3.2.4 Ảo hoá ứng dụng a) m Thông thƣờng, khi muốn sử dụng một phần mềm nào đó nhƣ office, design, ngƣời dùng hay có suy nghĩ rằng cần phải tốn thời gian cài đặt phần mềm đó lên trên máy tính, cụ thể hơn là lên hệ điều hành đang sử dụng. Điều này tốn khá nhiều thời gian, nhất là nếu áp dụng trên những doanh nghiệp lớn, có cả ngàn máy tính, và
  • 21. I 21 đồng thời vấn đề quản lý các phần mềm này nhƣ ai truy xuất, thời gian truy xuất cho phép ra sao trở thành một thách thức thật sự. Do đó, khái niệm ảo hóa ứng dụng ra đời. Một ứng dụng đƣợc ảo hóa sẽ không đƣợc cài đặt lên máy tính một cách thông thƣờng, mặc dù ở góc độ ngƣời sử dụng, ứng dụng vẫn hoạt động một cách bình thƣờng. Ảo hóa ứng dụng sẽ giúp tách rời sự phụ thuộc giữa nền tảng phần cứng, hệ điều hành và ứng dụng với nhau. b) ể kể đến nhƣ Citrix với mô hình Application Streaming, Microsoft vớ Citrix. Kỹ thuật streaming cho phép ngƣời quản lý có thể “đẩy” và quản lý các ứng dụng trên nền tảng hệ điều hành Windows đến bất cứ ngƣời dùng nào theo yêu cầu. Cụ thể hơn, thông qua các đƣờng truyền dữ liệu đƣợc dành riêng, các ứng dụng đƣợc tải về thiết bị của ngƣời dùng, sau đó chạy trên một môi trƣờng giả lập. Các thành phần của hệ thống application streaming này bao gồm: Application Profiler: Tại đây các application đƣợc đóng gói, kèm với nó là các thông tin nhƣ tài nguyên cần thiết để chạy ứng dụng, các quy tắc khi triển khai trên thiết bị ngƣời dùng, các thành phần của ứng dụng… Application Hub: Sau khi đã đƣợc đóng gói kèm theo các thông tin cần thiết, các ứng dụng/phần mềm đƣợc lƣu trữ tại đây. Một đặc điểm với kỹ thuật này là: Các ứng dụng đƣợc lƣu trữ tại bộ nhớ cục bộ tại các máy tính cuối của ngƣời dùng, và đƣợc sử dụng nhƣ các phần mềm đƣợc
  • 22. I 22 cài đặt theo cách truyền thống. Nhƣng thật sự nó không đƣợc cài đặt, mà là chạy trên lớp đệm là môi trƣờng ảo hóa nằm ngay trên hệ điều hành. 1.3.3 Thành phần của hệ thống oá Một hệ thống ảo hóa bao gồm những thành phần sau. Tài nguyên vật lý (host machine,host hardware) Các phần mềm ảo hóa (virtual software) cung cấp và quản lý môi trƣờng làm việc của các máy ảo . Máy ảo (virtual machine) là các máy đƣợc cài trên phần mềm ảo hóa. Hệ điều hành: là hệ điều hành đƣợc cài trên máy ảo. 1.3.3.1 Tài nguyên vật lý Các tài nguyên vật lý trong môi trƣờng ảo hóa cung cấp tài nguyên mà các máy ảo sẻ sử dụ . Một môi trƣờng tài nguyên lớn có thể đƣợ ều máy ảo chạy trên nó và hiệu quả làm việc của các máy ảo cao hơn.Các tài nguyên vật lý thông thƣờng nhƣ là ổ đĩa cứng, ram, card mạng. 1.3.3.2 Phần mềm ảo hoá Lớp phần mềm ảo hóa này cung cấp sự truy cập cho mỗi máy ảo đến tài nguyên hệ thống. Nó cũng chịu trách nhiệm lập kế hoạch và phân chia tài nguyên vật lý cho các máy ảo. Phần mềm ảo hóa là nền tảng của một môi trƣờng ảo hóa. Nó
  • 23. I 23 cho phép tạo ra các máy ảo cho ngƣời sử dụng, quản lý các tài nguyên và cung cấp các tài nguyên này đến các máy ảo. Kế hoạch quản lý sử dụng tài nguyên khi có sự tranh chấp một tài nguyên đặc biệt của các máy ảo, điều này dẫn tới sự hiệu quả làm việc của các máy ảo. Ngoài ra phần mềm ảo hóa còn cung cấp giao diện quản lý và cấu hình cho các máy ảo. 1.3.3.3 Máy ảo Thuật ngữ máy ảo đƣợc dùng chung khi miêu tả cả máy ảo và hệ điều hành ảo. Máy ảo thực chất là một phần cứng ảo một môi trƣờng hay một phân vùng trên ổ đĩa. Trong môi trƣờng này có đầ ết bị phần cứng nhƣ một máy thật. Đây là một kiểu phần mềm ảo hóa dựa trên phần cứng vật lý. Các hệ điều hành khách mà chúng ta cài trên các máy ảo này không biết phần cứng mà nó nhìn thấy là phần cứng ảo. 1.3.3.4 Hệ điều hành khách Hệ điều hành khách đƣợc xem nhƣ một phần mềm đƣợc cài đặt trên một máy ảo giúp ta có thể sử dụng dễ dàng và xử lý các sự cố trong môi trƣờng ảo hóa. Nó giúp ngƣờ ững thao tác giống nhƣ là đang thao tác trên một lớp phần cứng vật lý thực sự. 1.3.4 Ƣu điểm và nhƣợc điểm của công nghệ oá 1.3.4.1 Ưu điểm của công nghệ ảo hoá . . 1.3.4.2 Nhược điểm của công nghệ ảo hoá .
  • 25. I 25 CHƢƠNG 2 LINUX VIRTUAL SERVER 2.1 LINUX Linux là tên gọi của một hệđiều hành máy tính và cũng là tên hạt nhân của hệ điề . Nó có lẽ là một ví dụ nổi tiếng nhất của phầnmềm tự do và của việc phát triển mã nguồn mở. Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994. Bộ phận chủ yếu này đƣợc phát triển và tung ra trên thị trƣờng dƣới bản quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của Linux. Một cách chính xác, thuật ngữ "Linux" đƣợc sử dụng để chỉ NhânLinux, nhƣng tên này đƣợc sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống (còn đƣợc biết đến dƣới tên GNU/Linux) đƣợc tạo ra bởi việc đóng gói nhân Linux cùng với các thƣ viện và công cụ GNU, cũng nhƣ là các bản phân phối Linux. Thực tế thì đó là tập hợp một số lƣợng lớn các phần mềm nhƣ máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trƣờng làm việcdesktop nhƣ GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng nhƣ Openoffice. Ban đầu, Linux đƣợc phát triển và sử dụng bởi những ngƣời say mê. Tuy nhiên, hiện nay Linux đã có đƣợc sự hỗ trợ bởi các công ty lớn nhƣ IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp đƣợc các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực. Sở dĩ Linux đạt đƣợc những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao cũng nhƣ là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung
  • 26. I 26 cấp. Một đặc tính nổi trội của nó là đƣợc phát triển bởi một mô hình phát triển phần mềm nguồn mởhiệu quả. Tuy nhiên, hiện tại số lƣợng phần cứng đƣợc hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tƣơng thích với Windows nhiều hơn là Linux. Nhƣng trong tƣơng lai số lƣợng phần cứng đƣợc hỗ trợ cho Linux sẽ tăng lên. . Linux là một hệ điều hành mã nguồn mở ể tùy ý sửa chữa theo nhƣ mình thích (miễ ủ kiến thức). Bạn có thể chỉnh sửa Linux và các ứng dụng trên đó sao cho phù hợp với mình nhất. Việc Việt hóa Windows đƣợc xem là không thể nếu nhƣ bạn không có sự đồng ý và hỗ trợ của Microsoft. Tuy nhiên với Linux thì bạn có thể làm đƣợc điều này một cách đơn giản hơn. Mặt khác do Linux đƣợc một cộng đồng rất lớn những ngƣời làm phần mềm cùng phát triển trên các môi trƣờng, hoàn cảnh khác nhau nên tìm một phiên bản phù hợp với yêu cầu của bạn sẽ không phải là một vấn đề quá khó khăn. Tính linh hoạt của Linux còn đƣợc thể hiện ở chỗ nó tƣơng thích đƣợc với rất nhiều môi trƣờng. Hiện tại, ngoài Linux dành cho server, máy tính để bàn nhân Linux (Linux kernel) còn đƣợc nhúng vào các thiết bị điều khiển nhƣ máy tính palm, robot.... Phạm vi ứng dụng của Linux đƣợc xem là rất rộng rãi. Trƣớc hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng. Chỉ có "root" (ngƣời dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống. Ngoài ra Linux cũng có cơ chế để một ngƣời dùng bình thƣờng có thể chuyển tạm thời chuyển sang quyền "root" để thực hiện một số thao tác. Điều này giúp cho hệ thống có thể chạy ổn định và tránh phải những sai sót dẫn đế ệ thống. Trong những phiên bản Windows gần đây, cơ chế phân quyền này cũng đã bƣớc đầu đƣợc áp dụng, nhƣng so với Linux thì vẫn kém chặt chẽ hơn.
  • 27. I 27 Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux. Nếu nhƣ một lỗ hổng nào đó trên Linux đƣợc phát hiện thì nó sẽ đƣợc cả cộng đồng mã nguồn mở ờng thì chỉ sau 24h sẽ có thể cho ra bả . Mặt khác đối với những hệ điều hành mã nguồn đóng nhƣ Windows, bạn không thể biết đƣợc ngƣời ta viết gì, và viết ra sao mà chỉ biết đƣợc chúng chạy nhƣ thế nào. Vì vậy nếu nhƣ Windows có chứa những đoạn mã cho phép tạo những "backdoor" để xâm nhập vào hệ thống của bạn thì bạn cũng không thể biết đƣợc. Đối với ngƣời dùng bình thƣờng nhƣ chúng ta vấn đề này có vẻ nhƣ không quan trọng nhƣng đối với một hệ thống tầm cỡ nhƣ hệ thống quốc phòng thì vấn đề nhƣ thế này lại mang tính sống còn. Các nhân viên an ninh không đƣợc phép để lộ một kẽ hở nào, dù là nhỏ nhất vì nó liên quan đến an ninh của cả một quốc gia.Và một lần nữa các phần mềm mã nguồn mở nói chung và Linux nói riêng lại là sự lựa chọn số một. Trong Linux mọi thứ đều công khai, ngƣời quản trị có thể tìm hiểu tới mọi ngõ ngách của hệ điều hành. Điều đó cũng có nghĩa là độ an toàn đƣợc nâng cao. 2.1.1 Đƣợc thiết kế ngay từ đầu cho chế độ đa ngƣời dùng, Linux đƣợc xem là một hệ điều hành mạng rất giá trị. Nếu nhƣ Windows tỏ ra là một hệ điều hành thích hợp với máy tính Desktop thì Linux lại là hệ điều hành thống trị đối với các Server. Đó là do Linux có rất nhiều ƣu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt… Giao thức TCP/IP mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này mới đƣợc đƣa vào Windows) Dù cho có rất nhiều phiên bản Linux đƣợc các nhà phân phối khác nhau ban hành nhƣng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel 486 đến những máy Pentium mới nhất, từ những máy có dung lƣợng RAM chỉ 4MB đến những máy có cấu hình cực mạnh (tất nhiên là tốc độ sẽ khác nhau nhƣng về nguyên tắc vẫn có thể chạy đƣợc). Nguyên nhân là Linux đƣợc rất nhiều lập trình viên ở nhiều môi trƣờng khác nhau cùng phát triển (không nhƣ Windows chỉ do Microsoft phát triển) và bạn sẽ bắt gặp nhiều ngƣời có "cùng cảnh ngộ" nhƣ mình và dễ dàng tìm đƣợc các driver tƣơng ứng với thiết bị của mình . Tính chất này hoàn
  • 28. I 28 toàn trái ngƣợc với Windows. Mỗi khi có một phiên bản Windows mới ra đời thì bao giờ kèm theo đó cũng là một cơn khát về phần cứng vì hệ điều hành mới thƣờng không hỗ trợ các thiết bị quá cũ. 1. b phân p Tên bản phân phối Trang web chính thức Các bản tƣơng tự Ubuntu 9.04 www.ubuntu.com Kubuntu, Xubuntu Debian GNU/Linux 5.0 www.debian.org Ultimate Edition 1.7 Red Hat Enterprise Linux 5.0 www.redhat.com/rhel/ Fedora 11.0 www.fedoraproject.org Knoppix 5.3.1 www.knoppix.com/ PCLinuxOS 2008 www.pclinuxos.com/ Mandrake 2007.0 www.madrivalinux.com Madriva CentOS 6 www.centos.org/ Gentoo www.gentoo.org/ Slackware 12.1 www.slackware.com/ SLAX Easys Sabayon Dreamlinux OpenSolaris 2008 www.opensolaris.org Hacao Linux 4.21 http://www.hacao.com/ Asianux 2.0 http://www.asianux.com/ Asianux Server Asianux http://www.asianux.com/ Asianux Server 3 Fenix Desktop 2009 http://www.rongvietnam.vn/
  • 29. I 29 g CentOS (tên viết tắt của Community ENTerprise Operating System ) là một phân phối Linux tập trung vào lớp doanh nghiệp, xây dựng từ nhiều nguồn miễn phí (theo GPL và một số bản quyền tƣơng tự) của Red Hat. CentOS tồn tại để cung cấp một nền tảng điện toán doanh nghiệp tự do và phấn đấu để duy trì khả năng tƣơng thích nhị phân 100% với nguồn thƣợng nguồn của nó, Red Hat CentOS dựa trên nền tảng Red Hat Enterprise Linux , hỗ trợ dòng x86 (i586 và i686), dòng x86_64 (AMD64 và Intel EMT64), các cấu trúc IA64, Alpha, S390 và S390x.
  • 30. I 30 ng 1.2 L Centos Kiến trúc Bản RHEL CentOS RHEL 2 I386 2.1 14/05/2004 17/05/2002 3.1 I386,X86-64, IA64, S390,S390X 3 19/04/2004 23/10/2003 3.3 I386,X86-64, IA64, S390,S390X 3.3 17/09/2004 03/09/2004 3.4 I386,X86-64, IA64, S390,S390X 3.4 23/01/2005 12/12/2004 3.5 I386 3.5 10/06/2005 18/05/2005 3.6 I386 3.6 11/01/2005 28/09/2005 3.7 I386,X86-64, IA64, S390,S390X 3.7 10/04/2006 17/03/2006 3.8 I386,X86-64 3.8 25/08/2006 20/07/2006 3.9 I386,X86-64, IA64, S390,S390X 3.9 26/07/2007 15/06/2007 4 I386,X86-64, varius 4 09/03/2005 14/02/2005 4.1 I386. IA64, S390 4.1 12/06/2005 18/06/2005 4.2 I386,X86-64, IA64, S390,S390X,alpha 4.2 13/10/2005 05/10/2005 4.3 I386,X86-64, IA64, S390,S390X 4.3 21/03/2006 12/03/2006 4.4 I386,X86-64 4.4 30/08/2006 10/08/2006 CentOS có thể cài đặt trên các loại máy tính để bàn, máy tính mini có cấu trúc dựa trên nền tảng Intel-based Mac architectures (dành cho chíp 64bit có phiên bản riêng). Yêu cầu tối thiểu để chạy Ubuntu là 256MB RAM (384MB RAM để chạy trực tiếp Ubuntu từ đĩa CD), nhƣng khuyến cáo nên cài đặt trên máy có
  • 31. I 31 512MB RAM trở lên. Ubuntu khi cài đặt vào ổ đĩa cứng cần ít nhất 5GB trống (bao gồm cả phân vùng trao đổi). Nên có card đồ họa mạnh để sử dụng các hiệu ứng trên giao diện đồ họa. 2.2 CLUSTERING 2.2.1 Tổng quan về Clustering 2.2.1.1 Khái niệm ằ ẵn sàng cho các hệ ạng. Clustering bao gồm nhiều server riêng lẻ đƣợc liên kết và hoạt động cùng với nhau trong một hệ thống. Các server này giao tiếp với nhau để trao đổi thông tin và giao tiếp với mạng bên ngoài để thực hiện các yêu cầu. Khi có lỗi xảy ra các dịch vụ trong cluster hoạt động tƣơng tác với nhau để duy trì tính ổn định và độ sẵn sàng cao cho hệ thống. 2.2.1.2 Cấu trúc Clustering Tùy theo nhu cầu mà chúng ta có thể triển khai nhiều dịch vụ trên cùng 1 cluster hay cài đặt trên mỗi node 1 dịch vụ, nói chung cấu trúc của 1 cluster không cố định nhƣng chủ yếu chúng ta thấy hữu ích nhất là các loại cấu trúc nhƣ a) Dịch vụ chạy song song: Triển khai 2 dịch vụ trên hệ thống cluster thì có 1 phƣơng pháp đơn giản là cài đặt cả 2 dịch vụ ấy vào mỗi node của cluster . Ở
  • 32. I 32 cấu trúc này thì 2 dịch vụ trên cùng 1 server do đó nếu ứng này bị lỗi thì sẽ ảnh hƣởng đến dịch vụ kia, hiệu quả của hệ thống cluster thấp b) Cluster riêng lẻ: Tạo 2 hệ thống cluster riêng lẻ, trong mỗi cluster cài đặt duy nhất 1 dịch vụ. Ở cấu trúc này thì hệ thống sẽ hiệu quả hơn nếu có dịch vụ nào đó bị lỗi thì cũng không ảnh hƣởng đến các dịch vụ khác. Nhƣng chi phí đầu tƣ cho kiểu này rất cao bởi vì số lƣợng các node cho mỗi dịch vụ nhiều hơn loại a ở trên. c) Dịch vụ dự phòng: Triển khai cả 2 dịch vụ trên cùng 1 cluster, mỗi node cài 1 dịch vụ nhƣng khác với loại 1 là sẽ có 1 cluster làm nhiệm vụ backup. Cụ
  • 33. I 33 thể nhƣ hình cho ta thấy hệ thống này có 1 node passive dùng làm backup và cài cả 2 dịch vụ của node 1 và node 2 (2 node Active). Nếu 1 trong 2 node này bị lỗi thì node passive sẽ thay thế chức năng của node bị lỗi. 1 node passive 2.2.2 Phân loại Clustering Kỹ thuật clustering đƣợc chia thành hai loại là Cluster và Network Load Balancing 2.2.2.1 Cluster Đƣợc dùng cho các ứng dụng hoạt động thƣờng xuyên trong thời gian dài bao gồm các database server hay còn gọi là các ứng dụng stateful applications. Tất cả các node trong cluster dùng chung một nơi lƣu trữ dữ liệu có thể sử dụng công nghệ SCSI (Small Computer System Interface) hay Storage Area Network (SAN) chi tiết về SAN sẽ đƣợc trình bày trong chƣơng tiếp theo. 2.2.2.2 Network Load Balancing Network Load Balancing(NLB) Là một loại khác của kỹ thuật clustering có khả năng chia tải và nâng cao khả năng chịu lỗi của hệ thống. Đƣợc dùng cho các ứng dụng hoạt động không tiên tục nhƣ File tranfer protocol (FTP) hay Virtual
  • 34. I 34 Private Network (VPN). Các node trong cluster không dùng chung một nơi lƣu trữ cơ sở dữ liệu cho nên cần phải có quá trình đồng bộ hóa (replication) dữ liệu giữa các nơi lƣu trữ, số lƣợng node càng nhiều thì thời gian cho việc đồng bộ càng lâu. Mỗi node trong nhóm có thể định ra mức tải mà nó sẽ xử lý hoặc tải có thể phân phối một cách đồng đều giữa các node. Nhờ sử dụng việc phân phối tải này, mỗi server sẽ lựa chọn và xử lý một phần yêu cầu. Tải do các client gửi đến đƣợc phân phối sao cho mỗi server nhận đƣợc số lƣợng các yêu cầu theo đúng phần tải đã định của nó. Sự cân bằng tải này có thể điều chỉnh động khi các host tham gia vào hoặc rời khỏi nhóm. Các node trong nhóm cân bằng tải phát đi một bản tin đặc biệt thông báo trạng thái hoạt động của nó (heartbeat message) tới các node khác trong nhóm đồng thời nghe bản tin này từ các node khác. Nếu một node trong nhóm gặp sự cố, các node còn lại sẽ điều chỉnh và tái phân phối lại tải để duy trì việc cung cấp dịch vụ một cách liên tục cho các client. NLB sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ các client đến các node trong nhóm. Thuật toán này cho phép các node trong nhóm đƣa ra các quyết định cân bằng tải một cách độc lập và nhanh chóng cho từng gói đến. Nó đƣợc tối ƣu hoá để cung cấp khả năng cân bằng tải một cách thống kê đối với một số lƣợng lớn các yêu cầu nhỏ do vô số client tạo ra. Một điểm cần lƣu ý là cả cluster và network load balancing đều có khả năng cân bằng tải và có khả năng chịu lỗi (failover) cho các dịch vụ. Tuy nhiên sự khác biệt trong hoạt động đó là khi một node trong cluster xảy ra sự cố thì server clustering sẽ loại bỏ node đó ra và request từ client sẽ không đƣợc chuyển tới node này cho đến khi nào node khôi phục lại trạng thái hoạt động bình thƣờng. Trong khi đối với network load balancing thì không có cơ chế này. Mỗi máy chủ trong cluster đƣợc gọi là một node (cluster node), và có thể đƣợc thiết lập ở chế độ chủ động (active) hay thụ động (passive). Khi một node ở chế độ chủ động, nó sẽ chủ động xử lý các yêu cầu. Khi một node là thụ động, nó sẽ nằm ở chế độ dự phòng nóng (standby) chờ để sẵn sàng thay thế cho một node khác nếu bị hỏng.
  • 35. I 35 Trong một cluster có nhiều node có thể kết hợp cả node chủ động và node thụ động. Trong những mô hình loại này việc quyết định một node đƣợc cấu hình là chủ động hay thụ động rất quan trọng. Để hiểu lý do tại sao, hãy xem xét các tình huống sau: Nếu một node chủ động bị sự cố và có một node thụ động đang sẵn sàng, các ứng dụng và dịch vụ đang chạy trên node hỏng có thể lập tức đƣợc chuyển sang node thụ động. Vì máy chủ đóng vai trò node thụ động hiện tại chƣa chạy ứng dụng hay dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của máy chủ hỏng mà không ảnh hƣởng gì đến các ứng dụng và dịch vụ cung cấp cho ngƣời dùng cuối. Nếu tất cả các máy chủ trong cluster là chủ động và có một node bị sự cố, các ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang một máy chủ khác cũng đóng vai trò node chủ động. Vì là node chủ động nên bình thuờng máy chủ này cũng phải đảm nhận một số ứng dụng hay dịch vụ gì đó, khi có sự cố xảy ra thì nó sẽ phải gánh thêm công việc của máy chủ hỏng. Do vậy để đảm bảo hệ thống hoạt động bình thƣờng kể cả khi có sự cố thì máy chủ trong cluster cần phải có cấu hình dƣ ra đủ để có thể gánh thêm khối lƣợng công việc của máy chủ khác khi cần. 2.3 2.3.1 Giới thiệu về Linux Virtual Server Linux virtual server (LVS) là kỹ thuật tập hợp các server thành một server duy nhất đối với client. Server này đƣợc gọi là virtual server, bên trong là các real server, chúng chịu sự điều khiển của director hay còn gọi là load balancer với một địa chỉ IP ảo (IPV). IPVS là một đặc tính quan trọng trong load balancer, nó thực hiện cân bằng tải ở tầng vận chuyển bên trong nhân linux. Nó điều hƣớng các yêu cầu về các dịch vụ TCP/UDP tới các real server và làm cho các dịch vụ của real server xuất hiện nhƣ một dịch vụ ảo với một IP duy nhất. Load balancer đƣợc xem nhƣ một router lớp 4 nắm giữ bảng định tuyến. Khi client gửi yêu cầu đến một dịch vụ mà LVS cung cấp, director sẽ lựa chọn một real server thích hợp và sau đó yêu cầu sẽ đƣợc chuyển đến cho real server đó. Sự giao
  • 36. I 36 tiếp giữa client và real server chỉ tồn tại trong một phiên kết nối, ở phiên kết nối khác thì director sẽ chọn một real server khác. LVS cung cấp các dịch vụ mạng có tính sẵn sàng và độ tin cậy cao bằng việc sử dụng cluster là tập hợp của nhiều real server. Chồng giao thức TCP/IP của nhân linux đƣợc mở rộng để hổ trợ 3 kỹ thuật IP Load Balancing mà có thể tạo ra nhiều dịch vụ chạy song song trên các real server khác nhau của cluster để tạo ra một dịch vụ với một IP duy nhất. Tính tin cậy cũng đƣợc thực hiện bằng việc thêm hay gỡ bỏ real server một cách trong suốt trong hệ thống cluster cũng nhƣ khả năng phát hiện sự cố và khắc phục lỗi của node hoặc daemon một cách tƣơng thích. 2.3.2 Kiến trúc chung của Linux Virtual Server 2.3.2.1 Các thành phần trong hệ thống LVS Load Balancer LAN/WAN Real Server 1 Real Server 2 Real Server n ……. Virtual Server Client Internet
  • 37. I 37 Virtual Server: Tập hợp các server thành một hệ thống duy nhất. Real Server: Các server các dịch vụ để cung cấp cho client nhƣ: Web, mail, ftp, dns … Các server này nằm sau Load balancer. Virtual service: Các dịch vụ mà virtual server cung cấp cho client. Director: hay còn gọi là Load balancer, là server cài LVS, nó tiếp nhận yêu cầu từ client và phân phối cầu đến các real server. Server làm director không cài ứng dụng hay dịch vụ nào cả. IPVS (IP Virtual Server): Là một thành phần quan trọng trong LVS, nó đƣợc tích hợp trong nhân Linux. Nhiệm vụ của nó là tiếp nhận yêu cầu từ client và phân phối đến các real server trong hệ thống. VIP (Virtual IP): Director sử dụng một địa chỉ IP ảo để giao tiếp với client. Khi client gửi yêu cầu đến VIP, director sẽ lựa chọn real server thích hợp và chuyển yêu cầu tới nó. Các dịch vụ mà real server cung cấp có thể tìm thấy ở /etc/services. LVS đƣợc đại diện bằng một địa chỉ IP trên director khi giao tiếp với client. VIP không phải là địa chỉ của của bất kỳ director hay real server nào cả. Mỗi director có thể có nhiểu VIP, mỗi VIP dùng cho một dịch vụ. Các VIP này có thể đƣợc trả lời từ các real server khác nhau hoặc từ một real server. 2.3.2.2 Kiến trúc 3 lớp trong hệ thống LVS Kiến trúc 3 lớp của LVS đƣợc mô tả nhƣ hình sau: Load Balancer: là front-end đối với dịch vụ và đƣợc thấy bởi client. Nó điều khiển các kết nối từ client đến các real server trong cluster. Server Cluster: là tập hợp các Real Server nằm trong cluster đang thực thi các dịch vụ có thể cung cấp cho client. Storage: cung cấp lƣu trữ chia sẽ cho các server để các server có thể dễ dàng theo dõi cùng một nội dung và cung cấp các dịch vụ giống nhau. Load balancer hổ trợ các kết nối đi vào bằng cách sử dụng kỹ thuật IP Load Balancer, nó lựa chọn server từ Server Cluster, duy trì kết nối hiện hành và thực hiện chuyển gói tin, tất cả các công việc đều đƣợc thực hiện bên trong nhân vì vậy nên Load Balancer có thể hổ trợ số lƣợng lớn kết nối mà không xảy ra tình trạng thắc cổ chai (bottleneck). Các server trong kiến trúc này có thể sao chép qua lại với
  • 38. I 38 nhau để tang tính sẵn sàng và tính bảo mật. Khi yêu cầu đƣợc chuyển tới thì hệ thống sẽ tính toán xem node server nào phù hợp để chọn, có thể có nhiều node server đƣợc chọn để tối ƣu hóa công việc. Một trong những thuận lợi của hệ thống cluster là nó có tính dƣ thừa về phần cứng và phần mềm. Tính sẵn sàng cao đƣợc cung cấp bởi sự phát hiện sự hƣ hỏng của các node hay dịch vụ và cấu hình lại để hệ thống để mà công việc có thể thực hiện trên các node trong cluster. Thông thƣờng sẽ có một dịch vụ giám sát cluster chạy trên Load Balancer để theo dõi tình trạng của các Real server. Nếu không thể ping hay không nhận đƣợc phản hồi từ các real server trong một thời gian nào đó thì dịch vụ giám sát sẽ gỡ bỏ hoặc disable real server đó ra khỏi bảng lập lịch của Load Balancer để Load Balancer không lập lịch kết nối tới real server đó. Nhƣ vậy, Load Balancer là điểm quan trọng nhất trong hệ thống. Để tránh sự hƣ hỏ ết lập thêm Load Balancer dƣ phòng. Hai dịch vụ heartbeat
  • 39. I 39 chạy trên Primary và Backup Load Balancer sẽ lắng nghe thông điệp về tình trạng thông qua kênh heartbeat chẳng hạn nhƣ serial line hay UDP Periodically. Khi dịch vụ heartbeat trên Backup không thể nhận đƣợc thông tin từ Primary trong khoảng thời gian nhất định nó sẽ sử dụng ARP spoofing để lấy địa chỉ IP ảo cung cấp cho dịch vụ load balancing. Khi Primary khôi phục lại thì sẽ có 2 phƣơng án: Một là Primary sẽ trở thành Backup, hai là dịch vụ heartbeat sẽ nhận thông điệp từ Primary và trả địa chỉ IP ảo lại cho nó. Tuy nhiên trong quá trình hƣ hỏng và khôi phục lại của Primary đã làm cho việc thiết lập kết nối trong bảng trạng thái bị mất đi, vì vậy client phải gửi yêu cầu lại. 2.3.3 Các thuật toán lập lịch kết nối 2.3.3.1 Round-Robin Thuật toán lập lịch Round-Robin phân phối yêu cầu đến từng server trong server cluster một cách liên tục. Đối với thuật toán này, các server trong server cluster là nhƣ nhau, không quan tâm đến khả năng chịu tải của từng server. 2.3.3.2 Weighted Round-Robin Thuật toán lập lịch Weighted Round-Robin phân phối yêu cầu đến từng server trong server cluster một cách liên tục nhƣng số kết nối nhận đƣợc sẽ tùy theo từng khả năng của từng server. Mỗi server sẽ có một trọng số có giá trị nguyên để đại diện cho khả năng xử lý. Server có trọng số cao hơn sẽ nhận đƣợc kết nối mới trƣớc sau đó mới đến các server có trọng số nhỏ hơn, và server có trọng số cao hơn sẽ nhận đƣợc nhiều kết nối hơn các server có trọng số thấp hơn, các server có trọng số bằng nhau thì sẽ nhận đƣợc số kết nối nhƣ nhau. 2.3.3.3 Least-Connection Thuật toán này sẽ chuyển hƣớng những kết nối mạng tới những server mà có số lƣợng kết nối đang hoạt động ít nhất, đây là thuật toán lập lịch tự động vì nó cần đếm số lƣợng kết nối đang hoạt động của từng server. Với thuật toán này thì những yêu cầu lớn thì sẽ không đƣợc duy trì trên một server. Thuật toán least-connection có thể hoạt động tốt thậm chí server có khả năng xử lý khác nhau bởi vì server nhanh hơn sẽ nhận đƣợc nhiều kết nối hơn. Tuy nhiên có một yếu tố gọi là TCP’s TIME WAIT làm cho thuật toán này hoạt động không tốt, giá trị TCP’s TIME WAIT thƣờng là 2 phút.
  • 40. I 40 Ví dụ:server B mạnh hơn server A thì server B sẽ nhận được hàng ngàn kết nối và nó sẽ lưu giữa giá trị TCP’s TIME WAIT. Lúc này server B sẽ nhận kết nối mạng nhưng vì nó chậm nên việc xử lý số lượng kết nối nhiều thì không thể. Như vậy thuật toán này cân bằng tải không tốt khi các server có khả năng xử lý khác nhau. 2.3.3.4 Weighted Least-Connection Thuật toán Weighted Least-Connection là thuật toán cải tiến của thuật toán Least-Connection. Đối với thuật toán này chúng ta có thể thêm trọng số xử lý cho mỗi real server. Server có giá trị trọng số cao hơn sẽ nhận đƣợc số kết nối hoạt động nhiều hơn. Mặc định, trọng số có giá trị là 1. Và ngƣời quản trị IPVS hay phần mềm theo dõi đặt trọng số này cho real server. Kết nối mới sẽ đƣợc chuyển đến server nào có tỉ lệ giữa số lƣợng kết nối hoạt động với trọng số của nó là nhỏ nhất. 2.3.3.5 Locality-Based Least-Connection Thuật toán này phân phối nhiều yêu cầu đến các máy chủ có ít kết nối đang hoạt động liên quan địa chỉ IP của chúng. Thuật toán này đƣợc thiết kế để sử dụng trong proxy-cache cluster server. Nó định tuyến các gói tin có chung một địa chỉ IP đến máy chủ có địa chỉ đó, nếu server không đủ khả năng thì sẽ có một server khác tải một nửa. Trong thuật toán này địa chỉ IP sẽ đƣợc gán cho server có tải ít nhất. 2.3.3.6 Locality-Based Least-Connection With Replication Thuật toán này phân phối nhiều yêu cầu đến các máy chủ có ít kết nối đang hoạt động liên quan đến địa chỉ IP của chúng. Thuật toán này đƣợc thiết kế để sử dụng trong proxy-cache cluster server. Nó khác với Locality-Based Least Connection là nó ánh xạ địa chỉ IP đích tới một tập hợp (subset) các server. Nếu các real server trong tập hợp này không đủ khả năng xử lý thì nó sẽ sử dụng những server mới trong server cluster bằng cách thêm những server này vào tập hợp. 2.3.3.7 Destination Hash Phân phối những yêu cầu đến cluster của những real server bằng cách tìm địa chỉ IP đích trong một bảng băm tĩnh. Thuật toán này đƣợc thiết kế cho proxy-cache cluster server.
  • 41. I 41 2.3.3.8 Source Hash Phân phối những yêu cầu đến cluster của những real server bằng cách tìm địa chỉ IP nguồn trong một bảng băm tĩnh. Thuật toán này đƣợc thiết kế cho LVS router với nhiều Firewall. 2.4 Cân bằng tải là một kỹ thuật để phân phối khối lƣợng công việc đồng đều giữa hai hoặc nhiều máy tính, kết nối mạng, CPU, ổ cứng, hoặ khác, để ử dụ ối ƣu, tối đa hóa thông lƣợng, giảm thiểu thời gian đáp ứng và tránh tình trạng quá tải. 2.4.1.2 Heartbeat . .. 2.4.1.3 Ldirector . 2.4.1.4 Piranha Piranha là sản phẩm clustering của Red Hat đƣợc phân phối từ phiên bản Red Hat 6.1. Piranha bao gồm LVS, các dịch vụ giám sát cluster và những công cụ quản trị bằng GUI. 2.4.1.5 Mon Mon là hệ thống giám sát nguồn tài nguyên tổng thể (VD: Cluster), nó đƣợc mở rộng để giám sát tính sẵn sàng của các dịch vụ mạng và các server node. Các
  • 42. I 42 module trong mon bao gồm: fping.monitor, http.monitor, ldap.monitor,…. Mon đƣợc dùng để giám sát các real server trong cluster. Mon sẽ đƣa ra cảnh báo sẽ đƣợc đƣa ra khi xóa hay thêm một entry vào bảng lập lịch, mon còn phát hiện server ở tình trạng down/up vì vậy ngƣời quản trị có thể đánh dấu những dịch vụ nào hay server nào bị lỗi và đƣa chúng trở lại khi chúng đƣợc phục hồi. Heartbeat đƣợc sử dụng để điều khiển việc dự phòng lỗi giữa 2 load balancer. 2.4.2 Thuậ Network Load Balancing sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ các client đến các host trong nhóm. Thuật toán này cho phép các host trong nhóm đƣa ra các quyết định cân bằng tải một cách độc lập và nhanh chóng cho từng gói đến. Nó đƣợc tối ƣu hoá để cung cấp khả năng cân bằng tải một cách thống kê đối với một số lƣợng lớn các yêu cầu nhỏ do vô số client tạo ra, điển hình là đối với các Web server. Nếu số client và/hoặc các kết nối client tạo ra các tải quá chênh lệch nhau trên server, thuậ ải sẽ ít hiệu quả. Tuy nhiên, tính đơn giản và tốc độ của thuật toán cho phép cung cấp hiệu nǎng rất cao bao gồm cả thông lƣợng cao và thời gian đáp ứng ngắn trong một dải rộng các ứng dụng client/server thông dụng.
  • 43. I 43 Network Load Balancing (NLB) xử lý các yêu cầu của client bằng cách dẫn đƣờng cho một tỉ lệ phần trăm đã chọn những yêu cầu mới cho từng host trong nhóm. Thuật toán không đáp ứng những thay đổi về tải trên mỗi host (chẳng hạn nhƣ tải CPU hay vấn đề sử dụng bộ nhớ). Tuy nhiên, quá trình ánh xạ sẽ đƣợc thay đổi khi quan hệ thành viên trong nhóm thay đổi và tỉ lệ phần trăm tải phân bố sẽ đƣợc tái cân bằng. Khi xem xét một gói đến, tất cả các host thực hiện đồng thời việc ánh xạ thống kê để xác định nhanh chóng host nào sẽ xử lý gói đó. Quá trình ánh xạ sử dụng một hàm ngẫu nhiên để tính mức ƣu tiên của host dựa trên địa chỉ IP và cổng đến của client cùng các thông tin trạng thái khác để tối ƣu hoá việc cân bằng tải. Host tƣơng ứng sẽ chuyển gói đó từ các tầng dƣới lên tầng TCP/IP còn các host khác sẽ loại bỏ gói này. Quá trình ánh xạ không thay đổi trừ phi quan hệ giữa các host trong nhóm thay đổi, để đảm bảo rằng địa chỉ IP và cổng đến của client cho trƣớc sẽ luôn đƣợc ánh xạ đến cùng một host trong nhóm. Tuy nhiên, host cụ thể trong nhóm mà địa chỉ IP và cổng đến của client ánh xạ tới không thể đƣợc xác định trƣớc do hàm ngẫu nhiên có tính đến quan hệ thành viên trong nhóm hiện tại và quá khứ để tối thiểu hoá khả năng ánh xạ lại.
  • 44. I 44 Nhìn chung, chất lƣợng cân bằng tải đƣợc xác định một cách thống kê bởi số lƣợng client tạo ra yêu cầu. Nhƣ kết cấu tăng giảm về số lƣợng client theo thống kê, sự đều đặn về chất lƣợng của thuật toán cân bằng tải sẽ thay đổi nhẹ. Để hoạt động cân bằng tải có độ chính xác cao trên mỗi host trong nhóm, một phần tài nguyên hệ thống sẽ đƣợc sử dụng để đo và phản ứng trƣớc những thay đổi của tải. Sự trả giá về hiệu năng này phải đƣợc cân nhắc so với lợi ích của việc tối đa hoá khả năng sử dụng các tài nguyên trong nhóm (về cơ bản là CPU và bộ nhớ). Trong bất cứ trƣờng hợp nào, việc sử dụng hợp lý các nguồn tài nguyên server phải đƣợc duy trì để có thể phục vụ cho các tải client khác trong trƣờng hợp xảy ra lỗi. Khi một host mới tham gia vào nhóm, nó sẽ kích hoạt quá trình hội tụ và một quan hệ thành viên mới trong nhóm sẽ đƣợc tính toán. Khi quá trình hội tụ hoàn thành, một phần tối thiểu client sẽ đƣợc ánh xạ tới host mới. NLB dò các kết nối TCP trên mỗi host và sau khi kết nối TCP hiện tại của chúng hoàn thành, kết nối tiếp theo từ các client bị ảnh hƣởng sẽ đƣợc xử lý bởi host mới. Do đó, các host nên đƣợc bổ sung vào nhóm tại những thời điểm tải tăng quá mạnh nhằm tối thiểu hoá hiện tƣợng ngắt quãng các phiên. Để tránh vấn đề này, trạng thái phiên phải đƣợc quản lý bởi ứng dụng server sao cho nó có thể đƣợc tái cấu trúc hay đƣợc trả lại từ bất kỳ một host nào trong nhóm. Ví dụ, trạng thái phiên có thể đƣợc đẩy đến server cơ sở dữ liệu và lƣu trong các cookies của client. Các host trong nhóm trao đổi định kỳ các bản tin thông báo trạng thái hoạt động “heartbeat” multicast hoặc broadcast với nhau. Điều này cho phép các host có thể giám sát trạng thái của nhóm. Khi trạng thái của nhóm thay đổi (chẳng hạn nhƣ khi có host gặp trục trặc, rời khỏi hoặc tham gia vào nhóm), NLB kích hoạt một chu trình gọi là hội tụ trong đó các host trao đổi bản tin "heartbeat" để định ra một trạng thái mới, bền vững cho nhóm. Khi tất cả các đạt đƣợc sự "nhất trí" trạng thái mới của chúng sẽ đƣợc thiết lập và những thay đổi này sẽ đƣợc lƣu vào nhật ký sự kiện. Trong quá trình hội tụ, các host tiếp tục xử lý lƣu lƣợng mạng đến nhƣ mọi khi ngoại trừ lƣu lƣợng đến host bị lỗi không nhận đƣợc dịch vụ. Quá trình hội tụ
  • 45. I 45 kết thúc khi tất cả các host trong nhóm có đƣợc một quan hệ thành viên ổn định trong vòng một vài chu kỳ heartbeat. Khi hoàn thành quá trình hội tụ, lƣu lƣợng đến host bị lỗi sẽ đƣợc tái phân phối cho các host còn lại. Nếu một host đƣợc thêm vào nhóm, quá trình hội tụ cho phép host này nhận đƣợc phần tải của nó trong lƣu lƣợng đã đƣợc cân bằng. Việc mở rộng nhóm không ảnh hƣởng đến các hoạt động của nhóm và theo một cách hoàn toàn trong suốt đối với tất cả các Internet client cũng nhƣ trƣớc các chƣơng trình phần mềm server. Tuy nhiên, nó có thể ảnh hƣởng đến các phiên client vì các client có thể phải tái ánh xạ tới các host khác trong nhóm. Trong chế độ unicast, mỗi host sẽ phát quảng bá (broadcast) bản tin "heartbeat" theo chu kỳ. Còn trong chế độ multicast, nó sẽ phát các bản tin này ở chế độ multicast. Mỗi bản tin "heartbeat" chiếm một khung Ethernet và đƣợc gắn thêm địa chỉ IP chính của nhóm nhằm cho phép nhiều nhóm có thể cùng tồn tại trên cùng một mạng con. Bản tin "heartbeat" của NLB của Microsoft đƣợc gán một giá trị 0x886F. Chu kỳ gửi các bản tin này mặc định là 01 giây. Giá trị này có thể thay đổi. Trong quá trình hội tụ, chu kỳ này đƣợc giảm xuống chỉ còn một nửa để đẩy nhanh việc hoàn tất quá trình này. Thậm chí, đối với các cluster lớn, băng thông cần thiết để truyền các bản tin "heartbeat" rất thấp (24kBytes/s cho một cluster 16 đƣờng). Để có thể khởi tạo quá trình hội tụ, theo mặc định cần 05 bản tin heartbeat không đƣợc nhận. Giá trị này có thể thay đổi. Vai trò của NLB tác động đến hiệu năng của hệ thống có thể đƣợc đánh giá dựa trên các tiêu chí chính sau: CPU overhead trên các host của nhóm. Phần trăm CPU cần thiết để phân tích và lọc các gói của mạng. Tất cả các giải pháp cân bằng tải đều cần sử dụng một phần tài nguyên của hệ thống để xem xét gói đến và đƣa ra quyết định cân bằng tải và do đó ít nhiều ảnh hƣởng đến hiệu năng của mạng. Giải pháp cân bằng tải dựa trên bộ điều phối cần kiểm tra, hiệu chỉnh và truyền lại gói tới các host trong nhóm (thƣờng phải sửa đổi lại địa chỉ IP để tái định
  • 46. I 46 tuyến gói từ địa chỉ IP ảo tới địa chỉ IP của từng host cụ thể). Đối với NLB, nó phân phối đồng thời các gói đến tới tất cả các host trong nhóm và áp dụng một thuật toán lọc để loại bỏ các gói không mong muốn... Quá trình lọc gây ảnh hƣởng ít hơn so với quá trình tái định tuyến và kết quả là thời gian đáp ứng nhanh hơn với thông lƣợng toàn hệ thống cao hơn. . . . . . .
  • 48. I 48 b) . 2.4.5.1 LVS-NAT Vì sự thiếu hụt của IPv4 và một số lý do bảo mật, nhiều mạng sử dụng địa chỉ IP private, nó không thể dùng trên internet. Vì thế đã phát sinh nhu cầ ạng nội bộ muốn truy cập internet và ngƣợc lại. NAT port đƣợc dùng trong LVS/NAT :
  • 49. I 49 2.11 Mô Load Balancer có 2 địa chỉ: một để liên lạc với client, một để liên lạc với các real server bên trong. Địa chỉ để liên lạc với các real server cũng nhƣ địa chỉ của các real server có thể là địa chỉ private. Địa chỉ để liên lạc với client bên ngoài là địa chỉ public. Quá trình làm việc của LVS/NAT đƣợc mô tả nhƣ sau: Khi một client truy xuất tới dịch vụ ảo đƣợc cung cấp bởi server cluster, một gói tin request với địa chỉ đích là địa chỉ public của Load Balancer. Load Balancer sẽ kiểm tra địa chỉ đích của gói tin và số hiệu cổng, nếu hợp lệ với bảng chính sách của Virtual Server về dịch vụ ảo thì lúc này một Real Server đƣợc chọn từ cluster bằng thuật toán lập lịch và kết nối đƣợc đƣa vào trong bảng hash (là nơi ghi lại các thông tin kết nối). Sau đó, địa chỉ đích và số hiệu cống đƣợc viết lại thành địa chỉ và số hiệu cổng cho server đƣợc lựa chọn và gói tin đƣợc chuyển đến server. Khi những gói tin khác đi đến thì kết nối đƣợc tìm trong bảng hash nếu nó thuộc vào trạng thái đã đƣợc thiết lập thì gói tin sẽ đƣợc viết lại và chuyển đến server. Khi gói tin phản hồi đƣợc gửi lại thì Load Balancer sẽ viết lại địa chỉ nguồn và số hiệu cổng thành địa chỉ public của Load Balancer. Khi một kết nối kết thúc hay hết hạn thì nó sẽ đƣợc xỏa khỏi bảng Hash.
  • 50. I 50 2.4.5.2 LVS-Tunneling IP Tunnleling (IP encapsulation) là kỹ thuật đóng gói gói tin IP này trong gói tin IP khác, cho phép gói tin đi đến 1 địa chỉ IP, đƣợc đóng gói và chuyển hƣớng tới 1 địa chỉ ) Điểm khác biệt lớn nhất giữa LVS/TUN với LVS/NAT đó là Load Balancer sẽ tạo ra đƣờng hầm để chuyển gói tin yêu cầu đến các Real Server, sau đó Real Server xử lý và trả kết quả trực tiếp cho client không thông qua Load Balancer. Khi 1 user truy cập đến dịch vụ ảo đƣợc cung cấp bởi cluster, một gói tin đƣợc chuyến đến VIP. Load Balancer sẽ kiểm tra địa chỉ đích và số hiệu cổng của gói tin. Nếu chúng hợp lệ với dịch vụ ảo, thì 1 Real Server sẽ đƣợc chọn theo thuật toán lập lịch kết nối, và kết nối này đƣợc thêm vào bảng Hash. Sau đó, Load Balancer sẽ đóng gói gói tin này trong gói tin IP và chuyển đến cho server. Khi một gói tin khác đƣợc chuyển đến từ kết nối đã đƣợc thiết lập và server đƣợc chọn đƣợc tìm trong bản Hash, gói tin sẽ đƣợc đóng gói lại và chuyển đến cho server đó. Khi server nhận đƣợc gói tin đã đóng gói, nó mở gói gói tin và xử lý yêu cầu, cuối cùng
  • 51. I 51 nó trả về kết quả cho user một cách trực tiếp theo bảng routing của nó. Sau khi kết nối bị hủy hoặc hết thời gian, kết nối đó sẽ đƣợc xóa khỏi bảng Hash. Tiến trình đƣợc minh họa theo hình vẽ sau: Trong mô hình này, những Real Server có thể có những địa chỉ IP bất kỳ thuộc bất kỳ mạng nào nhƣng chúng phải hổ trợ giao thức IP Tunneling và chúng phải có thiết bị tunnel để cấu hình với VIP. 2.4.5.3 LVS-Direct Routing LVS/DR cũng gần giống với NetDispather của IBM. Các Real Server và Load Balancer dùng chung địa chỉ IP ảo. Load Balancer có một card mạng để cấu hình VIP, nó tiếp nhận gói tin yêu cầu, và chuyển trực tiếp gói tin đó đến server đƣợc chọn. Khi 1 user truy cập đến 1 dịch vụ ảo do cluster cung cấp, 1 gói tin đƣợc chuyển đến VIP. Load Balancer sẽ kiếm tra tính hợp lệ của địa chỉ đích và số hiệu cổng của gói tin. Nếu chúng hợp lệ với 1 dịch vụ ảo, 1 Real Server sẽ đƣợc chọn theo thuật toán lập lịch kết nối, và kết nối đó đƣợc thêm vào bảng Hash. Sau đó, Load Balancer sẽ chuyển trực tiếp đến cho server đƣợc chọn. Khi một gói tin khác đƣợc chuyển đến theo kết nối đã đƣợc thiết lập thì server đƣợc chọn đƣợc tìm thấy trong bảng Hash, gói tin sẽ đƣợc đóng gói lại và chuyển trực tiếp đến cho server.
  • 52. I 52 Khi server nhận đƣợc gói tin đƣợc chuyển tới, server xác định gói tin thông qua card loopback, nó xử lý yêu cầu và trả lại kết quả trực tiếp cho user. Sau khi kết nối bị hủy bỏ hoặc hết thời gian thì nó đƣợc xóa khỏi bảng Hash. : Load Balancer chỉ thay đổi địa chỉ MAC của frame, chọn server và chuyển lại nó trong LAN. Đó là lý do mà Load Balancer và các Real Server cần phải kết nối trực tiếp trên một phần đoạn LAN liên tục.
  • 53. I 53 trong LVS LVS/NAT LVS/TUN LVS/DR Server Any Tunneling Non-arp Server Network Private LAN/WAN LAN Server Number 10 – 20 100 100 Server Gateway Load Balancer Own router Own router CHƢƠNG 3
  • 54. I 54 3.2 HeartBeat Director – Load Balancer Backup – Load Balancer Real Server 1(Web Server) Real Server 2(Web Server) Virtual IP Address 192.168.2.100 192.168.2.5/24 192.168.2.6/24 192.168.2.3/24 172.16.1.1/24 192.168.2.4/24 172.16.1.2/24 Client Passive Active , 2 Real Server . . : Mail Server, DNS Server… Virtual IP Address
  • 56. I 56 3.4 3.4.1 Cài đặt các gói cần thiết . 3.4.1.1 Cài đặt Hearbeat E )wget : http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 3.2 Download EPEL : rpm -ivUh epel-release-6-8.noarch.rpm : yum –enablerepo=epel install heartbeat
  • 57. I 57 : rpm –qa|grep heartbeat : http://rpmfind.net http://mirror.centos.org/centos/5/extras/i386/RPMS/ đ 2 Server ) #yum install piranha #yum install ipvsadm nhau. 3.4.1.2 Cài đặt Apache đƣợc hỗ trợ bở ên 2 Real Server.
  • 58. I 58 2 Server: yum install httpd 3.4.2 Thực hiện cấu hình Piranha , Vitual IP Address, 2 Real Server), Director, Backup. 3.4.2.1 Cấu hình Piranha . #chkconfig piranha-gui on #chkconfig pulse on #chkconfig httpd on #/usr/sbin/piranha-passwd 3636 : http:192.168.2.3:3636 Username: piranha .
  • 61. I 61 . . 1 1 80 cho httpd . 2 h Real Server 2
  • 62. I 62 3.14 Active Virtual Server #Vi/etc/sysctl.conf net.ipv4.ip_forward=0 net.ipv4.ip_forward=1 #sysctl–p #service piranha-gui restart #service pulse resart
  • 63. I 63 3.4.2.3 Cấu hình Real Server . rpm -ivh arptables_jf-0.0.8-8.i386.rpm rpm –ivh arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm 3.15 : /etc/sysconfig/network-scripts/ifcfg-lo:0
  • 64. I 64 3.16 2 Real Server 2 Real Server. Thực hiện chặn ARP trên IP ảo củ . # /etc/init.d/arptables_jf stop # /usr/sbin/arptables-noarp-addr 192.168.2.100 start # /etc/init.d/arptables_jf save # /etc/init.d/arptables_jf start # /sbin/chkconfig --level 2345 arptables_jf on Serve . :
  • 65. I 65 #service network restart #service httpd restart 3.17 2 Real Server 3.18 .html trên Real Server 1 .html
  • 66. I 66 3.19 .html trên Real Server 2 3.4.3 Thực hiện kiểm thử T . #Service piranha-gui restart #Service pulse restart /MONITORING trên Director
  • 67. I 67 2 Server: Server 1: 2 Server 2: 2 . 1 , I sang .
  • 68. I 68 Xem trên Backup Backup. trên Real Server 2 2
  • 69. I 69 2 #service httpd restart . . ) 2.
  • 70. I 70 cho Real 1 . 1.
  • 71. I 71 . #service pulse stop irector
  • 73. I 73 1. 2 Real Server. 2. . , Mail Server hay . 3. th Firewall .
  • 74. I 74 . -Linux ,2009 [2] Josep Jorba Esteve, Remo Suppi Boldrito. GNU/LINUX Advanced Administration. FUOC, 2009 [3] Shawn A Butler. System Integration, Integrating Services. Carnegie Mellon University, 2010 Trang Web [4] http://www.linuxvirtualserver.org/architecture.html [5] http://www.linuxvirtualserver.org/HighAvailability.html [6] http://www.linuxvirtualserver.org/docs/ha/heartbeat_ldirectord.html [7] http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F [8] http://www.linux-ha.org/wiki/ [9]http://khanh.com.vn/post/2011/11/03/Cau-hinh-Linux-Virtual-Server-via-Direct- Routing.aspx [10] http://kenhgiaiphap.vn/Detail/62/LVS-%28Linux-Virtual-Server%29.html