Cấu hình

Một phần của tài liệu Nghiên cứu giải pháp chịu lỗi cho máy chủ cung cấp dịch vụ (Trang 29)

Sau khi cấu hình giao diện mạng, ta cấu hình để heartbeat hoạt độna. Có 3 file cấu hình quan trọng trong thư m ục / e t c / h a . d phải được cấu hình trước khi m ọi thứ có thể

hoạt động. Các file mẫu trong thư mục tài liệu, thường để

/ u s r / s h a r e / d o c / h e a r t b e a t 2 . 0 . 8 (có thể khác ở phiên bản khác). Chép các file cấu hình:

cp h a _ l o g d . c f / e t c / l o g d . c f cp a u t h k e y s / e t c / h a . d

cp h a . c f / e t c / h a . d

Cấu hình heartbeat để điều hành địa chi IP ảo, quản lý lỗi và ldirectord. Các file này phải giống nhau trên cả hai server. Các gói đã cài đặt sẽ dùng cấu hình mặc định với đầy đủ các giải thích, nhưng dưới đây là tập các tham sổ cấu hình nên xem xét. ơ đâu thấy có danh sách các hostnam e thì tên này phải giống với tên do uname -n thông báo trên server. File "authkeys" phải chi có quyền đọc (600) cho root vì lý do bảo mật. Đặt quyền này bàng lệnh chmod 600 / e t c / h a . d / a u t h k e y s . Nội dung file này chứa cấu hình signature key để các m áy trao đổi phân biệt với nhau, người dùng không phải gõ dòng này. File này cũng phải hoàn toàn giống nhau trên cả hai nút và chỉ được đọc hoặc ghi bởi người dùng root. N eu quyền hạn bị thiết lập khác đi, heartbeat sẽ từ chôi khởi động.

# v i / e t c / h a . d / a u t h k e y s aut h 2

2 s h a l T h i s I s My P a s s w o r d

- Tiếp theo, chỉnh sửa file cấu hình / e t c / h a . d / h a . c f theo các trường để heartbeat có thể

hoạt động:

# c a t / e t c / h a . d / h a . c f

l o g f i l e / v a r / l o g / h a - l o g # chỗ để l o g mọi t h ử t ừ h e a r t b e a t

l o g f a c i l i t y l o c a l O # t i ệ n í c h sử dụng cho s y s l o g ho ặ c l o g g e r k e e p a l i v e 1 # t h ờ i g i a n g i ử a c á c h e a r t b e a t

d e a d t i m e 10 # t h ờ i g i a n đến khi h o s t đưọc đua ra ' c h ế t '

wa r n t i me 5 # t h ò i g i a n t r ư ó c khi cung cấp cảnh báo chậm t r ễ " l a t e h e a r t b e a t " . i n i t d e a d 30 u d p p o rt 694 u c a s t b c a s t ethO ttmcast ethO 2 2 5 . 0 . 0 . 1 694 u c a s t ethO 1 0 . 8 . 7 5 . 1 5 0 đa quảng bá ( m u l t i c a s t ) a u t o _ f a i l b a c k o f f c h i n h u s e _ l o g d y e s b c a s t ethO node b v a l node bva2 p i n g 1 0 . 8 . 7 5 . 1 respawn h a c l u s t e r / u s r / 1 i b / h e a r t b e a t / i p f a i l #crm o f f

Trong file câu hình, đặt thời gian kiểm tra "nhịp tim" của các node llần /s. sau 5 lân kiểm tra không trả lời sẽ có cảnh báo, sau 10 lần sẽ bị coi là '‘chết" tạm thời, sau 30 lần không trả lời thì node đó bị coi là “chết” . Danh sách các node có thể thay thế được liệt kê bằng các tên node. Trong file cấu hình sử dụn2 hai node là b v l và bva2. Đ ể xác định node con “số n g ” hay không, node sẽ ping đến địa chi quy định trước, ờ đây là địa chỉ node kia 192 . 168 . 1 . 2 5 0 . Tuy nhiên trong trường hợp nhiều node thì địa chỉ kiểm tra có thê chọn là gatew ay.

[ r o o t 0 b v a l r o o t ] # c a t / e t c / h a . d / h a r e s o ư r c e s bva 1 \ l d i r e c t o r d : : l d i r e c t o r d . c f \ LVSSyncDaemonSwap: : m a s t e r \ I P a d d r 2 : : 1 0 . 8 . 7 5 . 1 5 0 / 24/ e t h O / 1 0 . 8 . 7 5 . 2 5 5 [ root @bva2 r o o t ] # c a t / e t c / h a . d / h a r e s o u r c e s bva 1 \ #120 # t h ờ i g i a n c h ế t đầu t i ê n ( i n i t đ e a d ) # cổng udp cho t r u y ề n t h ô n g b c a s t hoặc

# g i a o d i ệ n quảng bá ( b r o a d c a s t )

1 0

# c l u s t e r 2 n ú t , v ì t h ế không cần dùng dạng

# t ự động g ửi t ả i nguyên l ỗ i t r ỏ l ạ i node

# l o g sử dụng deamon

# t ê n mạng s ẽ b r o a d c a s t l ả NIC0 # t ê n của nút đầu t i ê n

# t ê n của nút t hứ h a i

l d i r e c t o r d : : l d i r e c t o r d . c f \ LVSSyneDaemonSwap : r mas t e r \ I P a d d r 2 : : 1 0 . 8 . 7 5 . 1 5 0 / 2 4 / e t h 0 / 1 0 . 8 . 7 5 . 2 5 5 Cấu hình l d i r e c t o r d . c f [ r o o t @b v a l r o o t ] # c a t / e t c / h a . d / l d i r e c t o r d . c f c h e c k t i m e o u t = 1 0 c h e c k i n t e r v a 1=5 a u t o r e l o a d = n o l o g f i l e = " / v a r / l o g / l d i r e c t o r d . l o g " q u i e s c e n t = n o v i r t u a l = 1 0 . 8 . 7 B . 1 5 0 : 8 0 f a l l b a c k s 1 2 7 . 0 . 0 . 1 : 8 0 r e a l = l 0 . 8 . 7 5 . 2 4 9 : 8 0 g a t e # s e r v e r t hực sự r e a l = 1 0 . 8 . 7 5 . 2 5 0 : 80 g a t e s e r v i c e = h t t p r e q u e s t = " l d i r e c t o r d . h t m l " r e c e i v e = " I t worked" s c h e d u l e r = r r p e r s i s t e n t = 6 0 0 p r o t o c o l = t c p c h e c k t y p e = n e g o t i a t e

File trên có nội đung eio n e nhau ở các node. I d i r e c t o r d . c f được cấu hình để kiểm tra w eb server trên cổn g 80 chứa file trong thư mục root có tên l d i r e c t o r d . htm l chỉ chứa xâu "It worked". Ldirectord kiểm tra sức khỏe của m ồi server thực sự bàng cách hỏi các w eb server file này. N eu nó nhận lại được file chứa xâu trên, nó coi như server đáp ứng được và có thể nhận các yêu cầu từ bên ngoài. C ũne có các cơ chế tích hợp sằn để kiểm tra các địch vụ phổ biến khác như FTP. POP. IM AP. N N T P. SMTP.

- Soạn f i l e l o g d . c f :

Sửa th ôn2tin thành : l o g f a c i l i t y deamon - Copv các file sane node còn lại:

s e p h a . c f a u t h k e y s r o o t @ b v a 2 : / e t c / h a . d

v i / e t c / l o g d . c f Esc : wq

s c p / e t c / l o g d . c f r o o t 0 b v a 2 : / e t c / h a . d - K hơi đọng: / e t c / i n i t . d / h e a r t b e a t s t a r t (adsbygoogle = window.adsbygoogle || []).push({});

- N e u co loi, xem nội dung t a i l / v a r / l o g / m e s s a g e

- Đạt thơi gian kiem tra : crm_mom - i 5 #Đặt kiểm t r a mỗi 5 g i â y

Gi ờ cân đảm bảo heartbeat được kích hoạt khi khởi động và ldirectord KHỐNG được khởi động băng cách chạy trên cả hai server:

/ s b i n / c h k c o n f i g h e a r t b e a t on / s b i n / c h k c o n f i g l d i r e c t o r d o f f / s b i n / s e r v i c e l d i r e c t o r d s t o p / s b i n / s e r v i c e h e a r t b e a t s t a r t

Các dịch vụ khác ( h t t p d , m y s q l , ...) phải chạy trước h e a r t b e a t . Dành cho nó khoảng m ột phút để nó khởi động xong và làm việc ổn định, sau đó kiểm tra bằng cách gõ lệnh:

[ root @bval r o o t ] # i p addr sh

1: l o : <LOOPBACK,UP> mtu 16436 q d i s c noqueue

l i n k / l o o p b a c k 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 brd 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 i n e t 1 2 7 . 0 . 0 . 1 / 8 br d 1 2 7 . 2 5 5 . 2 5 5 . 2 5 5 s c o p e h o s t l o 4: e t h O : <BROADCAST,MULTICAST,UP> mtu 1500 q d i s c p f i f o _ f a s t q l e n 1000 l i n k / e t h e r 0 0 : Oc: 2 9 : b e : 7 f :73 brd f f : f f : f f : f f : f f : f f i n e t 1 0 . 8 . 7 5 . 2 4 9 / 1 6 br d 1 0 . 8 . 7 5 . 2 5 5 s c o p e g l o b a l ethO i n e t 1 0 . 8 . 7 5 . 1 5 0 / 2 4 br d 1 0 . 8 . 7 5 . 2 5 5 s c o p e g l o b a l ethO 5: e t h l : <BROADCAST,MULTICAST,UP> mtu 1500 q d i s c p f i f o _ f a s t q l e n 1000 l i n k / e t h e r 0 0 : Oc: 2 9 : b e : 7 f : 7d br d f f : f f : f f : f f : f f : f f i n e t 1 9 2 . 1 6 8 . 1 . 2 4 9 / 2 0 brd 1 9 2 . 1 6 8 . 2 5 5 s c o p e g l o b a l e t h l [root@bva2 r o o t ] # i p addr sh

l ĩ l o : <LOOPBACK,UP> mtu 16436 q d i s c noqueue

l ỉ n k / l o o p b a c k 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 br d 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 i n e t 1 2 7 . 0 . 0 . 1 / 8 brd 1 2 7 . 2 5 5 . 2 5 5 . 2 5 5 s c o p e h o s t l o

l i n k / e t h e r 0 0 : 0 c : 2 9 : b e : 7 f :73 brd f f : f f : f f : f f : f f : f f m e t 1 0 . 8 . 7 5 . 2 5 0 / 1 6 brd 1 0 . 8 . 7 5 . 2 5 5 sc o p e g l o b a l ethO m e t 1 0 . 8 . 7 5 . 1 5 0 / 2 4 brd 1 0 . 8 . 7 5 . 2 5 5 s c o p e g l o b a l ethO 5: e t h l : <BROADCAST,MULTICAST,UP> mtu 1500 q d i s c p f i f o _ f a s t q l e n 1000 l i n k / e t h e r 00:0c : 2 9 : b e : 7 f : 7d brd f f : f f : f f : f f : f f : f f m e t 1 9 2 . 1 6 8 . 1 . 2 5 0 / 2 0 brd 1 9 2 . 1 6 8 . 1 . 2 5 5 s c o p e g l o b a l e t h l

N od e thứ nhât khởi động lên (active director, trong trường hợp này là b v a l ) có địa chỉ VIP trên ethO, trong khi node đã khởi động có trên lo . G iờ có thể chạy i pvs adm để kiêm tra trạng thái của các node và các kết nối đến. Chỉ có máy hiện tại hoạt động như là director sẽ liệt kê các thông tin cần thiết:

[ r oot @bval r o o t ] # ip vsad m -L - n

IP V i r t u a l S e r v e r v e r s i o n 1 . 0 . 8 ( s i z e = 6 5 5 3 6 ) Prot L o c a l A d d r e s s : P o r t S c h e d u l e r F l a g s

- > R e m o t e A d d r e s s : P o r t Forward Wei ght Ac t i v e Co n n InActConn TCP 1 0 . 8 . 7 5 . 1 5 0 : 8 0 r r p e r s i s t e n t 600 - > 1 2 7 . 0 . 0 . 1 : 8 0 L o c a l 1 0 0 TCP 1 0 . 8 . 7 5 . 1 5 0 : 8 0 r r p e r s i s t e n t 600 - > 1 0 . 8 . 7 5 . 2 4 9 : 8 0 Rout e 1 0 0 -> 1 0 . 8 . 7 5 . 2 5 0 : 8 0 L o c a l 1 0 0 [root@bva2 r o o t ] # ip vsad m -L - n IP V i r t u a l S e r v e r v e r s i o n 1 . 0 . 8 ( s i z e = 6 5 5 3 6 ) P rot L o c a l A d d r e s s : P o r t S c h e d u l e r F l a g s

- > R e m o t e A d d r e s s : P o r t Forward Wei ght A c t i v e C o n n InActConn CÓ thể thấy trong cột "weight" các yêu cầu đến sẽ chia đều cho hai serv er thực sự. Nếu dùng daem on HTTP ở m ột server, trong vài giây, w eigh t cho server đó sẽ rơi về 0. và không có yêu cầu m ới nào được chuyển đến server đó. Đ e cho phép các kết nối hiện có kết thúc m ột cách lịc h s ự khi gửi tất cả các kết nối mới cho node khác (ví dụ nếu chuẩn bị kế hoạch bảo trì), đặt w eigh t của server chết về 0 với câu lệnh đâu tiên dưới đây. Đ ể tạo các kết nối mới từ các host ổn định (persistent host) thực hiện chuyển đổi. cần đặt " q u i e s c e n t = n o " trong ldirectord.cf. V ới " q u i e s c e n t = y e s " , các host ổn định sẽ tiếp tục

thư ở server chêt ngay cả sau khi nó đã chết, giả thiết là cuối cùng nó cũne hoạt độne trở lại. # / s b i n / i p v s a d m - e - t 1 0 . 8 . 7 5 . 1 5 0 : 8 0 - r 1 0 . 8 . 7 5 . 2 4 9 : 8 0 -w 0 # / s b i n / i p v s a d m -L - n IP V i r t u a l S e r v e r v e r s i o n 1 . 2 . 0 ( s i z e = 4 0 9 6 ) Prot L o c a l A d d r e s s : P o r t S c h e d u l e r F l a g s

- > R e m o t e A d d r e s s : P o r t Forward Wei ght A c t i v e Co n n InActConn TCP 1 0 . 8 . 7 5 . 1 5 0 : 8 0 r r p e r s i s t e n t 600

- > 1 0 . 8 . 7 5 . 2 5 0 : 8 0 Route 0 0 0

-> 1 0 . 8 . 7 5 . 2 4 9 : 8 0 Lo c a l 1 0 0

Chạy " s e r v i c e c l u s t e r s t o p bva2" để đặt w e i g h t cho bva2 về 0.

File tiêp theo là / e t c / h a . d / h a r e s o u r c e s . Trong file này cần định nahĩa tên nút chính, địa chỉ IP ảo (cluster IP) và tài nguyên dùng. Ở trường hợp này thì đó là Web server A pache.

Chỉ cân m ột dòng dữ liệu ở đây:

b v a l . l o c a l h o s t 1 0 . 8 . 7 5 . 1 5 0 h t t p d

F ile này g iố n g nhau hoàn toàn trên cả hai node, Tên tài nauyên là tên script khởi tạo đặt trong thư m ục /e tc /ỉn it.d . N ếu tên tài nguyên trong / e t c / i n i t .d khôna hoàn toàn giống nhau, heartbeat sẽ không thể tìm thấy khi cố gắng đọc nó và cả A pache lẫn hearbeat đều không thể khởi độna được.

Cấu hình A p ach e n g h e địa chỉ IP ảo 192.168.1.5 và trỏ thư mục A pache gốc tới điêm cài đặt dữ liệu / u s r / l o c a l / a p a c h e 2 / h t d o c s , nơi các file Web được lưu lại. N ơi lưu trữ dành cho A pach e có thể là m ột nơi cụ thể từ thư mục file hệ thống cục bộ tới mạng khu vực lưu trữ. Tất nhiên nếu dữ liệu trong cả hai node không giống nhau thì sẽ chẳng có điểm nào trong cluster chịu lỗi. N ếu khône có thiết bị lưu trữ mạng m ở rộng (như Fibre Channel), có thể cài đặt bất kỳ file hệ thống nào như SM B. N F S. iSC SI, hoặc SAN là thư mục địa phư ơne đê dữ liệu có thê được truy cập trên từng nút khi các nút hoạt động. Đ iều này được thực hiện bàng cách chỉnh sửa các thôn2 sô đâu vào trona file / e t c / h t t p d / c o n f / h t t p d . c o n f như sau:

L i s t e n 1 0 . 8 . 7 5 . 1 5 0 : 8 0

B ỏ chức năng băt đâu tự động khởi động trong thời gian boot cho Apache service là khá quan trọng. Khi đó heartbeat sẽ bắt đầu và kết thúc dịch vụ khi cần thiết. V ô hiệu hoá chức năng băt đâu vớ i câu lệnh sau (trên hệ thống Red Hat):

c h k c o n f i g h t t p d rem ove

Phải đảm bảo câu hình A pache giốn g nhau trên cả hai nút. (adsbygoogle = window.adsbygoogle || []).push({});

2 . K i ể m t r a

Chúng ta sẽ kiểm tra thử chương trình làm v iệc với cấu hình vừa thiết lập. bất đầu tạo cluster m ới, khởi động dịch vụ hearbeat trên cả hai nút:

/ e t c / i n i t . d / h e a r t b e a t s t a r t

Xe m thư mục /v a r /lo g /h c t - ỉo g trên cả hai nút. N ếu tất cả được cấu hình chính xác, thông tin trong các file log như sau:

C o n f i g u r a t i o n v a l i d a t e d , s t a r t i n g h e a r t b e a t 1 . 2 . 3 . CVS. 2 0 0 5 0 9 2 7 h e a r t b e a t : v e r s i o n 1 . 2 . 3 . CVS. 2 0 0 5 0 9 2 7

Link b v a l . l o c a l h o s t : e t h l up. Link b v a 2 . l o c a l h o s t : e t h l up.

S t a t u s u p d a te f o r node b v a 2 . e x a m p l e . c o m : s t a t u s a c t i v e

Local s t a t u s now s e t t o : ' a c t i v e ' rem ote r e s o u r c e t r a n s i t i o n c o m p l e t e d . Local R e s o u r c e a c q u i s i t i o n c o m p l e t e d , (none) b v a 2 . e x a m p l e . c o m wa n t s t o go s t a n d b y [ f o r e i g n ] a c q u i r e l o c a l H A r e s o u r c e s ( s t a n d b y ) . l o c a l H A r e s o u r c e a c q u i s i t i o n c o m p l e t e d ( s t a n d b y ) . Standby r e s o u r c e a c q u i s i t i o n done [ f o r e i g n ] . I n i t i a l r e s o u r c e a c q u i s i t i o n c o m p l e t e (a u t o _ f a i l b a c k ) rem o te r e s o u r c e t r a n s i t i o n c o m p l e t e d .

- Kiểm tr a t ì n h chịu lỗ i: khởi độn2 lại server master (server chính). Server slave (server

phụ) là dịch vụ A pache. N ếu m ọi thứ hoạt động tốt sẽ thấy như sau: R e c e i v e d shut down n o t i c e from ' b v a l . l o c a l h o s t ' .

R e s o u r c e s b e i n g a c q u i r e d from b v a l . l o c a l h o s t . a c q u i r e l o c a l HA r e s o u r c e s ( s t a n d b y ) . l o c a l HA r e s o u r c e a c q u i s i t i o n c o m p l e t e d

( s t a n d b y ) .

s ta n d b y r e s o u r c e a c q u i s i t i o n done [ f o r e i g n ] . Running / e t c / h a . d / r c . d / s t a t u s s t a t u s Ta k i n g o v e r r e s o u r c e group 1 0 . 8 . 7 5 . 1 5 0 A c q u i r i n g r e s o u r c e group: b v a l . l o c a l h o s t 1 0 . 8 . 7 5 . 1 5 0 h t t p d mach_down t a k e o v e r c o m p le te f o r node b v a l . l o c a l h o s t . node b v a l . l o c a l h o s t : i s dead

Dead node b v a l . l o c a l h o s t gave up r e s o u r c e s . Li nk b v a l . l o c a l h o s t r e t h l de ad.

- K h i m a s t e r o n l i n e t r ở lạ i, t h ô n g s ố tr ê n A p a c h e s e r v ic e n h ư s a u :

H e a r t b e a t r e s t a r t on node b v a l . l o c a l h o s t h e a r t b e a t

Link b v a l . l o c a l h o s t : e t h l up. B v a 2 . l o c a l h o s t want s t o go s t a n d b y [ f o r e i g n ] s t a n d b y : b v a l . l o c a l h o s t can t a k e our f o r e i g n r e s o u r c e s g i v e up f o r e i g n HA r e s o u r c e s ( s t a n d b y ) . R e l e a s i n g r e s o u r c e group: b v a l . l o c a l h o s t 1 0 . 8 . 7 5 . 1 5 0 h t t p d Local s t a n d b y p r o c e s s c o m p l e t e d [ f o r e i g n ] . remot e r e s o u r c e t r a n s i t i o n c o m p l e t e d . Other node c o m p l e t e d s t a n d b y t a k e o v e r o f f o r e i g n r e s o u r c e s .

Phần 6. Tính sẵn sàng cao và cân bằng tải

T o p o ở h ìn h 12 cu n g cấp tính sằn sà n g ca o v à d ịch v ụ cân bàn g tải. Ta cần tôi th iê u cân 4 n o d e c h o to p o n ày, v à server thực sự c ó thể đ ư ợc bổ su n g v à o m ạn g khi y ê u câ u n ă n g lự c b ổ su n g . L d irectord đ ư ợ c heartbeat chạy. Trên p h iên bản đ ư ợc h ô trợ R e d H at để đảm bảo heartbeat (ch ạ y ở ru n -lev el 2, 3, 4 v à 5) và ld irectord k h ô n g k h ở i đ ộ n g khi kh ởi đ ộ n g lại m á y d ù n g lện h c h k c o n f i g n h ư sau:

/ s b i n / c h k c o n f i g - - l e v e l 2 3 4 5 h e a r t b e a t on / s b i n / c h k c o n f i g - - d e l l d i r e c t o r d

H ea rtb ea t c ũ n g sẽ ch ạ y ld irectord để cấu hìn h L V S trên n od e này. Đ ẻ k iểm tra Ì d i r e c t o r d c ó đ a n g ch ạ y k h ô n g , dùng:

/ e t c / h a . d / r e s o u r c e . d / l d i r e c t o r d l d i r e c t o r d . c f s t a t u s l d i r e c t o r d f o r l d i r e c t o r đ . c f i s r u n n i n g w i t h p i d : 1617

Đ ể k iể m tra b ả n g n h ân c ủ a L V S , c ó thể d ù n g lện h ì p v s a d m . V í dụ sau v iệ n dần sau ch ỉ ra ld irecto rd x u ấ t h iệ n trên tất cả các server :

/ s b i n / i p v s a d m -L - n IP V i r t u a l S e r v e r v e r s i o n 1 . 0 . 1 1 ( s i z e = 4 0 9 6 ) P r o t L o c a l A d d r e s s : P o r t S c h e d u l e r F l a g s - > R e m o t e A d d r e s s : P o r t Forward Weight A c t i v e C o n n InActConn TCP 192 .. 168 . 6,. 2 4 0 : 4 4 3 rr - > 192 .. 168 .. 7 .. 4 : 4 4 3 Masq 1 0 0 - > 192 .. 168 ,. 7 .. 5 : 4 4 3 Masq 1 0 0 TCP 192 .. 168 ., 6,. 2 4 0 : 8 0 r r - > 192 .. 168 .. 7 . co o Masq 1 0 0 -> 192 ., 168 .. 7 .. 5 : 8 0 Masq 1 0 0 TCP 192 .. 168 .. 7 ., 2 4 0 : 2 1 rr - > 192 .. 168. , 6. 4 : 21 Masq 1 0 0 - > 192 ., 168 .. 6. 5 : 2 1 Masq 1 0 0

Một phần của tài liệu Nghiên cứu giải pháp chịu lỗi cho máy chủ cung cấp dịch vụ (Trang 29)