Khóa luận Nghiên cứu hệ thống máy ảo mã nguồn mở openvz

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

pdf97 trang | Chia sẻ: haohao | Lượt xem: 1173 | Lượt tải: 0download
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:

  • pdfLUẬN VĂN-NGHIÊN CỨU HỆ THỐNG MÁY ẢO MÃ NGUỒN MỞ OPENVZ.pdf