Tài liệu Khóa luận Nghiên cứu hệ thống máy ảo mã nguồn mở openvz: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thanh Tú
NGHIÊN CỨU HỆ THỐNG MÁY ẢO
MÃ NGUỒN MỞ OPENVZ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thanh Tú
NGHIÊN CỨU HỆ THỐNG MÁY ẢO
MÃ NGUỒN MỞ OPENVZ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hƣớng dẫn: TS. Nguyễn Trí Thành
HÀ NỘI - 2010
LỜI CẢM ƠN
Trƣớc tiên, em muốn gửi lời cảm ơn sâu sắc đến Tiến sĩ Nguyễn Trí Thành,
ngƣời đã tận tình hƣớng dẫn em trong suốt quá trình thực hiện khóa luận.
Em xin gửi lời cảm ơn chân thành và sâu sắc tới các thầy, cô tại trƣờng Đại học
Công Nghệ đã dạy dỗ và tận tình chỉ bảo cho em trong suốt quá trình học tập tại
trƣờng. Những kiến thức mà thầy cô truyền đạt sẽ là vốn quý báu cho chúng em bƣớc
vào tƣơng lai.
Tôi xin cảm ơn tập thể sinh viên K51CHTTT Trƣờng Đại học Công Nghệ đã
ủng hộ và khuyến khích tôi trong quá trình ...
97 trang |
Chia sẻ: haohao | Lượt xem: 1186 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Nghiên cứu hệ thống máy ảo mã nguồn mở openvz, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thanh Tú
NGHIÊN CỨU HỆ THỐNG MÁY ẢO
MÃ NGUỒN MỞ OPENVZ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thanh Tú
NGHIÊN CỨU HỆ THỐNG MÁY ẢO
MÃ NGUỒN MỞ OPENVZ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hƣớng dẫn: TS. Nguyễn Trí Thành
HÀ NỘI - 2010
LỜI CẢM ƠN
Trƣớc tiên, em muốn gửi lời cảm ơn sâu sắc đến Tiến sĩ Nguyễn Trí Thành,
ngƣời đã tận tình hƣớng dẫn em trong suốt quá trình thực hiện khóa luận.
Em xin gửi lời cảm ơn chân thành và sâu sắc tới các thầy, cô tại trƣờng Đại học
Công Nghệ đã dạy dỗ và tận tình chỉ bảo cho em trong suốt quá trình học tập tại
trƣờng. Những kiến thức mà thầy cô truyền đạt sẽ là vốn quý báu cho chúng em bƣớc
vào tƣơng lai.
Tôi xin cảm ơn tập thể sinh viên K51CHTTT Trƣờng Đại học Công Nghệ đã
ủng hộ và khuyến khích tôi trong quá trình nghiên cứu và thực hiện khóa luận này.
Cuối cùng, con xin cảm ơn chân thành và biết ơn vô hạn tới gia đình, những
ngƣời có công sinh thành, nuôi dƣỡng, những ngƣời luôn kịp thời động viên và giúp
đỡ vƣợt qua những khó khăn trong cuộc sống.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận đƣợc sự góp
ý chân thành của thầy cô các bạn để em hoàn thiện khóa luận của mình.
Hà Nội, ngày 10 tháng 5 năm 2010
Sinh viên
Lê Thanh Tú
TÓM TẮT
Nội dung của khóa luận chủ yếu là tìm hiểu về hệ thống máy ảo mã nguồn mở
OpenVZ. Đầu tiên khóa luận trình bày về bài toán ảo hóa và những lợi ích mà công
nghệ ảo hóa mang lại. Đồng thời cũng giới thiệu một số hệ thống máy ảo đang đƣợc sử
dụng rộng rãi trên thế giới.
Để tìm hiểu OpenVZ khóa luận đi sau vào việc cài đặt cũng nhƣng quản trị hệ
thống máy ảo mã nguồn mở này. Việc sử dụng các tính năng của OpenVZ sẽ cho thấy
những đặc điểm của OpenVZ hay cụ thể hơn là những điểm nổi bật đƣợc thể hiện qua
hoạt động thực tế của phần mềm.
Từ việc sử dụng thực tế và tham khảo các tài liệu liên quan luận văn cũng đã đƣa
ra nhƣng so sánh, đánh giá hiệu quả của phần mềm OpenVZ so với các phần mềm
nguồn mở miễn phí và phần mềm bản quyền khác nhƣ Xen, VirtualBox, VMWare. Một
điều khá quan trọng mà khóa luận chỉ ra rằng ảo hóa là một giải pháp tiết kiệm mà hiệu
quả cho các doanh nghiệp ở Việt Nam trong đó OpenVZ là một giải pháp điển hình.
MỤC LỤC
LỜI CẢM ƠN ............................................................................................................ 3
TÓM TẮT .................................................................................................................. 4
MỤC LỤC .................................................................................................................. 5
DANH MỤC CÁC BẢNG ........................................................................................ 8
DANH MỤC CÁC HÌNH VẼ ................................................................................... 9
BẢNG KÝ HIỆU VIẾT TẮT .................................................................................. 10
LỜI MỞ ĐẦU .......................................................................................................... 11
CHƢƠNG 1. GIỚI THIỆU BÀI TOÁN ẢO HÓA VÀ Ý NGHĨA CỦA NÓ .......... 1
1.1. Bài toán ảo hóa máy chủ lƣu trữ của các Doanh nghiệp ................................ 1
1.1.1. Dùng chung máy chủ, chia sẻ tài nguyên ................................................ 1
1.1.2. Máy chủ riêng tại các trung tâm dữ liệu .................................................. 1
1.1.3. Sử dụng máy chủ riêng ảo (Virtual Private Server) ................................. 2
1.1.4. Bài toán ảo hóa máy chủ lƣu trữ .............................................................. 3
1.2. Ý nghĩa của bài toán ảo hóa ............................................................................ 3
1.2.1. Tận dụng hiệu quả tài nguyên của hệ thống ............................................ 3
1.2.2. Đáp ứng nhu cầu lƣu trữ dữ liệu .............................................................. 5
1.2.3. Giảm chi phí quản lý hệ thống ................................................................. 5
1.2.4. Tiết kiệm năng lƣợng và giảm ô nhiễm môi trƣờng ................................ 6
CHƢƠNG 2. CÁC ỨNG DỤNG ẢO HÓA PHỔ BIẾN ........................................... 7
2.1. Ảo hóa máy chủ .............................................................................................. 7
2.1.1. Ảo hóa hệ điều hành................................................................................. 7
2.1.2. Mô phỏng phần cứng ............................................................................... 8
2.1.3. Ảo hóa song song ..................................................................................... 9
2.1.4. Ảo hóa lƣu trữ ........................................................................................ 10
2.2. Vai trò của phần cứng ................................................................................... 11
CHƢƠNG 3. HỆ THỐNG MÁY ẢO OPENVZ ..................................................... 12
3.1. Cài đặt OpenVz ............................................................................................. 12
3.1.1. Cài đặt và cấu hình hệ điều hành chủ trên máy tính .............................. 12
3.1.2. Cài đặt phần mềm OpenVZ ................................................................... 13
3.1.3. Cấu hình mục khởi động ( Boot loader) ................................................ 15
3.1.4. Thiết lập các thông số khác .................................................................... 15
3.1.5. Cài đặt các công cụ ................................................................................ 17
3.1.6. Cài đặt mẫu hệ điều hành ....................................................................... 17
3.2. Thao tác trên máy chủ ảo (VPS) ................................................................... 19
3.2.1. Tạo và cấu hình máy chủ ảo mới ........................................................... 19
3.2.2. Cấu hình máy chủ ảo .............................................................................. 21
3.2.3. Khởi động, dừng, khởi động lại và truy vấn trạng thái của VPS ........... 23
3.2.4. Xoá VPS ................................................................................................. 25
3.2.5. Chạy các lệnh trong VPS ....................................................................... 26
3.3. Quản lý template ........................................................................................... 26
3.3.1. Vòng đời bản mẫu .................................................................................. 26
3.3.2. Danh mục các mẫu ................................................................................. 27
3.3.3. Làm việc với VPS .................................................................................. 28
3.4. Quản lý tài nguyên ........................................................................................ 29
3.4.1. Tài nguyên tham số điều khiển là gì? .................................................... 29
3.4.2. Quản lý hạn ngạch đĩa ............................................................................ 30
3.4.3. Quản lý chia sẻ CPU .............................................................................. 39
3.4.4. Quản lý các tham số hệ thống ................................................................ 41
3.4.5. Quản lý cấu hình tài nguyên VPS .......................................................... 48
3.5. Các tác vụ nâng cao trên OpenVZ ................................................................ 51
3.5.1. Xác định số tài khoản VPS bởi định danh của tiến trình ....................... 51
3.5.2. Thay đổi thời gian hệ thống từ VPS ...................................................... 51
3.5.3. Truy cập các thiết bị từ bên trong VPS .................................................. 53
3.5.4. Cơ chế chia sẻ mạng trong giữa máy chủ vật lý gốc và các VPS .......... 56
3.5.5. Chuyển cạc mạng tới VPS ..................................................................... 62
3.5.6. Bật VPN cho VPS .................................................................................. 63
3.5.7. Tải mô đun iptables ................................................................................ 64
3.5.8. Khởi động lại VPS ................................................................................. 65
3.5.9. Chuyển VPS từ máy chủ vật lý gốc này sang máy chủ vật lý khác ....... 66
3.5.10. Chuyển máy chủ vật lý gốc thành một VPS ....................................... 70
3.5.11. Sao lƣu một VPS đang hoạt động với tiện ích vzdump ....................... 75
CHƢƠNG 4. SO SÁNH OPENVZ VÀ MỘT SỐ MÁY ẢO KHÁC TRÊN LINUX
....................................................................................................................................... 80
4.1. Về mặt sử dụng công nghệ ............................................................................ 80
4.2. Về mặt hiệu năng .......................................................................................... 80
4.3. Về khả năng mở rộng .................................................................................... 80
4.4. Kết luận ......................................................................................................... 82
KẾT LUẬN .............................................................................................................. 83
PHỤ LỤC ................................................................................................................. 84
TÀI LIỆU THAM KHẢO........................................................................................ 85
DANH MỤC CÁC BẢNG
Bảng 1. Các tham số điều khiển .......................................................................... 30
Bảng 2. Các tham số hạn ngạch đĩa .................................................................... 32
Bảng 3. Thông số hạn ngạch đĩa cho từng VPS .................................................. 34
Bảng 4. Tham số tài nguyên CPU ....................................................................... 39
Bảng 5. Tham số sơ cấp ...................................................................................... 42
Bảng 6. Tham số thứ cấp ..................................................................................... 43
Bảng 7. Tham số phụ trợ ..................................................................................... 44
Bảng 8. Các cấp độ vi phạm ................................................................................ 50
Bảng 9. Các công nghệ mà các phần mềm ảo hóa sử dụng ................................ 80
Bảng 10. Đánh giá hiệu năng của các phần mềm ảo hóa ...................................... 80
DANH MỤC CÁC HÌNH VẼ
Hình 1. Sơ đồ ứng dụng Virtual Private Server .................................................... 2
Hình 2. Hệ thống gồm 3 server ............................................................................. 4
Hình 3. Hệ thống chỉ có một máy chủ đƣợc ảo hóa thành 3 máy ảo .................... 5
Hình 4. Phân vùng ổ đĩa khi cài hệ điều hành chủ ............................................. 13
Hình 5. Mô hình dạng sao đối với các VPS sử dụng Venet ............................... 56
Hình 6. Mô hình mạng thiết bị Ethernet ảo và Bridge ảo .................................. 59
Hình 7. Biểu đồ thể hiện lƣu lƣợng trung bình trên một máy ảo ........................ 81
Hình 8. Biểu đồ thể hiện tổng lƣu lƣợng các máy ảo ......................................... 82
BẢNG KÝ HIỆU VIẾT TẮT
STT Kí hiệu Chú giải cho kí hiệu sử dụng
1 DN Doanh nghiệp
2 VPS Máy chủ ảo (Virtual Private Server)
3 CNTT Công nghệ thông tin
4 HN Máy chủ vật lý gốc (Hardware node)
5 OS Hệ điều hành (Operating System)
LỜI MỞ ĐẦU
Theo hãng nghiên cứu thị trƣờng Gartner, ảo hóa cùng vi xử lý đa lõi, điện toán
"đám mây", điện-toán-mọi-nơi và mạng xã hội ảo sẽ là 5 công nghệ làm thay đổi hoàn
toàn ngành công nghiệp CNTT từ nay đến năm 2012. Cũng theo một nghiên cứu mới đây,
hãng này xếp công nghệ ảo hóa vào vị trí công nghệ chiến lƣợc số 1 trong năm 2010.
Ngày nay xu hƣớng ảo hóa máy chủ đã trở thành xu hƣớng chung của hầu hết các
doanh nghiệp trên toàn thế giới. Những khó khăn trong thời kỳ khủng hoảng khiến cho
các doanh nghiệp phải tìm mọi cách để giảm thiểu chi phí. Ảo hóa đƣợc coi là một
công nghệ giúp các doanh nghiệp cắt giảm chi tiêu hiệu quả với khả năng tận dụng tối
đa năng suất của các thiết bị phần cứng. Việc áp dụng công nghệ ảo hóa máy chủ
nhằm tiết kiệm không gian sử dụng, nguồn điện và giải pháp tỏa nhiệt trong trung tâm
dữ liệu. Ngoài ra việc giảm thời gian thiết lập máy chủ, kiểm tra phần mềm trƣớc khi
đƣa vào hoạt động cũng là một trong những mục đích chính khi ảo hóa máy chủ. Công
nghệ mới này sẽ tạo ra những điều mới mẻ trong tƣ duy của các nhà quản lý công nghệ
thông tin về tài nguyên máy tính. Khi việc quản lí các máy riêng lẻ trở nên dễ dàng
hơn, trọng tâm của CNTT có thể chuyển từ công nghệ sang dịch vụ. Hiện nay, các "đại
gia" trong giới công nghệ nhƣ Microsoft, Oracle, Sun… đều nhập cuộc chơi ảo hóa
nhằm giành thị phần lớn trong lĩnh vực này với "gã khổng lồ" VMWare. Do đó, trên
thị trƣờng có rất nhiều sản phẩm để các doanh nghiệp có thể lựa chọn và ứng dụng.
Ảo hóa là một lĩnh vực rất rộng với nhiều ứng dụng, trong luận văn này giới
thiệu một trong những công nghệ đƣợc sử dụng phổ biến đó là công nghệ ảo hóa hệ
điều hành. Đây là một phƣơng pháp lý tƣởng cho các máy chủ Web, nó tạo ra sự linh
động trong việc sao lƣu dự phòng, hỗ trợ việc triển khai phần mềm hay hệ điều hành
một cách nhanh chóng và đồng bộ.
Trong khuôn khổ của luận văn tốt nghiệp với đề tài “Nghiên cứu hệ thống máy
ảo mã nguồn mở OpenVZ” em xin đƣa ra những nghiên cứu của mình về phần mềm
này với phƣơng pháp ảo hóa mà phần mềm sử dụng đó là phƣơng pháp ảo hóa hệ điều
hành. Nội dung khóa luận gồm 4 chƣơng:
Chƣơng 1: Giới thiệu về bài toán ảo hóa và ý nghĩa của nó: Giới thiệu về bài
toán ảo hóa máy chủ lƣu trữ của các doanh nghiệp, chƣơng này cũng đề cập tới
việc sử dụng máy chủ riêng ảo. Đồng thời cũng đƣa ra ý nghĩa của bài toán ảo
hóa đối với các doanh nghiệp
Chƣơng 2: Các ứng dụng ảo hóa phổ biến: Trình bày về các phƣơng pháp ảo
hóa đƣợc sử dụng phổ biến trong thời điểm hiện tại nhƣ ảo hóa hệ điều hành,
mô phỏng phần cứng, ảo hóa song song. Đồng thời cũng đƣa ra vai trò của phần
cứng trong việc ứng dụng công nghệ ảo hóa
Chƣơng 3: Hệ thống máy ảo OpenVZ: Đây là chƣơng trong tâm trình bày về
cách cài đặt, sử dụng các công cụ của phần mềm hay nói cách khác là quản trị
OpenVZ với các tác vụ cụ thể.
Chƣơng 4: So sánh OpenVZ và một số máy ảo khác trên Linux: Đƣa ra
những so sánh về công nghệ và hiệu năng của OpenVZ với một số máy ảo đƣợc
sử dụng phổ biến nhƣ VMWare, Xen, VirtualBox.
1
CHƢƠNG 1. GIỚI THIỆU BÀI TOÁN ẢO HÓA VÀ Ý NGHĨA
CỦA NÓ
1.1. Bài toán ảo hóa máy chủ lƣu trữ của các Doanh nghiệp
Hiện nay hầu hết các doanh nghiệp (DN) đều có website riêng trên Internet. Chi
phí cho hosting (lƣu trữ) website và giữ chỗ tên miền đƣợc rất nhiều Doanh nghiệp
quan tâm, nhƣng vẫn chƣa tìm ra giải pháp có lợi nhất. Có 3 cách lƣu trữ web phổ biến
hiện nay.
1.1.1. Dùng chung máy chủ, chia sẻ tài nguyên
Để giảm tối đa chi phí đầu tƣ, nhiều Doanh nghiệp vừa và nhỏ chọn giải pháp
thuê Shared Hosting (lƣu trữ chia sẻ). Ƣu điểm của giải pháp này là tiết kiệm chi phí
thuê dịch vụ và Doanh nghiệp không cần phải có nhân viên CNTT chuyên nghiệp
riêng để quản lý hosting vì máy chủ (server) đã đƣợc nhà cung cấp quản lý. Tùy vào
trình độ kỹ thuật, kinh nghiệm nhà cung cấp mà chất lƣợng cũng nhƣ sự bảo mật cho
server chung khác nhau. Nhƣợc điểm của giải pháp này là Doanh nghiệp phải chia sẻ
tài nguyên hệ thống server chung với nhiều tài khoản của cá nhân khác hoặc Doanh
nghiệp khác, nguy cơ bị hack rất cao. Chẳng hạn, trên cùng 1 server vật lý đang chứa 4
website A, B, C, D của 4 Doanh nghiệp; nếu website A bị tấn công thì có thể làm toàn
bộ server quá tải và dĩ nhiên các website B, C, D cũng không thể truy cập đƣợc nữa.
1.1.2. Máy chủ riêng tại các trung tâm dữ liệu
Dedicated Server (máy chủ riêng) đƣợc coi là giải pháp tối ƣu cho việc vận hành
website, hệ thống e-mail và các giải pháp trực tuyến khác của Doanh nghiệp. Ƣu thế
của giải pháp này là Doanh nghiệp sử dụng độc lập một hệ thống riêng, không chia sẻ
với ai và đặc biệt sức tải của server có thể mở rộng vô hạn (dựa vào những công nghệ
cho phép kết hợp khả năng điện toán của nhiều server nhƣ công nghệ clustering, điện
toán lƣới…), không hạn chế việc cài đặt những phần mềm đặc thù cho một số ngành
nghề đặc biệt. Tuy nhiên, với Doanh nghiệp nhỏ và vừa, đây lại là giải pháp có một số
hạn chế nhất định nhƣ chi phí thuê hệ thống server và chi phí bản quyền phần mềm
nhƣ hệ điều hành, chƣơng trình điều khiển khá cao, và cần có đội ngũ IT chuyên
nghiệp riêng để tự quản trị và vận hành server vì nhà cung cấp sẽ giao quyền truy xuất
cao nhất (Root Access) của server cho Doanh nghiệp tự quản lý. Ngoài ra Doanh
nghiệp có điều kiện tài chính và kỹ thuật có thể tự mua server rồi thuê dịch vụ Co-
Location (đặt chỗ) để đặt server ngay tại trung tâm dữ liệu (data center) của nhà cung
2
cấp để khai thác. Giải pháp này tận dụng đƣợc cơ sở hạ tầng, mạng trục có sẵn của nhà
cung cấp.
Các nhà cung cấp server tại Việt Nam hiện nay cũng đã đƣa ra nhiều lựa chọn
hơn cho khách hàng khi lựa chọn các cấu hình server khác nhau, phù hợp với khả năng
tài chính cũng nhƣ nhu cầu thực tế. Server đặt tại các data center trong nƣớc hiện nay
là lựa chọn ƣu tiên vì tốc độ truy xuất và hỗ trợ trực tiếp cao hơn so với việc thuê các
server ở nƣớc ngoài.
Hình 1. Sơ đồ ứng dụng Virtual Private Server
Nguồn:
1.1.3. Sử dụng máy chủ riêng ảo (Virtual Private Server)
Virtual Private Server (VPS) là một công nghệ rất mới tại Việt Nam. Có thể hiểu
VPS nhƣ một giải pháp dung hòa giữa Shared Hosting và Dedicated Server theo cả
nghĩa chi phí và cách thức vận hành. VPS hoạt động với phần tài nguyên đƣợc chia sẻ
theo từng phân vùng khác nhau trên một Hardware Node (máy chủ vật lý gốc) nhƣng
hoàn toàn độc lập nhƣ một Dedicated Server, có hệ điều hành và trình quản trị riêng,
không chịu ảnh hƣởng của các VPS khác cùng Hardware Node và ngƣợc lại. Doanh
nghiệp sử dụng VPS cũng có quyền cao nhất (Root Access) để quản trị hệ thống một
3
cách toàn diện nhất, tùy ý cài đặt, vận hành các phần mềm bất kỳ lên VPS, trong khi
đây là điều bị hạn chế, thậm chí cấm kỵ đối với dịch vụ Shared Hosting, hình 1 ở trên
mô phỏng sơ đồ ứng dụng máy chủ riêng ảo.
Với đặc điểm trên, VPS trở thành giải pháp phù hợp hơn cho Doanh nghiệp vừa
và nhỏ, nổi bật ở khả năng tiết kiệm chi phí (thƣờng là 1/2 so với Dedicated Server).
Một ƣu điểm lớn nữa của VPS là khi muốn nâng cấp tài nguyên hoặc gặp sự cố mà hệ
thống cần tái tạo (Reload) lại hệ điều hành thì có thể thực hiện rất nhanh mà hoàn toàn
không mất thời gian cài đặt lại từ đầu. Các nguy cơ về hacking đƣợc giảm tối đa, nhất
là các Doanh nghiệp không có đội ngũ IT riêng có thể thuê nhà cung cấp quản trị VPS
cho mình và có thể khóa hết các đƣờng truy cập nhạy cảm, chỉ mở vào từ Hardware
Node của nhà cung cấp.
Công nghệ VPS đƣợc phát triển từ khá lâu trên thế giới và chia thành nhiều hệ
khác nhau (có phí và miễn phí) nhƣ: SWsoft Virtuozzo (Linux/Windows), OpenVZ
(Linux), Linux-Vserver (Linux), VMWare (Windows), MS Virtual Server (Windows),
FreeVPS (Linux), freeBSD Jail (freeBSD)… Tại Việt Nam hiện nay chƣa có nhiều
công ty cung cấp giải pháp này vì nhu cầu của doanh nghiệp chƣa cao.
1.1.4. Bài toán ảo hóa máy chủ lƣu trữ
Các doanh nghiệp muốn tiết kiệm chi phí và nâng cao hiệu quả đầu tƣ cho hệ
thống máy chủ nên bài toán đặt ra ở đây là lựa chọn một giải pháp hoàn chỉnh đảm bảo
đƣợc các yêu cầu của doanh nghiệp đối với hệ thống máy chủ lƣu trữ của mình. Giải
pháp đƣợc lựa chọn trong 3 giải pháp trên đó là sử dụng máy chủ riêng ảo (VPS).
1.2. Ý nghĩa của bài toán ảo hóa
1.2.1. Tận dụng hiệu quả tài nguyên của hệ thống
Ngày nay, hệ thống máy chủ ở các trung tâm dữ liệu thƣờng hoạt động với 10
hoặc 15% tổng hiệu suất. Nói cách khác, 85% hoặc 90% công suất của máy không
đƣợc dùng đến. Tuy nhiên, một máy chủ dùng chƣa hết công suất vẫn chiếm diện tích
sử dụng và hao tổn điện năng, vì vậy chi phí hoạt động của một máy không đƣợc sử
dụng đúng mức có thể gần bằng với chi phí khi chạy hết công suất. Nhƣ vậy, quả thật
là đang lãng phí các tài nguyên của cả hệ thống. Hãy xem điều gì sẽ xảy ra? Với sự
không ngừng cải tiến các đặc điểm hoạt động của phần cứng máy tính, máy tính trong
năm tới sẽ có công suất gấp đôi máy tính của năm nay (đây là tƣơng lai có thể thấy
trƣớc đƣợc). Hiển nhiên, phải có một cách nào đó hữu hiệu hơn để công suất của làm
4
việc của máy tƣơng ứng với tỷ lệ sử dụng và đó là những gì mà ảo hóa có thể làm
đƣợc – bằng việc dùng một phần cứng duy nhất để hỗ trợ cùng một lúc nhiều hệ thống.
Ứng dụng ảo hóa, các công ty có thể nâng cao đáng kể hiệu suất sử dụng phần cứng và
sử dụng vốn hiệu quả hơn. Vì vậy, đây chính là lý do tại sao ảo hóa giúp nâng cao
công suất của máy tính lại khiến mọi ngƣời quan tâm đến vậy.
Ví dụ hệ thống đang có 3 Server đƣợc mô phỏng nhƣ hình 2 có sức mạnh nhƣ
nhau với vai trò : 1 server chạy Domain Controller, 1 server chạy DNS ,1 server chạy
Web Server.
Hình 2. Hệ thống gồm 3 server
Nguồn:
Admin-c%E1%BA%A7n-quan-t%C3%A2m-%C4%91%E1%BA%BFn-
%E1%BA%A2o-H%C3%B3a?s=005993230b25705697c41a2bc881c51c
Có thể nhận thấy rằng hệ thống đang không tận dụng hết hiệu năng của ba máy
chủ của mình, chúng chỉ chạy ở mức 30% thậm chí ít hơn đối với DNS Server. Giả sử
mua một máy chủ phiến mỏng Blade của IBM có công năng mạnh hơn một trong ba
máy chủ trên. Và hệ thống sử dụng công nghệ ảo hóa để tạo ra 03 máy ảo trên máy
chủ Blade này giống nhƣ mô phỏng ở hình 3. Nhƣ vậy các với một máy chủ mạnh hơn
một chút so với mô hình cũ hệ thống đã tiết kiệm đƣợc chi phí cho việc đầu tƣ máy
chủ cũng nhƣ điện năng, chi phí vận hành bảo dƣỡng.
5
Hình 3. Hệ thống chỉ có một máy chủ được ảo hóa thành 3 máy ảo
Nguồn:
Admin-c%E1%BA%A7n-quan-t%C3%A2m-%C4%91%E1%BA%BFn-
%E1%BA%A2o-H%C3%B3a?s=005993230b25705697c41a2bc881c51c
1.2.2. Đáp ứng nhu cầu lƣu trữ dữ liệu
Các trung tâm dữ liệu đang dùng hết dung lƣợng của mình. Trong 20 năm qua,
các tài liệu kinh doanh đã và đang đƣợc chuyển từ dạng giấy tờ sang dạng điện tử. Đây
là quá trình số hóa tài liệu. Sự xuất hiện của Internet đã thúc đẩy nhanh hơn nữa sự
chuyển biến này. Các công ty muốn trao đổi trực tiếp với khách hàng và đối tác qua
Internet. Đƣơng nhiên, việc này thúc đẩy việc các tài liệu kinh doanh đƣợc vi tính hóa.
Trong một thấp kỷ qua, ảnh hƣởng của Internet khiến một số lƣợng lớn các máy chủ
đƣợc đồng loạt đƣa vào sử dụng tại các trung tâm dữ liệu để lƣu trữ hệ thống tài liệu khổng
lồ này và vấn đề của nó là: khả năng lƣu trữ của cac trung tâm dữ liệu này đang cạn kiệt và
sự gia tăng nhanh chóng dữ liệu đòi hỏi phƣơng pháp lƣu trữ dữ liệu mới. Những phƣơng
pháp này thƣờng đƣợc gọi là ảo hóa lƣu trữ, nhƣ có thể đoán đƣợc có nghĩa là việc lƣu trữ
này có khả năng đƣợc xử lý bởi bất kỳ một phần cứng độc lập nào.
Với khả năng host cùng lúc các hệ thống khách trên một máy chủ vật lý duy nhất,
ảo hóa cho phép các công ty nâng cấp trung tâm dữ liệu, do đó cắt giảm chi phí mở
rộng dung lƣợng trung tâm dữ liệu. Đây là lợi ích lớn nhất của ảo hóa, vì chi phí xây
dựng các trung tâm dữ liệu có thể lên tới hàng chục triệu đôla.
1.2.3. Giảm chi phí quản lý hệ thống
Các máy không hoàn toàn tự hoạt động. Mỗi máy chủ đều cần đến sự giám sát và
cung cấp điện của hệ thống quản lý. Các tác vụ quản lý phổ biến của hệ thống bao
6
gồm: giám sát trạng thái của phần cứng; thay thế các chi tiết phần cứng bị lỗi; cài đặt
hệ điều hành và phần mềm ứng dụng; bảo trì và sửa chữa nhanh ứng dụng; quản lý các
tài nguyên máy chủ then chốt nhƣ bộ nhớ và đĩa; và sao lƣu dữ liệu máy chủ sang các
phƣơng tiện lƣu trữ để bảo mật và dự phòng.
Những công việc này đòi hỏi rất nhiều nhân lực. Để thuê những nhân viên quản
trị hệ thống - ngƣời giữ cho các máy có thể hoạt động tốt - không hề rẻ chút nào. Và
không giống nhƣ các lập trình viên, các nhân viên quản trị hệ thống thƣờng làm việc
bên cạnh máy chủ, do họ cần xử lý phần cứng vật lý.
Để kiểm soát sự gia tăng chi phí điều hành, ảo hóa mang lại cơ hội cắt giảm chi
phí quản lý hệ thống bằng việc giảm số lƣợng máy tính cần đƣợc quản trị. Mặc dù,
nhiều công việc liên quan đến quản lý hệ thống (hệ điều hành và ứng dụng, sao lƣu dự
phòng) không thể thay đổi trong một môi trƣờng đƣợc ảo hóa, rất nhiều tác vụ không
cần phải thực hiện nếu các máy chủ vật lý chuyển sang ảo hóa. Nói chung, ảo hóa có
thể giảm thiểu phần lớn các yêu cầu quản lý. Do đó, ảo hóa trở thành sự lựa chọn tuyệt
vời để giải quyết vấn đề tăng chi phí thuê nhân viên điều hành.
1.2.4. Tiết kiệm năng lƣợng và giảm ô nhiễm môi trƣờng
Tác động của cuộc cách mạng xanh khiến các công ty đang tìm cách giảm lƣợng
năng lƣợng tiêu thụ - và một trong số những nơi họ nhận thấy có thể làm đƣợc điều đó
đầu tiên là các trung tâm dữ liệu. Để thấy rõ sự quan tâm của mọi ngƣời đến lƣợng
năng lƣợng tiêu thụ trong các trung tâm dữ liệu, hãy xem xét thực tế sau: “Một cuộc
nghiên cứu do một nhà khoa học thực hiện chỉ ra rằng trong những năm 2000 đến năm
2005, lƣợng năng lƣợng các trung tâm dữ liệu ở Mỹ tiêu thụ tăng đã gấp đôi. Hơn nữa,
nhà khoa học này cũng dự đoán tới cuối thập niên này, lƣợng năng lƣợng tiêu thụ sẽ
tăng 40%. Lƣợng năng lƣợng các máy chủ ở trung tâm dữ liệu tiêu thụ và để làm mát
chiếm khoảng 1,2% tổng năng lƣợng tiêu thụ ở Mỹ. Dựa trên kết quả của cuộc nghiên
cứu, Cơ quan bảo vệ môi trƣờng Hoa Kỳ (EPA) đã thành lập một nhóm làm việc để
xây dựng các tiêu chuẩn cho các kế hoạch và việc tiêu thụ năng lƣợng của máy chủ và
áp dụng các tiêu chí “Ngôi sao năng lƣợng” (ES) mới cho các máy chủ sử dụng năng
lƣợng hiệu quả.
Do chi phí để vận hành các máy tính cùng với thực tế là nhiều máy tính choán hết
trung tâm dữ liệu và đang hoạt động với hiệu suất thấp, khả năng giảm số lƣợng máy
chủ vật lý có thể giúp cắt giảm rất đáng kể tổng chi phí năng lƣợng của các công ty.
7
CHƢƠNG 2. CÁC ỨNG DỤNG ẢO HÓA PHỔ BIẾN
Một số ứng dụng phổ biến nhất của ảo hóa tập trung xung quanh khái niệm: ảo
hóa là sự trừu tƣợng hóa các tài nguyên vật lý. Thực tế là có nhiều phƣơng pháp ảo
hóa nhƣng hai phƣơng pháp ảo hóa đƣợc ứng dụng nhiều nhất trong các trung tâm dữ
liệu là ảo hóa máy chủ và ảo hóa lƣu trữ. Trong mỗi phƣơng pháp ảo hóa, có cái hay
và phƣơng pháp riêng của mình, mỗi phƣơng pháp đều có ƣu và nhƣợc điểm riêng.
2.1. Ảo hóa máy chủ
Có 3 phƣơng pháp ảo hóa máy chính: ảo hóa hệ điều hành; mô phỏng phần cứng;
và paravirtualization (tạm gọi ảo hóa song song), một khái niệm tƣơng đối mới phân
chia thành các khối lƣợng công việc nhỏ hơn và hoạt động tốt hơn.
2.1.1. Ảo hóa hệ điều hành
Một hệ điều hành đƣợc vận hành ngay trên một hệ điều hành chủ đã tồn tại và có
khả năng cung cấp một tập hợp các thƣ viện tƣơng tác với các ứng dụng, khiến cho
mỗi ứng dụng khác đƣợc hỗ trợ cảm thấy nhƣ đang chạy trên một máy chủ vật lý. Từ
phối cảnh của ứng dụng, nó đƣợc nhận thấy và tƣơng tác với các ứng dụng chạy trên
hệ điều hành ảo, và tƣơng tác với hệ điều hành ảo mặc dù nó kiểm soát tài nguyên hệ
điều hành ảo. Nói chung, không thể thấy các ứng dụng này hoặc các tài nguyên hệ điều
hành đặt trong hệ điều hành ảo khác.
Phƣơng pháp ảo hóa này đặc biệt hữu dụng nếu muốn mang lại cho cộng đồng
ngƣời sử dụng khác nhau các chức năng khác nhau của hệ thống trên một một máy chủ
duy nhất. Đây là một phƣơng pháp lý tƣởng cho các công ty máy chủ Web: Họ sử
dụng ảo hóa container (OS ảo) để khiến cho một trang Web chủ “tin rằng” trang web
này kiểm soát toàn bộ máy chủ. Tuy nhiên, trên thực tế mỗi trang Web chủ chia sẻ
cùng một máy với các trang Web khác, mỗi trang Web này lại có một container riêng.
Ảo hóa hệ điều hành yêu cầu rất ít tài nguyên hệ thống, do đó bảo đảm hầu hết
tài nguyên máy sẵn có cho các ứng dụng chạy trên container. Tuy nhiên, ảo hóa hệ
điều hành vẫn có một số nhƣợc điểm. Nhƣợc điểm đầu tiên và lớn nhất là phƣơng
pháp này thƣờng giới hạn sự lựa chọn hệ điều hành. Sự container hóa nghĩa là các
container cung cấp một hệ điều hành tƣơng tự nhƣ hệ điều hành chủ và thậm chí thống
nhất về phiên bản và các bản vá lỗi.
Có thể tƣởng tƣợng, có thể xảy ra vấn đề nếu muốn chạy các ứng dụng khác nhau
trên các container, do các ứng dụng thƣờng đƣợc chứng thực cho một phiên bản hệ
8
điều hành và các bản vá lỗi. Do đó, ảo hóa hệ điều hành thích hợp nhất với cấu hình
thuần nhất, trong các tình huống này ảo hóa hệ điều hành là sự lựa chọn hoàn hảo.
2.1.2. Mô phỏng phần cứng
Trong phƣơng pháp mô phỏng phần cứng, phần mềm dùng để ảo hóa (thƣờng
đƣợc biết đến là một hypervisor) trình diễn một môi trƣờng phần cứng đƣợc mô phỏng
mà các hệ điều hành khách hoạt động trên đó. Môi trƣờng phần cứng đƣợc mô phỏng
này thƣờng ám chỉ phần mềm điều khiển máy ảo hay VMM (Virtual Machine
Monitor).
VMM tạo ra một môi trƣờng phần cứng đƣợc chuẩn hóa trên đó hệ điều hành
khách cƣ trú và tƣơng tác. Do hệ điều hành máy khách và VMM tạo ra một gói thống
nhất, gói này có thể đƣợc chuyển từ máy này sang máy khác, mặc dù các cấu hình vật
lý của hệ thống mà gói này chạy trên đó có thể khác. Hypervisor cƣ trú giữa VMM và
phần cứng vật lý chuyển yêu cầu tài nguyên từ VMM sang máy chủ vật lý.
Phƣơng pháp ảo hóa này đƣợc hiểu là các ứng dụng chạy trên một hệ điều hành
khách hoàn toàn biệt lập với ít nhất một hệ điều hành khách đang hoạt động, một hệ
điều hành chạy trên mỗi VMM. Các VMM đều lƣu trú trên một hypervisor ảo. Phƣơng
pháp này không chỉ hỗ trợ nhiều hệ điều hành, nó còn hỗ trợ nhiều hệ điều hành khác
nhau. Những hệ điều hành này có thể khác nhau về phiên bản thậm chí là các hệ điều
hành hoàn toàn khác nhƣ Windows và Linux có thể chạy đồng thời trên phần mềm ảo
hóa phần cứng.
Ảo hóa phần cứng đƣợc sử dụng rộng rãi trong ngành phát triển phần mềm và
bảo đảm chất lƣợng (QA - Quality Assurance), vì nó cho phép các hệ điều hành khác
nhau chạy đồng thời trên một máy. Điều này cho phép phát triển song song hoặc thử
nghiệm phần mềm ở nhiều môi trƣờng hệ điều hành khác nhau. Mô phỏng phần cứng
cũng đƣợc dùng để hợp nhất máy chủ, ở đó các môi trƣờng ứng dụng hoặc hệ điều
hành đƣợc copy và chuyển từ nhiều máy chủ vật lý riêng rẽ sang một máy chủ vật lý
duy nhất chạy phần mềm ảo.
Một trong những nhƣợc điểm của việc mô phỏng phần cứng là nó ảnh hƣởng đến
khả năng hoạt dộng của hệ thống điều này khiến cho các ứng dụng trên các máy ảo
chạy chậm hơn bình thƣờng.
Một nhƣợc điểm khác là phần mềm ảo hóa xuất hiện trƣớc hệ điều hành khách
trong một giao diện phần cứng đƣợc tiêu chuẩn hóa (VMM). Hypervisor mang đến
cho VMM một giao diện, sau đó chuyển thành các yêu cầu đối với các tài nguyên vật
9
lý thực trên máy. Nghĩa là hypervisor phải giữ các giao diện cho các tài nguyên của
máy; các tài nguyên này đƣợc gọi là các trình điều khiển thiết bị. Nếu từng lắp đặt
phần cứng mới trên máy tính cá nhân, thì việc phải làm thƣờng xuyên cài đặt một trình
điều khiển thiết bị lên hệ điều hành, do đó phần mềm này và hệ điều hành có thể giao
tiếp. Vấn đề của trình điều khiển thiết bị đối với mô phỏng phần cứng đó là hypervisor
đã có các trình điều khiển và ngƣời sử dụng không thể cài đặt các trình điều khiển mới
(không giống nhƣ trên máy tính cá nhân).
Do đó, nếu một máy có tài nguyên phần cứng và hypervisor không có trình điều
khiển, phần mềm ảo hóa không thể chạy trên máy. Điều này có thể gây vấn đề, đặc
biệt cho các công ty muốn sử dụng các phần cứng mới.
Các công ty cung cấp phần mềm ảo hóa mô phỏng phần cứng gồm có VMWare
(ở hai phiên bản VMWare Server và ESX Server) và Microsoft. Microsoft cung cấp
một sản phẩm đƣợc gọi là Virtual Server. VMWare chỉ hỗ trợ các máy chủ x86, đặc
biệt là Hệ điều hành Microsoft. Phần mềm Virtual Server của Microsoft đƣợc dự đoán
là sẽ bị Hyper-V thay thế, phần mềm này đƣợc biết đến là một phần của Microsoft
Windows Server 2008. Một phần mềm khác đó là Xen, phần mềm thay thế nguồn mở
dựa trên hypervisor.
2.1.3. Ảo hóa song song
Là một phƣơng pháp ảo hóa máy chủ khác. Với phƣơng pháp ảo hóa này, thay vì
mô phỏng một môi trƣờng phần cứng hoàn chỉnh, phần mềm ảo hóa này là một lớp
mỏng dồn các truy cập các hệ điều hành máy chủ vào tài nguyên máy vật lý cơ sở.
Phƣơng pháp ảo hóa này có hai ƣu điểm. Thứ nhất, giảm chi phí hoạt động do số
lƣợng mã rất ít. Mô phỏng phần cứng chèn toàn một lớp mô phỏng phần cứng giữa hệ
điều hành chủ và phần cứng vật lý. Ngƣợc lại, lớp phần mềm mỏng của
paravirtualization hoạt động giống một cảnh sát giao thông hơn, nó cho phép một hệ
điều hành chủ truy cập các tài nguyên vật lý của phần cứng, đồng thời ngăn không cho
các hệ điều hành chủ khác truy cập các nguồn tài nguyên đó.
Ƣu điểm thứ hai của paravirtualization so với mô phỏng phần cứng là
paravirtualization không giới hạn các trình điều khiển thiết bị trong phần mềm ảo hóa;
thực tế là paravirtualization không hề có các trình điều khiển thiết bị. Thay vào đó, nó
sử dụng các trình điều khiển thiết bị có trong một hệ điều hành chủ, gọi là máy chủ đặc
quyền. Ở đây, khóa luận không đi sâu về mặt kiến trúc, chỉ cần hiểu rằng đây là một
ƣu thế, vì nó cho phép các công ty tận dụng hiệu suất phần cứng các máy chủ, chứ
10
không bị giới hạn phần cứng mà các trình điều khiển phải sẵn có trong phần mềm ảo
hóa này nhƣ trong ảo hóa mô phỏng phần cứng.
Tuy nhiên, phƣơng pháp ảo hóa này cũng có một nhƣợc điểm lớn: Do ít quan
trọng và dồn truy cập vào một phần cứng cơ sở, paravirtualization yêu cầu các hệ điều
hành chủ phải đƣợc thay đổi để tƣơng tác với giao diện paravirtualization. Công việc
này chỉ có thể đƣợc thực hiện khi truy cập mã nguồn của hệ điều hành.
Do đó, nhƣợc điểm này sẽ đƣợc giảm thiểu khi sử dụng các máy chủ có các con
chip mới trong cơ sở hạ tầng sản xuất. Một ví dụ của paravirtualization là một sản
phẩm nguồn mở mới đƣợc gọi là Xen, đƣợc công ty thƣơng mại XenSource bảo trợ.
Xen cũng xuất hiện trong các nguồn phân phối Linux gần đây từ Red Hat và Novell,
và có trong nhiều nguồn phân phối cộng đồng Linux nhƣ Debian và Ubuntu.
XenSource cũng tự bán các sản phẩm dựa trên Xen. Một phần mềm tiềm năng khác là
Virtual Iron, một giải pháp dựa trên Xen.
2.1.4. Ảo hóa lƣu trữ
Số lƣợng các công ty phát triển và lƣu trữ dữ liệu tăng ngày càng nhanh. Do sự
chuyển dịch các chu trình kinh doanh sang các ứng dụng số dựa trên Web, các công ty
đang bị chìm ngập trong biển dữ liệu. Việc tăng quá nhanh dữ liệu đang gây ra vấn đề
cho nhiều công ty.
Thứ nhất, do dung lƣợng lƣu trữ nhỏ, nhiều ứng dụng đã tạo ra quá nhiều dữ liệu
hơn khả năng lƣu trữ vật lý trên một máy chủ. Thứ hai, nhiều ứng dụng, đặc biệt
những ứng dụng dựa trên Internet, có nhiều máy cần truy cập cùng dữ liệu. Tất cả các
dữ liệu trì hoãn trên một máy có thể gây ra sự tắc nghẽn, đó là không đề cập đến nguy
cơ các máy chủ có thể không hoạt động nếu một máy chủ chứa toàn bộ các dữ liệu của
ứng dụng bị hỏng. Cuối cùng, sự bùng nổ các máy mà đã đƣợc nhắc đến trong trong
phần trƣớc của chƣơng này có thể gây ra các vấn đề về sao lƣu; nói cách khác, sao
chép dữ liệu là nhiệm vụ không tƣởng khi có hàng trăm nghìn máy cần đƣợc sao lƣu
dữ liệu.
Vì những lý do này, dữ liệu cũng đƣợc ảo hóa. Các công ty sử dụng phƣơng pháp
lƣu trữ tập trung (lƣu trữ ảo hóa) nhƣ một biện pháp tránh các vấn đề truy cập dữ liệu.
Hơn nữa, chuyển sang lƣu trữ dữ liệu tập trung có thể giúp các công ty CNTT giảm chi
phí và tăng hiệu quả quản lý dữ liệu.
11
2.2. Vai trò của phần cứng
Mặc dù ảo hóa là một công nghệ phần mềm, tác động của ảo hóa là khiến phần
cứng trở nên càng quan trọng hơn. Đó là do việc tháo dỡ rất nhiều máy chủ và dịch
chuyển các hệ điều hành đến các máy ảo khiến các máy chủ còn lại, những máy mà hỗ
trợ tất cả các máy ảo đó, trở nên quan trọng hơn bao giờ hết.
Mặc dù, các công ty CNTT có thể chấp nhận các máy chủ riêng rẽ trong môi
trƣờng “một ứng dụng, một máy chủ” bị hỏng bởi mỗi lỗi hệ thống sẽ ảnh hƣởng đến
một nhóm ngƣời sử dụng, ảo hóa thì hoàn toàn khác. Mỗi máy chủ hỗ trợ nhiều máy
ảo và nhiều ứng dụng của ngƣời sử dụng. Nếu một máy chủ ảo hóa gặp sự cố, nó sẽ
gây ảnh hƣởng đến nhiều ứng dụng và toàn bộ ngƣời sử dụng các ứng dụng đó.
Phần cứng sẽ chỉ trở nên quan trọng hơn khi một phần cứng mới và sẵn sàng để
ảo hóa xuất hiện trên thị trƣờng. Các nhà sản xuất phần cứng đang tạo ra những khả
năng ảo hóa có tầm quan trọng lớn, vì vậy đừng xem nhẹ tầm quan trọng của phần
cứng trong cấu trúc hạ tầng ảo hóa. Do vậy, khi ứng dụng phần mềm ảo hóa, một tác
động không ngờ là phần cứng mới trở nên ngày càng quan trọng hơn.
12
CHƢƠNG 3. HỆ THỐNG MÁY ẢO OPENVZ
OpenVZ là hệ thống máy ảo sử dụng phƣơng pháp ảo hóa hệ điều hành dựa trên
nhân Linux và hệ điều hành. OpenVZ cho phép một máy chủ vật lý chạy nhiều hành
độc lập gọi là Containers. OpenVZ hỗ trợ nhiều nền tảng vi xử lý hơn là các bản luân
phiên. VMware Server và Xen có thể dùng đƣợc cho dòng x86, AMD 64; còn
OpenVZ đƣợc chấp nhận ở dòng x86, AMD64, Itanium (IA64), PowerPC, và
UltraSPARC. Chú ý là hiện nay chƣa có các kernel (nhân hệ điều hành) PowerPC xây
dựng trƣớc cho Debian, nhƣng OpenVZ đƣợc hỗ trợ trên PowerPC.
3.1. Cài đặt OpenVz
3.1.1. Cài đặt và cấu hình hệ điều hành chủ trên máy tính
a. Lựa chọn hệ điều hành
Có thể chạy OpenVZ trên bất kỳ hệ thống host nào. Có thể lựa chọn Ubuntu,
Fedora Core, RedHat, CentOS, Gentoo hoặc bất kỳ bản phân phối nào khác với mẫu
hệ điều hành (OS template) đi kèm. Khi cài đặt các bản phân phối nên chọn phiên bản
cài cho Server.
b. Phân vùng ổ đĩa
Khi phân vùng cho ổ đĩa không nên chọn phân vùng tự động mà nên chọn chế độ
phân vùng bằng tay và nên thiết lập các phân vùng nhƣ sau
Phân vùng Kích thƣớc phân vùng
/ 2 – 4 GB
swap = 2 lần dung lƣợng bộ nhớ RAM
/vz toàn bộ phần còn lại của đĩa cứng
Tiến hành chia các phân vùng theo nhƣ hình 4 bên dƣới:
13
Hình 4. Phân vùng ổ đĩa khi cài hệ điều hành chủ
Nguồn:
Theo khuyến cáo ở đây nên sử dụng một phân vùng riêng biệt cho các thƣ mục
chứa máy chủ ảo và các bản cài đặt (theo mặc định /vz /private/ ). Lý do làm
nhƣ vậy là nếu muốn sử dụng hạn ngạch đĩa trên OpenVZ, sẽ không thể sử dụng hạn
ngạch đĩa thông thƣờng Linux trên phân vùng đó.
c. Kết thúc cài đặt
Sau khi phân vùng quá trình cài đặt đƣợc tiếp tục tới khi hoàn thành, sau đó tới
phần thiết lập mạng và tƣờng lửa, cần thiết lập đúng địa chỉ IP, submark, default
gateway và DNS hoặc để cấu hình mặc định theo DHCP. Khi cấu hình tƣờng lửa
(Firewall) chọn No Firewall hoăc để chế độ Disable. Sau khi kết thúc quá trình này thì
khởi động lại máy và chuẩn bị cài đặt phần mềm OpenVZ
3.1.2. Cài đặt phần mềm OpenVZ
a. Lựa chọn phương án cài đặt
Trong trƣờng hợp có sẵn tiện ích yum thì nên chƣa chọn phƣơng án này để tiện
cho việc cài đặt và cập nhật thƣờng xuyên. Nếu hệ điều hành không có sẵn tiện ích này
thì chyển sang cài đặt bằng rpm, trong trƣờng hợp này phải tải gói cài đặt của OpenVZ
về và cài bằng tay.
14
b. Thiết lập trước khi sử dụng yum
Trƣớc khi sử dụng yum cần cài đặt kho OpenVZ. Tải về file openvz.repo tập tin
và đặt nó vào thƣ mục /etc/yum.repos.d/. Điều này có thể đƣợc thực hiện bằng các
lệnh sau, thực thi với quyền root:
# cd /etc/yum.repos.d
# wget
# rpm --import
Trong trƣờng hợp không mở đƣợc thƣ mục /etc/yum.repos.d/ có nghĩa là yum
không đƣợc cài đặt trên hệ thống và cần cài đặt nó vào trƣớc. Mặc định khi cài CentOS
phiên bản Server đã cài sẵn yum nên không cần cài nữa. Nếu trên Ubuntu thì phải cài
thêm yum hoặc lựa chọn lựa chọn phƣơng án cài đặt khác là tải file cài đặt OpenVZ về
và cài đặt.
c. Cài đặt nhân OpenVZ
Sử dụng yum
Thực thi lệnh sau với quyền root:
# yum install ovzkernel
Sử dụng rpm
Đầu tiên phải download bản cài đặt của OpenVZ tại địa chỉ
. Phiên bản mới nhất dành cho RedHat 5 là:
ovzkernel-2.6.18-164.10.1.el5.028stab067.4.i686.rpm
chạy trên các máy x86. Sau khi tải về xong, thực hiện cài đặt bằng lệnh sau với
quyền root:
# rpm -ihv ovzkernel-name*.rpm
Ở đây name* là tên phiên bản đƣợc tải về.
15
3.1.3. Cấu hình mục khởi động ( Boot loader)
Trong trƣờng hợp GRUB đƣợc dùng nhƣ là bộ nạp khởi động, nó sẽ đƣợc cấu
hình tự động file /boot/grub/grub.conf sẽ xuất hiện thêm những dòng có nội dung
tƣơng tự nhƣ sau:
title CentOS (2.6.18-164.10.1.el5.028stab067.4)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-164.10.1.el5.028stab067.4 ro
root=LABEL=/
initrd /boot/initrd-2.6.18-164.10.1.el5.028stab067.4.img
Vì lúc này trong mục khởi động sẽ có 2 lựa chọn mà mặc định là khởi động
OpenVZ nên sẽ thay đổi CentOS bằng OpenVZ để tránh nhầm lẫn khi khởi động hệ
điều hành. Khi đó những dòng trên sẽ chuyển thành:
title OpenVZ (2.6.18-164.10.1.el5.028stab067.4)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-164.10.1.el5.028stab067.4 ro
root=LABEL=/
initrd /boot/initrd-2.6.18-164.10.1.el5.028stab067.4.img
3.1.4. Thiết lập các thông số khác
a. Thiết lập các thông số trong sysctl
Để OpenVZ làm việc chính xác cần thiết lập một số thông số, các thông số này
đƣợc lƣu trong file /etc/sysctl.conf. Các thông số dƣới đây cần đƣợc thiết lập, nếu chƣa
có thông số nào thì thêm vào cuối file:
# On Hardware Node we generally need
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
16
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Controls the System Request debugging functionality of the
kernel
kernel.sysrq = 1
# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Để các thiết lập trên có hiệu lực, thực thi lệnh sau:
# sysctl -p
b. Thiết lập SELinux
SELinux phải đƣợc vô hiệu hoá, để thực hiện việc này thì sửa file
/etc/sysconfig/selinux:
Trƣớc khi sửa
SELINUX=enforcing
Sau khi sửa
SELINUX=disabled
Sau khi thiết lập xong các thông số trên thì khởi động lại máy, chọn mục khởi
động là OpenVZ. Khởi động xong thì chuyển sang cài đặt các công cụ phục vụ cho
việc quản lý OpenVZ
17
3.1.5. Cài đặt các công cụ
Sau khi cài đặt thành công OpenVZ, tiếp tục cài đặt cái công cụ cho nó, nên cài
đặt các gói sau:
vzctl: gói này sử dụng để thực hiện các nhiêm vụ khác nhau trên máy chủ ảo
( VPS: Virtual Private Server) OpenVZ ( gồm tạo, xoá và thiết lập các thông
số khác)
vzquota: gói này sử dụng để quản lý hạn ngạch máy chủ ảo (VPS)
a. Sử dụng yum
Chỉ cần gõ lệnh sau là cả 2 gói trên sẽ đƣợc cài đặt:
# yum install vzctl vzquota
b. Sử dụng rpm
Nếu sử dụng rpm phải download 2 gói cài đặt này tại địa chỉ:
Sau đó chỉ việc gõ lệnh sau để cài đặt 2 gói trên:
# rpm -Uhv vzctl*.rpm vzquota*.rpm
Để khởi chạy OpenVZ, gõ lệnh sau:
# /etc/init.d/vz start
Sau khi chạy lệnh này từ OpenVZ sẽ tự khởi động các modun của nó, từ lần khởi
động tiếp theo việc này sẽ đƣợc thực hiện một cách tự động.
3.1.6. Cài đặt mẫu hệ điều hành
Một mẫu hệ điều hành là một bộ các gói cơ bản từ một số bản phân phối Linux sẽ
đƣợc cài vào VPS. Với OpenVZ, các bản phân phối khác nhau có thể cùng tồn tại trên
một máy chủ vật lý gốc nên nhiều mẫu hệ điều hành có thể cùng tồn tại.
Một mẫu hệ điều hành bao gồm các chƣơng trình hệ thống, thƣ viện và các kịch
bản cần thiết để khởi động và chạy hệ thống, cũng nhƣ một số ứng dụng cơ bản và tiệc
18
ích. Ứng dựng nhƣ một trình biên dịch hay một máy chủ SQL thƣờng không đƣợc đƣa
vào một mẫu hệ điều hành.
Mẫu hệ điều hành siêu dữ liệu là một tập hợp các tệp tin nhỏ chứa các thông tin
sau:
Danh sách các gói trong mẫu này
Vị trí chứa các gói
Kịch bản cần thiết để thực thi vào các giai đoạn khác nhau của bản cài đặt
Khoá GPG công cộng cần thiết để kiểm tra chữ ký của các gói
Các gói OpenVZ đặc biệt bổ sung
Ta có thể tạo ra một mẫu hệ điều hành lƣu trữ bằng cách sử dụng mẫu tiện ích và
mẫu hệ điều hành siêu dữ liệu thích hợp trên máy chủ vật lý gốc hiện tại. Quá trình
này là tự động và sẽ mất từ 10 phút tới vài giờ phụ thuộc vào tốc độ mạng và kết quả
mẫu lƣu trữ sẽ đƣợc cập nhật mới nhất.
a. Cài đặt các tiện ích mẫu
Ta cần phải cài đặt vào một vài gói dể có thể tao, cập hệ thống mẫu hệ điều hành
lƣu trữ. Sử dụng câu lệnh:
# yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib
b. Cài đặt mẫu hệ điều hành siêu dữ liệu
Để tạo một mẫu hệ điều hành lƣu trữ, cần phải lấy đƣợc các siêu dữ liệu để chọn
các mẫu hệ điều hành.
Để xem các mẫu có sẵn sử dụng câu lệnh:
# yum search vztmpl
Để cài đặt một số mẫu, sử dụng câu lệnh:
# yum install vztmpl-XXX [...]
19
c. Chạy vzpkgcache
Chạy tiện ích vzpkgcache, nó sẽ tạo hoặc cập nhật các bộ lƣu trữ của tất cả các
mẫu siêu dữ liệu tƣơng ứng đang tồn tại
# vzpkgcache
3.2. Thao tác trên máy chủ ảo (VPS)
3.2.1. Tạo và cấu hình máy chủ ảo mới
Trƣớc khi bắt đầu tạo một máy chủ ảo mới, nên:
Kiểm tra xem máy chủ vật lý gốc đã sẵn sàng hoạt động trên mạng chƣa, có
thể kết nối đến hoặc từ các máy khác. Nếu không máy chủ ảo sẽ không thể
đƣợc truy cập từ các máy tính khác
Kiểm tra xem có ít nhất một địa chỉ IP cho một máy chủ ảo và các địa chỉ
thuộc cùng một mạng với máy chủ vật lý gốc hoặc định tuyến tới máy chủ
ảo đã đƣợc thiết lập thông qua máy chủ vật lý gốc không.
Để tạo một máy chủ ảo mới cần phải:
Lựa chọn một tài khoản máy chủ ảo mới
Lựa chọn mẫu hệ điều hành để sử dụng cho máy chủ ảo
Tạo máy chủ ảo chính nó
a. Lựa chọn tài khoản máy chủ ảo
Mỗi máy chủ ảo có một tài khoản dạng số hay còn gọi là số tài khoản của máy
chủ ảo liên kết với nó. Tài khoản là một số nguyên 32 bit bắt đầu bằng số 0 và duy
nhất cho máy chủ vật lý gốc. Khi lựa chọn cần đảm bảo hai điều sau:
Tài khoản 0 đƣợc sử dụng cho chính máy chủ vật lý gốc đó vì vậy không
nên mà cũng không thể tao máy chủ ảo có số tài khoản là 0.
OpenVZ lƣu trữ các tài khoản khác nhau từ 0 tới 100, mặc dù OpenVZ chỉ
sử dụng tài khoản 0, phiên bản khác nhau có thể thêm máy chủ ảo cho nhu
cầu nội bộ. Để tạo điều kiện cho việc nâng cấp, nên tạo những máy chủ ảo
có số tài khoản lớn hơn 101.
Để chắc chắn trƣớc khi lựa chọn số tài khoản máy chủ ảo, nên kiểm tra xem nó
đã tồn tại chƣa bằng cách sử dụng câu lệnh:
20
# vzlist -a 101
Container (s) not found
Nếu nó hiện thông báo trên nghĩa là số tài khoản 101 chƣa tồn tại và có thể chọn
101 làm số tài khoản máy chủ ảo.
b. Lựa chọn mẫu hệ điều hành
Tiếp theo, chọn mẫu hệ điều hành làm cơ sở cho máy chủ ảo mới. Có thể có một
số mẫu hệ điều hành đã đƣợc cài đặt trên máy chủ vật lý gốc, sử dụng lệnh vzpkgls để
hiện thị các mẫu hệ điều hành đƣợc cài đặt trên hệ thống:
# vzpkgls
centos-4-i386-default
centos-4-i386-minimal
c. Tạo máy chủ ảo
Sau khi số tài khoản máy chủ ảo và mẫu hệ điều hành, có thể tạo máy chủ ảo khu
vực tƣ nhân với lệnh vzctl create. Khu vực tƣ nhân là thƣ mục chứa các tệp tin riêng
của máy chủ ảo đã định, nó đƣợc gắn vào thƣ mục /vz/root/vpsid/ trên máy chủ vật lý
gốc và cung cấp máy chủ ảo ngƣời dùng với một cây hệ thống tệp tin hoàn chỉnh.
Lệnh vzctl create chỉ yêu cầu tham số là số tài khoản máy chủ ảo và tên của mẫu
hệ điều hành, tuy nhiên để tránh cài đặt tất cả các thông số máy chủ ảo kiểm soát tài
nguyên sau khi tạo khu vực tƣ nhân, có thể chỉ định một cấu hình mẫu đƣợc sử dụng
cho các máy chủ ảo mới. Các tệp tin cấu hình mẫu đƣợc lƣu trong thƣ mục
/etc/sysconfig/vz-scripst và có tên là ve-config_name.conf-sample. Mẫu đƣợc sử dụng
phổ biến nhất là tệp tin ve-vps.basic.conf-sample, mẫu này chứa các tham số điều
khiển thích hợp cho hầu hết các trang web máy chủ ảo.
Do đó có thể tạo một máy chủ ảo mới bằng câu lệnh sau:
# vzctl create 101 --ostemplate centos-4-i386-minimal --config
vps.basic
Creating container private area (centos-4-i386-minimal)
Performing postcreate actions
21
Container private area was created
Kết quả là máy chủ ảo đƣợc tạo có số tài khoản là 101, khu vực tƣ nhân làm cơ
sở là mẫu hệ điều hành centos-4-i386-minimal và tệp tin cấu hình mẫu là ve-
vps.basic.conf-sample.
Ngoài ra có thể đƣa các tham số vào thông qua tệp tin cấu hình /etc/sysconfig/vz
nhƣ sau:
CONFIGFILE="vps.basic"
DEF_OSTEMPLATE="fedora-core-4"
Sau đó chỉ cần gõ thêm lệnh:
# vzctl create 101
để tạo máy chủ ảo với số tài khoản là 101
Về nguyên tắc, bây giờ đã sẵn sàng để bắt đầu tạo mới đƣợc máy chủ ảo. Tuy
nhiên, thông thƣờng cần đặt địa chỉ mạng IP của nó, tên máy, địa chỉ máy chủ DNS và
mật khẩu chủ trƣớc khi khởi chạy máy chủ ảo lần đầu tiên. Sau đây là các bƣớc thực
hiện các việc này.
3.2.2. Cấu hình máy chủ ảo
Cấu hình máy chủ ảo bao gồm một số nhiệm vụ sau
Thiết lập thông số khởi động cho máy chủ ảo
Thiết lập thông số mạng cho máy chủ ảo
Thiết lập tài khoản ngƣời dùng và mật khẩu
Cấu hình tham số chất lƣợng dịch vụ
Với tất cả những công việc này, sử dụng lệnh vzctl set
a. Thiết lập thông số khởi động
Các tuỳ chọn của lệnh vzctl set xác định các tham số khởi động là: onboot và
capability. Để máy chủ ảo 101 khởi động tự động khi máy chủ vật lý gốc khởi động thì
làm nhƣ sau:
22
# vzctl set 101 --onboot yes --save
Saved parameters for VPS 101
b. Thiết lập thông số mạng
Để có thể truy cập từ mạng, một máy chủ ảo đƣợc chỉ định một địa chỉ IP chính
xác và tên máy chủ, địa chỉ máy chủ DNS cũng phải đƣợc cấu hình. Ta thực thi các
lệnh sau:
# vzctl set 101 --hostname test101.my.org --save
Hostname for VPS set: test101.my.org
Saved parameters for VPS 101
# vzctl set 101 --ipadd 192.168.1.30 --save
Adding IP address(es): 192.168.1.30
Saved parameters for VPS 101
# vzctl set 101 --nameserver 192.168.1.1 --save
File resolv.conf was modified
Saved parameters for VPS 101
Các lệnh này chỉ định địa chỉ tên máy chủ ảo là test101.my.org, địa chỉ IP là
192.168.1.30 và thiết lập địa chỉ máy chủ DNS là 192.168.1.1. Cờ --save để lƣu tất cả
các tham số cho tệp tin cấu hình máy chủ ảo.
Ta có thể sử dụng các lệnh trên khi máy chủ ảo đang chạy, trong nếu không
muốn áp dụng các giá trị cố định, có thể bỏ qua tuỳ chọn --save và các giá trị đƣợc áp
dụng sẽ có giá trị cho tới khi tắt máy chủ ảo.
Để kiểm tra xem SSH đang chạy bên trong các máy chủ ảo, sử dụng lệnh vzctl
exec, cho phép thực hiện lệnh bất kỳ trong môi trƣờng máy chủ ảo.
# vzctl start 101
Container is already running
# vzctl exec 101 service sshd status
sshd (pid 9765) is running...
# vzctl exec 101 service sshd start
23
Starting sshd: [ OK ]
Nhƣ ở trên SSH đang chạy bình thƣờng.
c. Thiết lập mật khẩu tài khoản root cho máy chủ ảo
Mặc định, tài khoản root bị khoá trong máy chủ ảo vừa tạo ra, vì thế không thể
đăng nhập vào máy chủ ảo đƣợc, nó cần đƣợc tạo một tài khoản ngƣời dùng và thiết
lập mật khẩu cho tài khoản này hoặc mở khoá tài khoản gốc. Đơn giản nhất là gán mật
khẩu cho tài khoản root nhƣ sau:
# vzctl set 101 --userpasswd root:test
Nhƣ câu lệnh trên mật khẩu đƣợc gán cho tài khoản root là “test”, bây giờ có thể
đăng nhập vào máy chủ ảo thông qua SSH nhƣ là ngƣời chủ và quản lý nó theo cách
tƣơng tự nhƣ đang quản lý một máy tính Linux độc lập: cài đặt phần mềm, thêm ngƣời
dùng, thiết lập dịch vụ …
Mật khẩu sẽ đƣợc đặt bên trong máy chủ ảo trong tệp tin /etc/shadow ở dạng mã
hoá và không đƣợc lƣu trong tệp tin cấu hình VPS, do đó nếu nhƣ quên mật khẩu, phải
thiết lập lại nó. --userpasswd là lựa chọn duy nhất của lệnh vzctl set không đòi hỏi --
save, mật khẩu vẫn đƣợc thiết lập một cách bình thƣờng cho VPS.
3.2.3. Khởi động, dừng, khởi động lại và truy vấn trạng thái của VPS
Khi một VPS đƣợc tạo ra, nó có thể đƣợc khởi động, tắt nhƣ một máy tính thông
thƣờng, để khởi động VPS 101, sử dụng lệnh:
# vzctl start 101
Để kiểm tra trạng thái của một VPS sử dụng lệnh:
# vzctl status 101
CTID 101 exist mounted running
Nhƣ trên VPS 101 đang hoạt động, ngoài ra có thể dùng lệnh vzlist để kiểm tra
các thông tin khác của VPS:
# vzlist 101
24
VPSID NPROC STATUS IP_ADDR HOSTNAME
101 3 running 192.168.1.30 test.my.org
Còn một cách khác để kiểm tra trạng thái của VPS đó là hiển thị tệp tin
/proc/vz/veinfo, tệp tin này hiển thị tất cả VPS đang chạy trên máy chủ vật lý gốc, mỗi
dòng là một VPS đi kèm các thông tin của nó:
# cat /proc/vz/veinfo
101 0 3 192.168.1.30
0 0 97
Dòng cuối cùng tƣơng ứng với VPS có số tài khoản là 0, chính là máy chủ vật lý
gốc.
Để dừng một VPS sử dụng câu lệnh sau:
# vzctl stop 101
Stopping container ...
Container was stopped
Container is unmounted
# vzctl status 101
CTID 101 exist unmounted down
Nhƣ trên sau khi dừng VPS 101 trạng thái của nó chuyền sang “đã bị gỡ xuống”
Ta cũng có thể khởi động lại một VPS nhƣ một máy tình thông thƣờng bằng
lệnh:
# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
25
Adding IP address(es): 192.168.1.30
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: test101.my.org
File resolv.conf was modified
Container start in progress...
3.2.4. Xoá VPS
Ta có thể xoá một VPS không cần thiết nữa với lệnh vzctl destroy VPS_ID. Lệnh
này sẽ loại bỏ VPS khỏi khu vực tƣ nhân hoàn toàn, đặt lại tên cho tệp tin cấu hình
VPS và tệp lệnh thực thi bằng cách thêm .destroyed vào cuối tên của nó, nếu VPS
đang chạy cần phải dừng nó trƣớc rồi mới có thể xoá đƣợc:
# vzctl destroy 101
Container is currently running. Stop it first.
# vzctl stop 101
Stopping container ...
Container was stopped
Container is unmounted
# vzctl destroy 101
Destroying container private area: /vz/private/101
Container private area was destroyed
# ls /etc/sysconfig/vz-scripts/101.*
/etc/sysconfig/vz-scripts/101.conf.destroyed
# vzctl status 101
CTID 101 deleted unmounted down
Nếu không cần tệp tin sao lƣu *.destroyed có thể xoá chúng đi.
26
3.2.5. Chạy các lệnh trong VPS
Thông thƣờng một quản trị viên VPS thƣờng đăng nhập VPS thông qua mạng và
thực hiện lệnh trong VPS nhƣ trên bất kỳ máy Linux nào khác. Tuy nhiên có thể thực
thi các lệnh trong VPS bỏ qua các trình tự đăng nhập thông thƣờng nếu:
Không biết thông tin đăng nhập VPS và cần phải chạy một số lệnh để chẩn
đoán bên trong VPS để xác minh nó đang hoạt động.
Không xuất hiện VPS trên mạng truy cập, ví dự nhƣ ngƣời quản trị VPS có thể
đã vô tình áp dụng sai quy tắc tƣờng lửa hoặc chặn việc đăng nhập thông qua
SSH.
OpenVZ cho phép thực hiện lệnh trong VPS trong các trƣờng hợp này, sử dụng
lệnh vzctl exec VPS_ID để chạy một lệnh bên trong VPS với số tài khoản cho trƣớc.
Ta minh hoạ các lệnh nhƣ sau:
# vzctl exec 101 /etc/init.d/sshd status
sshd is stopped
# vzctl exec 101 /etc/init.d/sshd start
Starting sshd:[ OK ]
# vzctl exec 101 /etc/init.d/sshd status
sshd (pid 17572) is running...
Bây giờ có thể sử dụng SSH để đăng nhập vào VPS.
3.3. Quản lý template
Một mẫu là cơ bản một bộ các gói từ một số phân phối Linux đƣợc sử dụng để
cài đặt vào một VPS. Một mẫu hệ điều hành bao gồm các chƣơng trình hệ thống, thƣ
viện, và các tệp lệnh cần thiết để khởi động và chạy hệ thống (VPS), cũng nhƣ một số
ứng dụng rất cơ bản và tiện ích. Các ứng dụng ví dụ nhƣ một trình biên dịch hay một
máy chủ SQL thƣờng không đƣợc đƣa vào một mẫu hệ điều hành.
3.3.1. Vòng đời bản mẫu
Một mẫu lƣu trữ là một mẫu hệ điều hành đƣợc cài đặt vào một VPS và sau đó
đóng gói vào tệp tin lƣu trữ. Điều này cho phép để tăng tốc việc tạo ra một VPS mới
thay vì cài đặt tất cả các gói bao gồm một phân phối Linux, vzctl chỉ cần giải nén tệp
tin lƣu trữ.
27
Mẫu siêu dữ liệu là một tập các tập tin chứa thông tin cần thiết để tái tạo các mẫu
lƣu trữ. Nó chứa các thông tin sau:
Danh sách các gói trong mẫu này
Vị trí chứa các gói
Kịch bản cần thiết để thực thi vào các giai đoạn khác nhau của bản cài đặt
Khoá GPG công cộng cần thiết để kiểm tra chữ ký của các gói
Các gói OpenVZ đặc biệt bổ sung
Để làm việc với một mẫu, trƣớc tiên cần tạo ra siêu dữ liệu của nó (có sẵn trên
trang Chạy tiện ích vzpkgcache để
thực sự tạo ra mẫu lƣu trữ. Nó tải về tất cả các gói trong mẫu này từ kho lƣu trữ trên
mạng để tạo ra một VPS tạm thời, VPS này sẽ đƣợc đóng gói thành tệp tin lƣu trữ để
sau này sử dụng cho việc tao ra các VPS mới. Trong trƣờng hợp một mẫu lƣu trữ đã
tồn tại, vzpkgcache sẽ áp dụng những cập nhật mới nhất cho nó từ kho phân phối và
trả lại mẫu lƣu trữ đã đƣợc cập nhật.
Nếu không cần xử lý tất cả các mẫu thì chỉ cần thêm tên của mẫu cần xử lý sau
lệnh vzpkgcache, ví dụ nhƣ lệnh sau đây tạo ra và cập nhật mẫu lƣu trữ CentOS:
# vzpkgcache centos-4-i386-minimal
Sau khi mẫu lƣu trữ đã sẵn sàng nó có thể đƣợc cài đặt vào một VPS, việc này
thực hiện bởi lệnh vzctl create nhƣ phần trên.
3.3.2. Danh mục các mẫu
Tiện ích vzpkgls cho phép hiển thị danh sách các mẫu đƣợc cài đặt trên máy chủ
vật lý gốc. Chúng có thể đã đƣợc sử dụng hoặc chƣa sử dụng bởi các VPS nhất định:
# vzpkgls
centos-4-i386-default
centos-4-i386-minimal
Nhƣ trên 2 mẫu centos-4-i386-default và centos-4-i386-minimal đang tồn tại trên
máy chủ vật lý gốc. Nhƣng có thể có mẫu chƣa đƣợc lƣu trữ, để xem mẫu nào đã đƣợc
lƣu trữ thì làm nhƣ sau:
28
# vzpkgls --cached
centos-4-i386-default
centos-4-i386-minimal
Để kiểm tra xem mẫu nào đƣợc sử dụng bởi VPS thì thêm số tài khoản của VPS
sau lệnh vzpkgls
# vzpkgls 101
centos-4-i386-minimal
3.3.3. Làm việc với VPS
Nếu cần cập nhật một VPS đã có với các gói có sẵn từ kho phân phối hoặc cài đặt
một số gói mà không phải là một phần của mẫu, sử dụng vzyum. Ví dụ để cập nhật
VPS có số tài khoản là 101 thì làm nhƣ sau:
# vzyum 101 update
Khi đó, nó sẽ tìm, tải về và cài đặt những bản cập nhật mới nhất.
Ta có thể nhận thấy rất nhiều ứng dụng không đƣợc cài đặt cùng với mẫu hệ điều
hành, chúng đƣợc cài đặt riêng phụ thuộc vào nhu cầu của ngƣời dùng bằng cách sử
dụng tiện ích vzyum. Ví dụ để cài đặt MySQL Server vào VPS có số tài khoản là 101,
sử dụng lệnh:
# vzyum 101 install mysql-server
Ở đây, vzyum sẽ gọi tiện ích quản lý các gói yum và cung cấp tất cả các đƣờng
dẫn đến kho thích hợp cho việc cài đặt phân phối vào VPS. Yum sẽ tính toán các gói
phụ thuộc, xuất hiện một danh sách các gói cài đặt, cập nhật, loại bỏ dựa trên những gì
đã yêu cầu. Nếu đƣợc xác nhận, quá trình cài đặt sẽ thực hiện tất cả các bƣớc cần thiết
để hoàn thành công việc.
Nếu muốn cài đặt các gói có sẵn trên máy chủ vật lý gốc, có thể sử dụng tiện ích
vzrpm để cài đặt nó vào VPS, điều này giống việc cài đặt một gói trên máy tính Linux
thông thƣờng với lệnh rpm:
29
# vzrpm 101 –ihv mypackage-1.0-2.i386.rpm
Và tất nhiên có thể làm mọi việc trong VPS nhƣ xây dựng, cài đặt, nâng cấp và
gỡ bỏ phần mềm.
3.4. Quản lý tài nguyên
Mục tiêu chính của kiểm soát tài nguyên trong OpenVZ là cung cấp quản lý mức
dịch vụ hoặc chất lƣợng dịch vụ cho VPS. Thiết lập kiểm soát tài nguyên một cách
chính xác để ngăn chặn hậu quả nghiêm trọng tác động bởi những tài nguyên đã qua sử
dụng (do tai nạn hay cố ý) của một vài VPS lên các VPS khác. Sử dụng tài nguyên tham
số điều khiển cho quản lý chất lƣợng dịch vụ cũng cho phép sử dụng tài nguyên một
cách công bằng giữa các VPS và chất lƣợng dịch vụ tốt hơn cho các VPS nếu cần thiết.
3.4.1. Tài nguyên tham số điều khiển là gì?
Quản trị hệ thống kiểm soát các tài nguyên có sẵn của VPS thông qua một bộ các
thông số quản lý tài nguyên. Tất cả các tham số đƣợc định nghĩa trong tệp tin cấu hình
toàn cục của OpenVZ (/etc/sysconfig/vz) hoặc trong tệp tin cấu hình VPS tƣơng ứng
(/etc/sysconfig/vz-scripsts/VPS_ID.conf) hoặc cả hai. Ta có thể thiết lập chúng bằng
cách chỉnh sửa tệp tin cấu hình tƣơng ứng một cách thủ công hoặc sử dụng các tiện ích
của OpenVZ. Các tham số này có thể đƣợc phân loại thành nhóm: ổ đĩa, CPU, mạng,
và loại hệ thống. Bảng 1 dƣới đây sẽ tóm tắt các nhóm này:
30
Bảng 1. Các tham số điều khiển
Nhóm Mô tả Tên tham số Giải thích
Đĩa
Nhóm này của các tham số
xác định hạn ngạch đĩa trong
OpenVZ. Hạn ngạch đĩa đƣợc
thực hiện ở 2 cấp độ: các VPS
ở cấp độ một và các tài khoản
ngƣời dùng, nhóm ngƣời dùng
ở cấp độ hai.
DISK_QUOTA,
DISKSPACE,
DISKNODES,
QUOTATIME
Quản lý hạn
ngạch đĩa
CPU
Nhóm này của các tham số
xách định thời gian CPU khác
nhau mà các VPS đƣợc đảm
bảo nhận đƣợc
VE0CPUUNITS,
CPUUNITS
Quản lý tài
nguyên CPU
Hệ thống
Nhóm này của các tham số
cho phép dễ dàng và hiệu quả
để kiểm soát và cấu hình tất
cả các bộ nhớ liên quan đến
các thông số bên trong VPS
avnumproc, numproc,
numtcpsock,
numothersock,
vmguarpages,
kmemsize, tcpsndbuf,
tcprcvbuf,
othersockbuf,
dgramrcvbuf,
oomguarpages,
lockedpages,
shmpages,
privvmpages,
physpages, numfile,
numflock, numpty,
numsiginfo,
dcachesize, numiptent
Quản lý tham số
hệ thống
3.4.2. Quản lý hạn ngạch đĩa
a. Hạn ngạch đĩa là gì?
Hạn ngạch đĩa cho phép quản trị viên hệ thống kiểm soát kích thƣớc của tập tin
hệ thống Linux bằng cách hạn chế số lƣợng không gian đĩa và số inodes mà một VPS
31
có thể sử dụng. Hạn ngạch đƣợc biết đến nhƣ là mỗi VPS hạn ngạch hoặc hạn ngạch
cấp một trong OpenVZ. Ngoài ra, OpenVZ cho phép quản trị viên VPS giới hạn không
gian đĩa và số inodes mà ngƣời dùng cá nhân và các nhóm trong VPS có thể sử dụng.
Có hạn ngạch ngƣời dùng và hạn ngạch nhóm ngƣời dùng hoặc hạn ngạch cấp thứ hai
trong OpenVZ.
Mặc định, OpenVZ đã kích hoạt hạn ngạch cấp một (đƣợc định nghĩa trong tệp
tin cấu hình OpenVZ toàn cục), trong khi hạn ngạch cấp hai phải đƣợc bật cho mỗi
VPS riêng (trong tập tin cấu hình VPS tƣơng ứng). Không thể bật hạn ngạch đĩa cấp
hai cho một VPS nếu hạn ngạch đĩa cấp một cho VPS đó đang tắt.
Kích thƣớc của khối hạn ngạch đĩa trong OpenVZ luôn là 1024 byte, nó có thể
khác với kích thƣớc khối của hệ thống tệp tin bên dƣới.
OpenVZ giữ thống kê sử dụng hạn ngạch và giới hạn trong
/var/vzquota/quota.vpsid - một tập tin hạn ngạch đặc biệt. Các tập tin hạn ngạch có
một lá cờ đặc biệt chỉ ra cho dù tập tin là “bẩn”. Các tập tin trở nên “bẩn” khi nội dung
của nó trở nên không phù hợp với việc sử dụng VPS thực. Điều này có nghĩa là khi
không gian đĩa hoặc inodes thay đổi cách sử dụng trong quá trình hoạt động VPS,
những thống kê này không đƣợc tự động đồng bộ hóa với các tập tin hạn ngạch, tập tin
đƣợc gán cờ “bẩn”. Chúng chỉ đƣợc đồng bộ hóa khi VPS đƣợc ngừng lại hoặc khi
máy chủ vật lý gốc tắt. Sau khi đồng bộ hóa, cờ “bẩn” đƣợc gỡ bỏ. Nếu máy chủ vật lý
gốc bị gỡ xuống không chính xác (ví dụ, bị tắt nguồn), tập tin vẫn còn “bẩn”, và hạn
ngạch đƣợc tái khởi tạo vào lần khởi động tiếp theo của VPS. Điều này có thể làm tăng
thời gian khởi động máy chủ một cách đáng kể. Vì vậy, phải thật sự chú ý khi tắt máy
chủ vật lý gốc.
b. Các tham số hạn ngạch đĩa
Bảng 2 dƣới đây tóm tắt các thông số hạn ngạch đĩa có thể đƣợc kiểm soát. Cột
File chỉ ra các tham số đƣợc định nghĩa trong file cấu hình OpenVZ toàn cục (G),
trong tập tin cấu hình VPS (V), hoặc nó đƣợc định nghĩa trong file cấu hình toàn cục
nhƣng có thể đƣợc ghi đè vào một tập tin cấu hình riêng biệt VPS (GV).
32
Bảng 2. Các tham số hạn ngạch đĩa
Tham số Mô tả Tệp
disk_quota
Cho biết hạn ngạch đĩa đầu tiên đƣợc cấp cho tất cả các
VPS hoặc một VPS riêng biệt.
GV
diskspace
Tổng kích thƣớc của không gian đĩa VPS có thể tiêu thụ,
trong 1-Kb khối.
V
diskinodes
Tổng số inodes đĩa (tập tin, thƣ mục, và các liên kết
tƣợng trƣng) các VPS có thể phân bổ.
V
quotatime
Thời gian thêm cho việc vƣợt quá hạn ngạch đĩa đƣợc
xác định trong vài giây, các VPS đƣợc cho phép tạm thời
vƣợt qua giới hạn mềm với thời gian không nhiều hơn
QUOTATIME.
V
quotaugidlimit
Tham số này xác định số lƣợng tối đa các tài khoản
ngƣời dùng và nhóm ngƣời dùng mà hạn ngạch đĩa bên
trong VPS cho trƣớc sẽ hạch toán. Nếu đặt thành 0, UID
và GID hạn ngạch sẽ bị vô hiệu.
V
c. Bật, tắt hạn ngạch đĩa cho mỗi VPS
Tham số định nghĩa hạn ngạch đĩa cấp một là DISK_QUOTA trong file cấu hình
toàn cục của OpenVZ ( /etc/sysconfig/vz ). Thiết lập nó thành “no”, sẽ vô hiệu hoá hạn
ngạch trên OpenVZ hoàn toàn.
Tham số này có thể đƣợc xác định trong tệp tin cấu hình VPS (/etc/sysconfig/vz-
scripts/vps_id.conf ). Trong trƣờng hợp này, giá trị của nó sẽ đƣợc ƣu tiên trong tệp tin
cấu hình toàn cục của OpenVZ trƣớc. Nếu dự định sử dụng hỗn hợp các VPS có hạn
ngạch và VPS không hạn ngạch thì nên thiết lập giá trị của nó trong file cấu hình toàn
cục là “yes” và trong file cấu hình của VPS nào đó là “no” nếu nó không cần hạn
ngạch.
Các ví dụ dƣới đây minh hoạ VPS 101 đƣợc bật mặc định hạn ngạch cấp một và
sau đó bị tắt đi:
[Kiểm tra hạn ngạch đĩa đang bật]
# grep DISK_QUOTA /etc/sysconfig/vz
DISK_QUOTA=yes
33
[kiểm tra không gian trống hiện có của phân vùng /vz]
# df /vz
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 15351456 623396 13935656 5% /vz
[Sửa file cấu hình VPS, thêm DISK_QUOTA=no]
# vi /etc/sysconfig/vz-scripts/101.conf
[Kiểm tra hạn ngạch đĩa đối với VPS 101]
# grep DISK_QUOTA /etc/sysconfig/vz-scripts/101.conf
DISK_QUOTA=no
# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Adding IP address(es): 192.168.1.30
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: vps101.my.org
# vzctl exec 101 df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 15351456 623396 13935656 5% /
Rõ ràng không gian đĩa trống của VPS bằng không gian trống của phân vùng /vz
nghĩa là nó không bị giới hạn khi tắt hạn ngạch đĩa của VPS.
34
d. Thiết lập thông số hạn ngạch đĩa cho từng VPS
Ba tham số xác định không gian trống của đĩa là bao nhiêu, số inode có thể sử
dụng, các tham số này có trong file cấu hình VPS và đƣợc thể hiện cụ thể ở bảng 3.
Bảng 3. Thông số hạn ngạch đĩa cho từng VPS
DISKSPACE
Kích thƣớc tổng cộng của không gian đĩa có thể đƣợc sử dụng
bởi VPS trong 1Kb-blocks. Khi không gian sử dụng đĩa bởi
VPS đạt tới giới hạn mềm, các VPS có thể đƣợc cấp phát thêm
không gian đĩa lên tới giới hạn cứng trong thời gian gia hạn
xác định QUOTATIME
DISKINODES
Tổng số inode trên đĩa (tập tin, thƣ mục và các liên kết tƣợng
trƣng) mà VPS đƣợc cấp phát. Khi số lƣợng inode đƣợc sử
dụng đạt tới giới hạn mềm, các VPS có thể tạo thêm các file
entry để bổ sung lên tới giới hạn cứng trong thời gian gia hạn
xác định QUOTATIME
QUOTATIME
Thời gian gia hạn các hạn ngạch đĩa đƣợc chỉ định trong vài
giây. VPS đƣợc phép tạm thời vƣợt qua giới hạn mềm cho
không gian đĩa và số inode không quá khoảng thời gian xác
định bởi tham số này
Hai tham số đầu tiên có cả giới hạn mềm và cứng. Giới hạn cứng là giới hạn mà
không thể vƣợt quá trong bất kỳ trƣờng hợp nào. Giới hạn mềm có thể vƣợt quá lên
đến giới hạn cứng nhƣng ngay sau hết thời gian gia hạn, không gian đĩa bổ sung hoặc
inode mới cấp phát sẽ bị lỗi. Giới hạn cứng và giới hạn mềm đƣợc phân cách nhau
bằng dấu hai chấm trong tệp tin cấu hình VPS và trong dòng lệnh.
Các ví dụ sau sẽ thiết lập không gian trống cho VPS lên tới 1Gb và cho phép số
inode đƣợc cấp phát lên tới 90.000 inode. Thời gian gia hạn cho các hạn ngạch đƣợc
thiết lập là 10 phút:
# vzctl set 101 --diskspace 1000000:1100000 --save
Saved parameters for CT 101
# vzctl set 101 --diskinodes 90000:91000 --save
Saved parameters for CT 101
# vzctl set 101 --quotatime 600 --save
35
Saved parameters for CT 101
# vzctl exec 101 df
Filesystem 1k-blocks Used Available Use%
Mounted on
/dev/simfs 1000000 747066 252934 75% /
# vzctl exec 101 stat -f /
File: "/"
ID: 0 Namelen: 255 Type: ext2/ext3
Blocks: Total: 1000000 Free: 252934 Available: 252934 Size:
1024
Inodes: Total: 90000 Free: 9594
Có thể thay đổi các tham số hạn ngạch đĩa cấp một cho một VPS đang chạy, thay
đổi này sẽ có hiệu lực ngay lập tức. Nếu muốn các thay đổi của này không giữ nguyên
trong lần khởi động tiếp theo, không nên thêm tham số --save trong các lệnh trên.
e. Bật và tắt hạn ngạch đĩa cấp hai cho VPS
Tham số điều khiển hạn ngạch đĩa cấp hai là QUOTAUGIDLIMIT trong file cấu
hình VPS. Mặc định giá trị của tham số này là 0 và điều này có nghĩa là không có hạn
ngạch đối với ngƣời dùng và nhóm ngƣời dùng.
Nếu chỉ định một giá trị khác 0 đối với tham số QUOTAUGIDLIMIT thì sẽ có 2
điều xảy ra:
1. Hạn ngạch đĩa đối với ngƣời dùng và nhóm ngƣời dùng đƣợc kích hoạt
2. Giá trị đƣợc chỉ định này sẽ giới hạn số ngƣời sở hữu tệp tin và số nhóm của
VPS này, bao gồm cả ngƣời trên hệ thống Linux. Về mặt lý thuyết có thể
thêm số ngƣời dùng đối với VPS này nhƣng nếu số lƣợng ngƣời sở hữu tệp
tin đạt tới giới hạn những ngƣời dùng này sẽ không thể sở hữu tệp tin.
Việc kích hoạt hạn ngạch ngƣời dùng và hạn ngạch nhóm ngƣời dùng cho một
VPS yêu cầu khởi động lại VPS nên giá trị đó cần đƣợc lựa chọn cẩn thận. Giá trị lớn
hơn giá trị mà đƣợc thiết lập thì bộ nhớ cần thiết sẽ vƣợt quá bộ nhớ mà VPS này
đƣợc tạo. Giá trị này phải lớn hơn hoặc bằng số lƣợng các mục trong trong file
/etc/passwd và file /etc/group trong VPS. Một VPS RedHat có thể tạo mới khoảng 80
36
mục, giá trị điển hình là 100. Tuy nhiên VPS với một số lƣợng lớn ngƣời dùng thì giá
trị này có thể đƣợc tăng lên.
Ví dụ sau sẽ bật hạn ngạch cấp hai cho VPS 101:
# vzctl set 101 --quotaugidlimit 100 --save
Saved parameters for CT 101
# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Adding IP address(es): 192.168.1.30
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: vps101.my.org
File resolv.conf was modified
Container start in progress...
f. Thiết lập các tham số cho hạn ngạch đĩa cấp hai
Để làm việc với hạn ngạch đĩa bên trong VPS, cần cài đặt công cụ hạn ngạch tiêu
chuẩn:
# vzyum 101 install quota
…
Installed: quota.i386 1:3.12-7.el4
Complete!
Lệnh này cho thấy các gói hạn ngạch đƣợc cài đặt vào trong VPS. Sử dụng các
tiện ích từ các gói này để thiết lập hạn ngạch cấp hai cho VPS. Ví dụ:
# ssh 192.168.1.30
37
root@192.168.1.30's password:
Last login: Sun Feb 28 09:09:02 2010 from 192.168.1.7
[root@vps101 ~]# edquota root
Disk quotas for user root (uid 0):
Filesystem blocks soft hard inodes soft
hard
/dev/simfs 38216 50000 60000 45454 70000
70000
[root@vps101 ~]# repquota -a
*** Report for user quotas on device /dev/simfs
Block grace time: 00:00; Inode grace time: 00:00
Block limits File limits
User used soft hard grace used soft hard
grace
------------------------------------------------------------------
----
root -- 38218 50000 60000 45453 70000 70000
[the rest of repquota output is skipped]
[root@vps101 ~]# dd if=/dev/zero of=test
dd: writing to `test': Disk quota exceeded
23473+0 records in
23472+0 records out
[root@vps101 ~]# repquota -a
*** Report for user quotas on device /dev/simfs
Block grace time: 00:00; Inode grace time: 00:00
Block limits File limits
User used soft hard grace used soft hard
grace
------------------------------------------------------------------
----
root +- 50001 50000 60000 none 45454 70000 70000
38
[the rest of repquota output is skipped]
Các ví dụ trên cho thấy khi ngƣời dùng root có hạn ngạch đĩa thiết lập để giới
hạn cứng của 60000 1KB blocks và giới hạn mềm của 50000 1KB blocks, giới hạn cả
cứng cả mềm cho số inode đƣợc đặt là 70000.
Cũng có thể thiết lập thời gian gia hạn cho giới hạn blocks và giới hạn inodes với
sự giúp đỡ của lệnh setquota.
g. Kiểm tra trạng thái hạn ngạch đĩa
Là ngƣời quản trị hệ thống máy chủ vật lý gốc, thì có thể kiểm tra tình trạng hạn
ngạch cho bất kỳ VPS nào với lệnh vzquota stat và lệnh vzquota show. Lệnh đầu tiên
báo cáo tình trạng của nhân và sẽ dùng để chạy các VPS. Lệnh thứ hai báo cáo tình
trạng từ tệp tin hạn ngạch (/var/vzquota/quota.vps_id) và đƣợc sử dụng để ngừng các
VPS. Cả hai lệnh đều có định dạng đầu ra nhƣ nhau. Ví dụ sau cho thấy số liệu thống
kê hạn ngạch của VPS 101:
# vzquota stat 101 -t
resource usage softlimit hardlimit grace
1k-blocks 106604 1000000 1100000
inodes 6894 90000 91000
User/group quota: on,active
Ugids: loaded 9, total 9, limit 100
Ugid limit was exceeded: no
User/group grace times and quotafile flags:
type block_exp_time inode_exp_time dqi_flags
user 0h
group
User/group objects:
ID type resource usage softlimit hardlimit grace
status
0 user 1k-blocks 106604 0 0
loaded
39
0 user inodes 6894 0 0 loaded
...
Ba dòng đầu tiên hiển thị trạng thái của hạn ngạch đĩa cấp một cho VPS. Phần
còn lại hiển thị thống kê hạn ngạch ngƣời dùng và hạn ngạch nhóm ngƣời dùng trên
từng dòng cho từng tài khoản của ngƣời dùng và nhóm ngƣời dùng. Nếu không cần
hiển thị hạn ngạch cấp hai có thể bỏ chọn tham số -t trong lệnh vzquota bên trên.
3.4.3. Quản lý chia sẻ CPU
Phần này giải thích các tham số tài nguyên CPU (chia sẻ CPU), những tham số
cấu hình và giám sát đối với từng VPS. Bảng dƣới đây sẽ cung cấp các tên và mô tả
các tham số CPU. Cột file chỉ ra tham số đƣợc định nghĩa trong tệp tin cấu hình toàn
cục của OpenVZ (G) hay trong tệp tin cấu hình VPS (V). Các tham số này đƣợc mô tả
cụ thể ở bảng 4 dƣới đây:
Bảng 4. Tham số tài nguyên CPU
Tham số Mô tả File
ve0cpuunits
Đây là số nguyên dƣơng xác định chia sẻ tối thiểu thời
gian CPU mà VPS 0 sẽ nhận đƣợc. Giá trị thiết lập đƣợc
khuyến cáo bằng 5-10% công suất của máy chủ vật lý
gốc.
G
cpuunits
Đây là số nguyên dƣơng xác định chia sẻ tối thiểu thời
gian CPU mà VPS tƣơng ứng sẽ nhận đƣợc
V
cpulimit
Đây là số nguyên dƣơng chỉ phần trăm thời gian CPU
các VPS tƣơng ứng không đƣợc vƣợt quá
V
Các tiện ích điều khiển tài nguyên CPU trong OpenVZ cho phép bất kỳ VPS nào
cũng nhận đƣợc một lƣợng thời gian CPU. VPS có thể sử dụng nhiều hơn giá trị đƣợc
bảo đảm nếu không có các VPS khác cạnh tranh và tham số cpulimit không xác định.
Để tối ƣu đƣợc việc chia sẻ cho một VPS, cần kiểm tra mức sử dụng CPU của
máy chủ vật lý gốc:
# vzcpucheck
Current CPU utilization: 2000
40
Power of the node: 248002
Đầu ra của lệnh này hiển thị tống số đơn vị tiêu thụ CPU bởi tât cả các VPS và
các tiến trình của máy chủ vật lý gốc. Con số này đƣợc xác định bởi OpenVZ với sự
giúp đỡ của một thuật toán đặc biệt. Ví dụ trên minh họa tình huống khi máy chủ vật
lý gốc là không đƣợc tận dụng. Nói cách khác các VPS đang chạy nhận đƣợc nhiều
thời gian CPU hơn là đảm bảo cho chúng.
Trong ví dụ dƣới đây, VPS 101 đảm bảo nhận đƣợc 2% thời gian CPU ngay cả
khi máy chủ vật lý gốc đƣợc sử dụng hoàn toàn. Bên cạnh đó, VPS này sẽ không nhận
đƣợc nhiều hơn 4% thời gian CPU ngay cả khi CPU không hoạt động hết công suất:
# vzctl set 101 --cpuunits 5000 --cpulimit 4 --save
Setting CPU limit: 4
Setting CPU units: 5000
# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Adding IP address(es): 192.168.1.30
Setting CPU limit: 4
Setting CPU units: 5000
Configure meminfo: 65536
Set hostname: vps101.my.org
File resolv.conf was modified
Setting quota ugidlimit: 100
Container start in progress...
# vzcpucheck
Current CPU utilization: 6000
41
Power of the node: 248002
VPS 101 sẽ nhận đƣợc 2-4% thời gian CPU trừ khi máy chủ vật lý gốc vƣợt quá
khả năng nghĩa là máy chủ không thể đáp ứng đủ số đơn vị CPU nhƣ dự tính, vì thế
VPS có thể nhận đƣợc ít hơn 2% nhƣ trong ví dụ trên.
3.4.4. Quản lý các tham số hệ thống
Các tài nguyên mà một VPS đƣợc phân bổ có thể đƣợc định nghĩa bởi các tham
số điều khiển tài nguyên hệ thống. Các tham số này đƣợc chia làm 3 loại: sơ cấp, thứ
cấp và tham số phụ trợ. Các tham số chính là điểm khởi đầu cho việc tạo một cấu hình
VPS từ bản nháp. Các tham số thứ cấp phụ thuộc vào các tham số sơ cấp và đƣợc tính
toán theo một tập các ràng buộc. Các tham số phụ trợ giúp cải thiện sự cô lập lỗi giữa
các ứng dụng trong một và cùng một VPS và cách xử lý các sai sót và tiêu thụ tài
nguyên. Chúng cũng giúp thi hành các chính sách trên VPS bằng cách hạn chế các
nguồn lực theo yêu cầu của một ứng dụng và ngăn chặn các ứng dụng chạy trong VPS.
Dƣới đây là danh sách các tham số điều khiển tài nguyên hệ thống. Các tham số
bắt đầu bằng “num” đƣợc đo bằng số nguyên, các tham số kết thúc bởi “buf” hay
“size” đƣợc đo bằng byte. Các tham số chứa “page” trong tên của nó thì đƣợc đo bằng
4096-byte (Kiến trúc IA32). Cột file chỉ ra tham số hệ thống đƣợc định nghĩa trong tệp
tin cấu hình VPS tƣơng ứng (V). Các tham số này đƣợc mô tả cụ thể ở bảng 5 (tham số
sơ cấp), bảng 6 (tham số sơ thứ cấp) và bảng 7 (tham số phụ trợ) dƣới đây:
42
Bảng 5. Tham số sơ cấp
Tham số Mô tả File
avnumproc Số lƣợng trung bình các tiến trình và luồng V
numproc
Số lƣợng tối đa các tiến trình và luồng mà một VPS có
thể tạo
V
numtcpsock
Số lƣợng socket TCP, tham số này giới hạn số lƣợng kết
nối TCP, số lƣợng khác hàng mà máy chủ ứng dụng có
thể xử lý song song
V
numothersock
Số lƣợng các socket khác với socket TCP, các socket nội
bộ đƣợc sử dụng cho truyền thông bên trong hệ thống.
Socket UDP đƣợc sử dụng trong truy vấn tên miền (DNS)
chẳng hạn. UDP và các socket khác cũng có thể đƣợc sử
dụng trong một vài ứng dụng đặc biệt (tác tử SNMP và
một số cái khác)
V
vmguarpages
Việc đảm bảo cấp phát bộ nhớ trong các trang ( một trang
tƣơng ứng 4Kb). Ứng dụng đƣợc đảm bảo để có thể cấp
phát bộ nhớ bổ sung giống nhƣ dung lƣợng của bộ nhớ
privvmpages (xem tham số phụ trợ) không vƣợt quá giá
trị của tham số vmguarpages. Nếu vƣợt quá giá trị trên,
việc bổ sung cấp phát bộ nhớ sẽ không đảm bảo và có thể
thất bại trong trƣờng hợp thiếu bộ nhớ tổng thể.
V
43
Bảng 6. Tham số thứ cấp
Tham số Mô tả File
kmemsize
Kích thƣớc của bộ nhớ trao đổi phân bố cho các cấu trúc
hạt nhân nội bộ cho các tiến trình của một VPS cụ thể.
V
tcpsndbuf
Tổng kích thƣớc của bộ đệm gửi cho TCP socket, tức là
số lƣợng bộ nhớ hạt nhân đƣợc phân bổ cho các dữ liệu
gửi từ một ứng dụng cho một socket TCP, nhƣng không
xác nhận dữ liệu từ xa gửi tới.
V
tcprcvbuf
Tổng kích thƣớc của bộ đệm nhận đƣợc từ TCP socket,
tức là số lƣợng bộ nhân đƣợc phân bổ cho các dữ liệu
nhận đƣợc từ xa nhƣng không đọc đƣợc các ứng dụng nội
bộ đƣợc nêu ra.
V
othersockbuf
Tổng kích thƣớc bộ đệm của socket Unix-domain, UDP
và các giao thức gửi bộ đệm datagram khác
V
dgramrcvbuf
Tổng kích thƣớc bộ đệm nhận của UDP và các giao thức
datagram khác
V
oomguarpages
Việc kiểm soát tràn bộ nhớ trong các trang. Bất kỳ tiến
trình trong VPS sẽ không bị ngắt ngay cả trong trƣờng
hợp thiếu bộ nhớ nếu bộ nhớ hiện tại (bao gồm cả bộ nhớ
vật lý và bộ nhớ trao đổi) chƣa đạt tới ngƣỡng
oomguarpages
V
44
Bảng 7. Tham số phụ trợ
Tham số Mô tả File
lockedpages
Bộ nhớ không đƣợc phép tráo đổi (khóa với hàm mlock()
của hệ thống) trong các trang
V
shmpages
Tổng kích thƣớc của bộ nhớ chia sẻ (gồm IPC, chia sẻ
ánh xạ ẩn danh, và đối tƣợng tmpfs)
V
privvmpages
Kích thƣớc riêng của bộ nhớ đƣợc cấp phát bởi một ứng
dụng. Các bộ nhớ luôn luôn đƣợc chia sẻ giữa các ứng
dụng khác nhau không bao gồm các tham số tài nguyên
V
numfile Số lƣợng các file đƣợc mở bởi tất cả các tiến trình VPS V
numflock
Số lƣợng các file khóa đƣợc tạo ra bởi tất cả các tiến trình
VPS
V
numpty
Số lƣợng các thiết bị đầu cuối, chẳng hạn nhƣ một phiên
ssh, màn hình hay các ứng dụng xterm, vv…
V
numsiginfo
Số lƣợng các cấu trúc siginfo (thực chất tham số này giới
hạn kích thƣớc của hàng đợi phân phối tín hiệu
V
dcachesize
Tổng kích thƣớc của dentry và các cấu trúc inode đã khóa
trong bộ nhớ
V
physpages
Tổng kích thƣớc của RAM đƣợc sử dụng bởi các tiến
trình VPS. Đây là một bộ đếm chỉ số hiện tại. Nó hiển thị
dung lƣợng RAM đƣợc sử dụng bởi VPS. Đối với các
trang bộ nhớ đƣợc sử dụng bởi các VPS khác nhau (ví dụ
ánh xạ của thƣ viện chia sẻ) chỉ có các phần tƣơng ứng
của một trang đƣợc tính cho mỗi VPS. Tổng số các
physpages sử dụng cho tất cả các VPS tƣơng ứng với
tổng số trang đƣợc số trang đƣợc sử dụng trong hệ thống
của tất cả ngƣời dùng.
V
numiptent Số lƣợng các gói tin IP tiếp nhận đƣợc lọc V
45
Ta có thể sửa đổi bất kỳ các tham số trong tệp tin /etc/sysconfig/vz-
scripts/vpsid.conf của VPS tƣơng ứng bằng các trình soạn thảo, hoặc bằng cách chạy
lệnh vzctl set, ví dụ:
# vzctl set 101 --kmemsize 2211840:2359296 --save
Saved parameters for VPS 101
a. Hệ thống giám sát tài nguyên tiêu thụ
Có thể kiểm tra các tham số điều khiển nguồn tài nguyên hệ thống thống kê từ
một VPS. Sử dụng chính những thống kê này để hiểu những đặc trƣng của tài nguyên
có giới hạn ngăn chặn một ứng dụng đƣợc khởi động. Hơn nữa, những thống kê này
báo cáo việc tiêu thụ các tài nguyên hiện tại và tối đa cho chạy VPS. Thông tin này có
thể đƣợc xem tại tệp tin /proc/user_beancounters. Dƣới đây và hiển thị của một phiên
làm việc điển hình:
46
Cột failcnt hiển thị số lần thử không thành công để phân bổ một nguồn tài
nguyên đặc thù. Nếu giá trị này tăng sau khi một ứng dụng gặp lỗi khởi động, thì sau
đó giới hạn tài nguyên tƣơng ứng có hiệu lực thấp hơn giá trị mà ứng dụng cần thiết.
Cột held hiển thị các mức tiêu thụ các tham số tài nguyên hiện tại. Cột maxheld
hiển thị giá trị tối đa mức tiêu thụ tài nguyên. Ý nghĩa của các cột phụ thuộc vào các
tham số và đƣợc giải thích trong tài liệu hƣớng dẫn Quản lý hệ thống tài nguyên trong
OpenVZ.
Bên trong một VPS, tệp tin /proc/user_beancounters chỉ hiển thị các thông tin
của VPS đó trong khi máy chủ vật lý gốc thì tệp tin này hiển thị các thông tin của tất
cả các VPS.
b. Giám sát tiêu thụ bộ nhớ
Ta có thể một số các tham số bộ nhớ của máy chủ vật lý gốc và cả VPS cụ thể
với sự giúp đỡ của lệnh vzmemcheck, ví dụ:
Tùy chọn –v đƣợc sử dụng để hiển thị các thông tin về bộ nhớ cho mỗi VPS
riêng và không cho máy chủ vật lý gốc nói chung. Cũng có thể hiển thị các giá trị với
đơn vị MB bằng cách sử dụng tùy chọn –A để chuyển đổi. Các tham số theo dõi (từ
trái sang phải) gồm có sử dụng bộ nhớ mức thấp, cam kết bộ nhớ mức thấp, RAM sử
dụng, bộ nhớ + bộ nhớ tráo đổi sử dụng, bộ nhớ + bộ nhớ tráo đổi cam kết, cấp phát bộ
nhớ sử dụng, cấp phát bộ nhớ cam kết, cấp phát bộ nhớ giới hạn.
Để hiểu các thông số trên, trƣớc hết cần phải tìm ra đƣợc sự khác biệt giữa mức
sử dụng và mức cam kết. Mức sử dụng là số các nguồn tài nguyên tiêu thị bởi các VPS
tại thời điểm nhất định. Nhìn chung, các giá trị sử dụng thấp có nghĩa là dƣới mức sử
dụng của hệ thống. Thông thƣờng, nó có nghĩa là hệ thống có khả năng hỗ trợ thêm
nhiều VPS nếu các VPS hiện tại tiếp tục duy trì cũng một tải và mức tiêu thụ vài tài
nguyên. Mức sử dụng cao (hơn 1 hoăc hơn 100%) có nghĩa là hệ thống bị quá tải và
mức độ dịch vụ của VPS bị suy giảm. Cho thấy mức cam kết là số tài nguyên đã “hứa”
cho VPS hiện tại. Mức cam kết thấp có nghĩa hệ thống có khả năng hỗ trợ thêm nhiều
VPS nữa. Mức độ cam kết hơn 1 có nghĩa VPS đang đƣợc hứa hẹn nhiều tài nguyên hệ
thống có và hệ thống đƣợc gọi là vƣợt quá cam kết. Nếu hệ thống chạy rất nhiều VPS
47
nó thƣờng chấp nhận đƣợc một số cái “trên mức cam kết” vì không chắc rằng tất cả
các VPS sẽ yêu cầu một trong những nguồn tài nguyên vào cùng thời gian nhƣ nhau.
Tuy nhiên mức cam kết rất cao sẽ gây ra cho các VPS không đƣợc phân bố và sử dụng
tài nguyên nhƣ đã hứa và có thể thể làm mất ổn định hệ thống.
Bộ nhớ thấp là vùng quan trọng nhất của bộ nhớ RAM đại diện cho một phần của
bộ nhớ cƣ trú tại địa chỉ thấp hơn và có thể truy cập trực tiếp bởi hạt nhân.Trong
OpenVZ, kích thƣớc của vùng nhớ thấp đƣợc giới hạn là 832MB trong UP (bộ xử lý
đơn) và phiên bản SMP của hạt nhân, và để 3.6 GB trong phiên bản Enterprise của hạt
nhân. Nếu tổng kích thƣớc RAM máy tính thấp hơn giới hạn (832MB hoặc 3.6GB tƣơng
ứng) thì kích thƣớc thực tế của các vùng bộ nhớ thấp bằng tổng dung lƣợng bộ nhớ.
Bộ nhớ bao gồm RAM và bộ nhớ trao đổi là các tài nguyên máy tính quyết định
bộ nhớ có sẵn cho các ứng dụng. Nếu tổng kích thƣớc bộ nhớ đƣợc sử dụng vƣợt quá
kích thƣớc bộ nhớ RAM, nhân Linux sẽ chuyển một số dữ liệu sang bộ nhớ trao đổi và
tải nó về khi ứng dụng cần tới nó. Dữ liệu đƣợc sử dụng nhiều có xu hƣớng ở lại trong
RAM, dữ liệu ít đƣợc sử dụng thì phần lớn thời gian nằm trong bộ nhớ trao đổi. Hoạt
động trao đổi ra và trao đổi vào làm giảm hiệu suất hoạt động của hệ thống ở một số
phạm vi, tuy nhiên nếu hoạt động này không nhiều thì việc giảm hiệu suất không phải
là vấn đề đáng chú ý. Mặt khác, cá lợi ích của việc sử dụng bộ nhớ trao đổi là khá lớn,
cho phép tăng số lƣợng các VPS trong hệ thống lên 2 lần. Trao đổi là cần thiết để xử lý
sự vƣợt tải của hệ thống. Một hệ thống với không gian bộ nhớ trao đổi đủ chỉ chậm khi
sự vƣợt tải cao, trong khi một hệ thống mà không đủ không gian bộ nhớ trao đổi, phản
ứng lại với sự vƣợt tải cao do bị từ chối cấp phát bộ nhớ (gây ra việc các ứng dụng từ
chối chấp nhận khách hàng hoặc chấm dứt) và trực tiếp giết chết một số ứng dụng.
Ngoài ra, sự hiện diện của bộ nhớ trao đổi, giúp cân bằng hệ thống tốt hơn nhờ việc di
chuyên dữ liệu giữa các khu vực bộ nhớ thấp và phần còn lại của RAM.
Cấp phát bộ nhớ là việc thêm “ảo” tài nguyên hệ thống nhiều hơn RAM hoặc
RAM cộng với bộ nhớ trao đổi. Ứng dụng có thể cấp phát bộ nhớ nhƣng bắt đầu sử
dụng nó chỉ sau khi và chỉ khi bộ nhớ vật lý trống thực sự giảm. Tổng kích cỡ của bộ
nhớ đƣợc phân bổ trong tất cả các VPS là ƣớc lƣợng bộ nhớ vật lý sẽ đƣợc sử dụng
nếu tất cả các ứng dụng đòi hỏi đƣợc phân bổ bộ nhớ. Bộ nhớ có sẵn để phân bố không
chỉ đƣợc sử dụng (cột Alloc util) hoặc mức cam kết (cột Alloc commit), nhƣng cũng
có giới hạn (các ứng dụng sẽ không có khả năng phân bổ nguồn lực nhiều hơn giá trị
chỉ ra trong cột Alloc limit).
48
3.4.5. Quản lý cấu hình tài nguyên VPS
Bất kỳ VPS nào cũng đƣợc quản lý bởi tệp tin cấu hình riêng của từng VPS. Ta
có thể quản lý cấu hình VPS bằng một số cách:
1. Sử dụng các tệp tin mẫu làm việc với OpenVZ. Những tệp tin này đƣợc sử dụng
khi một VPS mới đƣợc tạo ra. Chúng đƣợc lƣu trữ cùng thƣ mục với các tệp tin
cấu hình VPS (/etc/sysconfig/vz-scripts/) và có tên là ve-name.conf-sample.
Hiện tại các tệp tin cấu hình mẫu sau đây đƣợc cung cấp:
light – sẽ sử dụng cho việc tạo “light” VPS có hạn chế về việc giới hạn
chất lƣợng của tham số dịch vụ.
vps.basic – đƣợc sử dụng cho cho các VPS phổ biến
Bất kỳ tập tin cấu hình mẫu cũng có thể áp dụng cho một VPS sau khi nó đƣợc
tạo ra. Có thể thay đổi điều này, ví dụ khi muốn nâng cấp hoặc hạ cấp cấu hình
tài nguyên tổng thể của một VPS cụ thể:
# vzctl set 101 --applyconfig light --save
Lệnh này áp dụng cho tất cả tham số từ các file ve-light.conf-sample tới các
VPS đã cho, ngoại trừ các tham số OSTEMPLATE, VE_ROOT và
VE_PRIVATE, chúng cần phải tồn tại trong tệp tin cấu hình mẫu.
2. Sử dụng các tiện ích chuyên biệt của OpenVZ để thiết lập các tham số trong tệp
tin cấu hình. Các tiện ích này đƣợc mô tả trong phần sau.
3. Trực tiếp tạo và sửa các tệp tin cấu hình tƣơng ứng (/etc/sysconfig/vz-
scripts/VPS_ID.conf). Điều này đƣợc thực hiện với sự giúp đỡ của bất kỳ trính
soạn thảo nào. Các hƣớng dẫn về cách chỉnh sửa tệp tin cấu hình VPS đƣợc
cung cấp ở phần trƣớc. Trong từng trƣờng hợp phải sửa tất cả các tham số cấu
hình riêng, từng cái một.
a. Chia máy chủ vật lý gốc thành những phần bằng nhau
Có thể tạo một VPS cấu hình đại diện cho một phần nhất định của máy chủ vật lý
gốc. Nếu muốn tạo một cấu hình nhƣ vậy với 20 VPS đầy đủ có thể đồng thời chạy
trên máy chủ vật lý gốc, có thể làm nhƣ sau:
# cd /etc/sysconfig/vz-scripts/
49
# vzsplit -n 20 -f vps.mytest
The optimal swap space size is 1005 Mb, twice bigger than the RAM
size
WARNING: Recommended minimal size of partition holding
/vz/private/ is 20Gb!
Config /etc/vz/conf/ve-vps.mytest.conf-sample was created
Lƣu ý các cấu hình này phụ thuộc vào nguồn tài nguyên của máy chủ vật lý gốc.
Do đó, điều quan trọng là xác nhận các tệp tin cấu hình kết quả trƣớc khi sử dụng nó
với sự giúp đỡ của tiện ích vzcfgvalidate.
Số lƣợng các VPS có thể chạy trên máy chủ vật lý gốc lớn hơn nhiều lần giá trị
đƣợc chỉ định trong dòng lệnh vì VPS thƣờng không tiêu thụ tất cả các nguồn tài
nguyên đƣợc đảm bảo cho chúng. Để minh họa điều này, xem việc tạo máy chủ từ cấu
hình sản xuất trên:
# vzctl create 101 --ostemplate centos-4-i386-minimal --config
vps.mytest
Creating VPS private area: /vz/private/101
VPS private area was created
# vzctl set 101 --ipadd 192.168.1.101 --save
Saved parameters for VPS 101
# vzctl start 101
Starting VPS ...
VPS is mounted
Adding IP address(es): 192.168.1.101
VPS start in progress...
# vzcalc 101
Resource Current(%) Promised(%) Max(%)
Memory 0.53 1.90 6.44
50
Nhƣ trên, nếu VPS sử dụng tất cả các nguồn lực đảm bảo cho chúng, thì có
khoảng 20 VPS có thể chạy cùng lúc, tuy nhiên dựa trên đầu ra của cột Promised, có
thể chạy 40-50 VPS một cách an toàn trên máy chủ vật lý gốc.
b. Phê duyệt cấu hình VPS
Các tham số điều khiển tài nguyên hệ thống có mối liên hệ phức tạp. Vi phạm
các mối liên hệ này có thể gây ra lỗi cho VPS. Để đảm bảo rằng một VPS không phá
vỡ mối liên hệ kia, điều quan trọng là xác nhận các tệp tin cấu hình VPS trƣớc khi tao
nó trên cơ sở các môi liên hệ. Dƣới đây là một kịch bản điển hình để xác nhận:
# vzcfgvalidate /etc/sysconfig/vz-scripts/101.conf
Error: kmemsize.bar should be > 1835008 (currently, 25000)
# vzctl set 101 --kmemsize 2211840:2359296 --save
Saved parameters for VPS 101
# vzcfgvalidate /etc/sysconfig/vz-scripts/101.conf
Recommendation: dgramrcvbuf.bar should be > 132096 (currently,
65536)
Validation completed: success
Tiện ích kiểm tra các ràng buộc về tham số quản lý tài nguyên và hiển thị tất cả
những vị phạm đƣợc tìm thấy. Có 3 cấp độ vi phạm đƣợc thể hiện ở bảng 8 dƣới đây:
Bảng 8. Các cấp độ vi phạm
Recommendation
Đây là một gợi ý, nó không quan trọng tới hoạt động của VPS
hay máy chủ vật lý gốc. Cấu hình nói chung là hợp lệ, tuy
nhiên nếu hệ thống có đủ bộ nhớ, nên tăng các giá trị các tham
số theo nhƣ lời khuyên.
Warning
Một ràng buộc không đƣợc thỏa mãn, và cấu hình không hợp
lệ. Ứng dụng trên VPS có thể không đạt đƣợc hiệu suất tối ƣu
hoặc thậm chí bị lỗi.
Error
Một ràng buộc quan trọng không đƣợc thỏa mãn và cấu hình
không hợp lệ. Các ứng dụng trên VPS gia tăng nguy cơ bị lỗi,
bị chấm dứt hoặc treo.
51
Nhƣ trong kịch bản trên, đầu tiên tiện ích vzcfgvalidate tìm thấy một lỗi nghiêm
trọng đối với giá trị tham số kmemsize. Sau khi thiết lập giá trị hợp lý cho kmemsize,
tệp tin cấu hình đƣợc kiểm tra lần nữa có một khuyến cáo duy nhất, lúc này VPS có
thể chạy an toàn.
3.5. Các tác vụ nâng cao trên OpenVZ
3.5.1. Xác định số tài khoản VPS bởi định danh của tiến trình
Mỗi tiến trình đƣợc xác định bởi duy nhất một PID (định danh của tiến trình), là
một mục của tiến trình đó trong bảng tiến trình của hạt nhân. Ví dụ, khi khởi động
Apache, nó đƣợc gán một PID, PID này sẽ đƣợc sử dụng để theo dõi và điều khiển
chƣơng trình này. PID luôn là một số nguyên dƣơng. Trong OpenVZ có thể sử dụng
lệnh vzpid để in số tài khoản của VPS thông qua PID vừa cho. Nhiều tiến trình có thể
đƣợc quy định nhƣ đối số. Trong minh họa này, tiện ích vzpid sẽ in chỉ số VPS tƣơng
ứng với mỗi tiến trình:
[root@ts23 root]# vzpid 12
Pid VPS Name
12 4 init
Trong ví dụ trên, hiển thị tiến trình có định danh là 12 có tên là init đang chạy
trong VPS có ID=4.
3.5.2. Thay đổi thời gian hệ thống từ VPS
Bình thƣờng, không thể thay đổi thời gian hệ thống từ một VPS riêng. Nếu
không, các VPS khác nhau có thể can thiệp với nhau và thậm chí có thể phá vỡ các
ứng dụng phụ thuộc vào độ chính xác thời gian của hệ thống.
Thông thƣờng, chỉ có quản trị hệ thống máy chủ vật lý gốc mới có thể thay đổi
thời gian hệ thống. Tuy nhiên, nếu nhƣ muốn đồng bộ hóa thời gian thông qua giao
thức thời gian mạng (NTP), phải chạy phần mềm NTP, nó sẽ kết nối với bên ngoài
máy chủ NTP và cập nhật thời gian hệ thống. Nó không thích hợp để chạy phần mềm
ứng dụng trên máy chủ vật lý gốc của mình, vì từ lỗ hổng này của phần mềm có thể
ảnh hƣởng tới tất cả các VPS khác trên máy chủ vật lý gốc. Vì thế nếu có kế hoạch sử
dụng NTP, nên tạo một VPS đặc biệt cho nó và cấu hình nó để nó có khả năng
sys_time. Ví dụ dƣới đây minh họa cấu hình một VPS nhƣ vậy:
52
[root@localhost ~]# vzctl set 101 --capability sys_time:on --save
Unable to set capability on running container
WARNING: Some of the parameters could not be applied to a running
container.
Please consider using --setmode option
Saved parameters for CT 101
[root@localhost ~]# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Adding IP address(es): 192.168.1.30
Setting CPU limit: 4
Setting CPU units: 5000
Configure meminfo: 65536
Set hostname: vps101.my.org
File resolv.conf was modified
Setting quota ugidlimit: 100
Container start in progress...
[root@localhost ~]# ssh root@192.168.1.30
root@192.168.1.30's password:
Last login: Sun Feb 28 09:13:04 2010 from 192.168.1.7
[root@vps101 ~]# date
Thu Mar 18 07:28:01 ICT 2010
[root@vps101 ~]# date 10291300
Fri Oct 29 13:00:00 ICT 2010
[root@vps101 ~]# date
53
Fri Oct 29 13:00:06 ICT 2010
[root@vps101 ~]# exit
logout
Connection to 192.168.1.30 closed.
[root@localhost ~]# date
Fri Oct 29 13:00:20 ICT 2010
Các lệnh trên cho thấy cách để thay đổi thời gian hệ thống từ VPS 101, những
thay đổi sẽ ảnh hƣởng tới tất cả các VPS và chính máy chủ vật lý gốc. Nó không đƣợc
khuyến khích để có nhiều hơn một VPS có khả năng sys_time nhƣ trên.
3.5.3. Truy cập các thiết bị từ bên trong VPS
Có thể cấp quyền đọc, ghi hoặc đọc/ghi cho một VPS để truy cập tới một đối
tƣợng hay một thiết bị khối. Điều này là cần thiết, ví dụ đối với phần mềm cơ sở dữ
liệu Oracl mà muốn sử dụng khả năng làm việc với các phân vùng đĩa nguyên.
Trong hầu hết các trƣờng hợp, cung cấp truy cập vào hệ thống phân cấp tệp tin
cho một VPS đạt đƣợc bằng cách sử dụng gắn kết. Tuy nhiên, ràng buộc gắn kết
không cho phép tạo phân vùng mới, định dạng chúng với một hệ thống tệp tin, hoặc
gắn kết chúng riêng bên trong một VPS. Nếu có ý định ủy quyền quản lý đĩa cho
ngƣời quản trị viên VPS, cần thêm tùy chọn --devices hoặc --devnodes vào lệnh vzctl
set.
Xem minh họa sau: Ngƣời quản trị của VPS 101 chịu trách nhiệm quản lý hai
thiết bị /dev/sdb1 và /dev/sdb2. Nói các khác, quản trị hệ thống VPS 101 đƣợc phép
phân chia phân vùng /dev/sdb và tạo file hệ thống trên hai phân vùng đầu tiên (hoặc sử
dụng chúng với bất kỳ phần mềm nào có khả năng làm việc với một phân vùng nguyên
chẳng hạn nhƣ phần mềm cơ sở dữ liệu Oracle).
Trƣớc tiên, cần cấp các quyền để VPS làm việc với thiết bị khối cần thiết:
[root@localhost ~]# vzctl set 101 --devices b:8:16:rw --devices
b:8:17:rw --devices b:8:18:rw --save
Setting devices
Saved parameters for CT 101
54
Lệnh này cho phép đọc/ghi lên các thiết bị khối có mã số chính là 8 và mã số con
là 16, 17, 18 (tƣơng ứng với /dev/sdb, /dev/sdb1, /dev/sdb2). Nếu không chắc chắn về
các mã số này, sử dụng lệnh sau:
[root@localhost ~]# ls -l /dev/sdb{,1,2}
brw-r----- 1 root disk 8, 16 Mar 18 17:15 /dev/sdb
brw-r----- 1 root disk 8, 17 Mar 18 17:15 /dev/sdb1
brw-r----- 1 root disk 8, 18 Mar 18 17:15 /dev/sdb2
Bây giờ tạo một phân vùng Linux 100MB thêm vào phân vùn /dev/sdb1 đã tồn
tại từ VPS 101:
[root@localhost ~]# ssh root@192.168.1.30
root@192.168.1.30's password:
Last login: Thu Mar 18 17:37:02 2010 from 192.168.1.7
[root@vps101 root]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 2231 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 255 2048256 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (256-2231, default 256):
55
Using default value 256
Last cylinder or +size or +sizeM or +sizeK \
(256-2231, default 2231): +100M
Command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 2231 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 255 2048256 83 Linux
/dev/sdb2 256 268 104422+ 83 Linux
Command (m for help): w
Sau khi ghi lại bảng phân vùng, có thể định dạng nó và gắn vào trong các VPS:
[root@vps101 root]# mke2fs /dev/sdb2
[Output of mke2fs is skipped…]
[root@vps101 root]# mount /dev/sdb2 /mnt
[root@vps101 root]# df
Filesystem 1k-blocks Used Available Use% Mounted on
simfs 1048576 149916 898660 15% /
ext2 101107 13 95873 1% /mnt
Phải luôn chỉ rõ tất cả các mã số con cho các thiết bị muốn ủy quyền, cho phép
truy cập tới phân vùng /dev/sdb để tạo, sửa đối và xóa phân vùng trên nó, nhƣng điều
khoản sẽ đƣợc trao cho các phân vùng cho phép VPS làm việc với nó.
56
3.5.4. Cơ chế chia sẻ mạng trong giữa máy chủ vật lý gốc và các VPS
Để các VPS có khả năng kết nối với nhau và kết nối ra ngoài mạng, cần phải có
cơ chế để chia sẻ mạng giữa máy chủ vật lý gốc và các VPS. Có 2 cơ chế đó là sử
dụng thiết bị mạng ảo và sử dụng thiết bị Ethernet ảo.
a. Sử dụng thiết bị mạng ảo
Thiết bị mạng ảo (venet) là thiết bị mạng mặc định cho một VPS, nó hoạt động ở
tầng thứ 3 của mô hình OSI (tần mạng), thiết bị này giống nhƣ một kết nối điểm tới
điểm (point-to-point) giữa VPS và máy chủ vật lý gốc.
Venet đƣợc tạo ra một cách tự động khi VPS khởi động. Lệnh vzctl set thiết lập
địa chỉ IP thích hợp và các cài đặt khác trên venet bên trong một VPS.
Hình 5. Mô hình dạng sao đối với các VPS sử dụng Venet
Có thể mô tả cơ chế làm việc của các VPS và máy chủ vật lý gốc giống nhƣng
một mô hình mạng dạng sao đƣợc mô phỏng nhƣ hình 5, trong đó máy chủ là thiết bị
trung tâm và các VPS là các máy trạm. Khi thêm vào một VPS một địa chỉ IP thì nó
tạo ra một cạc mạng ảo venet0:i nhƣng cạc mạng này không hỗ trợ giao thức ARP vì
nó không có địa chỉ MAC, nó cũng không hỗ trợ bridge và không thể gán địa chỉ IP
bởi chính VPS đó. Các gói tin đi từ VPS này sang VPS khác hay ra
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-NGHIÊN CỨU HỆ THỐNG MÁY ẢO MÃ NGUỒN MỞ OPENVZ.pdf