Quản trị dịch vụ trên Linux (Linux Service Management)

  • 13 trang
  • file .pdf
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN MẠNG MÁY TÍNH & TRUYỀN THÔNG
Quản trị dịch vụ trên Linux
(Linux Service Management)
Trình bày: TS. NGÔ BÁ HÙNG
Email: [email protected]
Quản trị dịch vụ trên Linux
Dịch vụ
• Là một ứng dụng hệ thống, thông thường được chạy
ngầm (background) để chờ và đáp ứng các yêu cầu
gởi đến từ các chương trình (client) khác
• Được gọi với tên là daemons
• Thường có tên kết thúc bằng ký tự d
– ví dụ: httpd, named, ftpd, sshd, …
• Được khởi tạo tự động bởi tiến trình init - chương
trình đầu tiên được thực hiện sau kernel được nạp
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 2
Quản trị dịch vụ trên Linux
Tiến trình khởi động Linux
• Các chương trình liên quan trong tiến trình khởi
động
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 3
Quản trị dịch vụ trên Linux
Các mô hình quản lý dich vụ
• Mỗi dịch vụ có một tập tin script /etc/init.d để tương
tác với dịch vụ
• Init sẽ khởi tạo và quản trị các dịch vụ thông qua các
tập tin scripts trong /etc/init.d
• Có nhiều chương trình init khác nhau tùy thuộc vào
sự chọn lựa của distributor
• Hai chương trình init phổ biến là:
– SysV init: Mô hình Unix truyền thống (System V)
– Upstart: Mô hình mới, được sử dụng trên Ubuntu
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 4
Quản trị dịch vụ trên Linux
SysV Init
• Dựa trên mức độ thực thi (run level):
• Run level:
– Là trạng thái của máy tính tương ứng với một tập
các tiến trình đang được thực thi nào đó
– Có giá trị từ 0-6
• /etc/inittab mô tả các tiến trình mà init cần thực thị
tương ứng với mỗi run level
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 5
Quản trị dịch vụ trên Linux
Runlevels
Runlevel Scripts được thực Trạng thái máy tính
thi
0 /etc/rc.d/rc0.d/ shutdown/halt system
1 /etc/rc.d/rc1.d/ Single user mode
2 /etc/rc.d/rc2.d/ Multiuser with no network services exported
3 /etc/rc.d/rc3.d/ Default text/console only start. Full multiuser
4 /etc/rc.d/rc4.d/ Reserved for local use. Also X-windows (Slackware/BSD)
5 /etc/rc.d/rc5.d/ XDM X-windows GUI mode (Redhat/System V)
6 /etc/rc.d/rc6.d/ Reboot
s or S Single user/Maintenance mode (Slackware)
M Multiuser mode (Slackware)
Các scripts trong /etc/rc.d/rc*.d/ là các links đến các scripts
trong /etc/init.d/
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 6
Quản trị dịch vụ trên Linux
Thao tác trên các dịch vụ
• Thư mục /etc/init.d chứa các script file tương tác với
các dịch vụ
– /etc/init.d/script-file {stop/start/restart}
• Ví dụ: Khởi tạo, khởi tạo lại, và kết thúc dịch vụ
mạng
– sudo /etc/init.d/networking start
– /etc/init.d/networking restart
– /etc/init.d/networking stop
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 7
Quản trị dịch vụ trên Linux
Upstart init
• SysV init - Runlevel based system ( runlevel 0-6)
– Không phản ứng kịp thời đối với các sự kiện của hệ
thống: hot plug, cắm USB, Projector, …
• Upstart init - Event based system
– Được đề nghị bởi Scott James Remnant, năm 2006
cho hệ thống Ubuntu
– Cơ chế mềm dẽo hơn để kích hoạt các dịch vụ
– Kích hoạt các công việc (jobs) tùy thuộc vào sự kiện
phát sinh
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 8
Quản trị dịch vụ trên Linux
Công việc (job)
• Là một chuỗi các lệnh mà upstart init read,
• Các lệnh này bao gồm các tập tin thực thi hoặc các
tập tin dạng script
• Là một tác vụ (task) hoặc một dịch vụ (service)
• Được init kích hoạt khi một sự kiện nào đó phát sinh
• Được định nghĩa trong các files (mô tả lệnh và sự
kiện kích hoạt ) nằm trong thư mục /etc/event.d
• Mặc định có các jobs tương ứng với các scripts thực
thị ở các runlevel khác nhau của SysV init
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 9
Quản trị dịch vụ trên Linux
Tiện ich initctl
• Cho phép nhà quản trị giao tiếp với upstart init
• Liệt kê các jobs
– sudo initctl list
• Bắt đầu một job
– sudo initctl start job-name
– Hoặc sudo start job-name
• Kết thúc một job
– sudo initctl stop job-name
– Hoặc sudo stop job-name
28/12/2009 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 10