DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ POP Một giao thức truy nhập thư, sử dụng chủ yếu năng lực của Client IMAP Một giao thức nhận thư, sử dụng chủ yếu năng lực máy chủ MSS Thành phần lưu
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN QUỐC ANH
ĐẢM BẢO HIỆU NĂNG VÀ ĐỘ TIN CẬY CHO HỆ THỐNG
LUẬN VĂN THẠC SỸ
HÀ NỘI - 2006
Trang 2NGUYỄN QUỐC ANH
ĐẢM BẢO HIỆU NĂNG VÀ ĐỘ TIN CẬY CHO
Trang 3HÀ NỘI - 2006
MỤC LỤC
LỜI CẢM ƠN 9
MỞ ĐẦU 10
CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG 11
THƯ ĐIỆN TỬ 11
1.1 Thành phần POP3 11
1.2 Thành phần chuyển thư(MTA) 14
1.3 Thành phần SMTP: 19
1.4 Thành phần IMAP 23
1.5 Thành phần MSS 24
1.6 Thành phần chỉ mục(Directory) 28
1.7 Webmail Server 29
1.8 Một số thành phần khác có liên quan 31
1.9 Kiến trúc hệ thống Mail tập trung 31
1.10 Kiến trúc hệ thống Mail phân tán 33
1.11 Kiến trúc lai ghép 33
1.12 Kiến trúc hệ thống của nhà cung cấp dịch vụ 34
CHƯƠNG 2: CÁC KỸ THUẬT CẦN ÁP DỤNG KHI XÂY DỰNG HỆ THỐNG THƯ ĐIỆN TỬ DÀNH CHO NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP 36
2.1.Đảm bảo hiệu năng 36
2.1.1 Định cỡ hệ thống 36
2.1.2 Phát triển kiến trúc của hệ thống: 41
2.1.3 Các phương pháp nâng cấp, tách tải trên 1 cụm 43
2.1.4 Các phương pháp phân chia tải cho nhiều cụm 44
2.1.5 Một số đề xuất và khuyến nghị: 44
2.2 Đảm bảo độ sẵn sàng cao 45
2.2.1 Đối với các thành phần xử lý 45
2.2.2 Chế độ tin cậy cao đối với các thành phần lưu trữ 49
2.2.3 Một số đề xuất và khuyến nghị 56
2.3 An ninh thư điện tử 57
2.3.1 Tổng quan về Công cụ chống spam và virus 57
2.3.2 Xây dựng các chính sách chống spam và virus: 63
2.3.3 Triển khai các thành phần an ninh trong hệ thống: 65
CHƯƠNG 3: HỆ THỐNG MAIL QUY MÔ LỚN VÀ CÁC THÁCH THỨC 72
3.1 Hệ thống thư điện tử quy mô lớn 72
3.2 Các thách thức đối với hệ thống thư điện tử quy mô lớn 72
3.2.1 Vấn đề lưu lượng lớn 72
3.2.2 Virus, Spam, Relay 72
3.2.3 Các khó khăn về băng thông trên mạng diện rộng 75
CHƯƠNG 4: ĐỀ XUẤT YÊU CẦU KỸ THUẬT ĐỐI VỚI HỆ THỐNG THƯ ĐIỆN TỬ LƯU LƯỢNG LỚN 76
4.1 Về mặt kiến trúc 76
4.2 Yêu cầu về tính năng chung của hệ thống 76
4.3 Yêu cầu về tính sẵn sàng của hệ thống 76
4.4 Yêu cầu về hạ tầng cho hệ thống 77
Trang 44.7 Yêu cầu về các tính năng của POP3 78
4.8 Yêu cầu về các tính năng hỗ trợ IMAP4 78
4.9 Yêu cầu về các tính năng hỗ trợ Webmail 78
4.10 Yêu cầu về các tính năng của MSS 79
4.11 Yêu cầu về các tính năng chống virus và spam 80
4.12 Yêu cầu về cơ sở dữ liệu hộp thư của hệ thống 80
4.13 Yêu cầu về hệ thống quản trị 81
4.14 Yêu cầu về kiểm soát chất lượng dịch vụ 81
4.15 Yêu cầu về một số tính năng khác 82
CHƯƠNG 5: GIẢI PHÁP XÂY DỰNG HỆ THỐNG THƯ ĐIỆN TỬ CHO MẠNG VNN 83
5.1 Tiêu chí và căn cứ thiết kế hệ thống 83
5.2 Thiết kế tổng thể: 88
5.3 Thiết kế chi tiết 96
5.4 Đảm bảo độ tin cậy cao 106
5.5 Quản trị hệ thống 110
5.6 Giải pháp chống Virus/Spam 111
5.7 Giải pháp mở rộng hệ thống 119
KẾT LUẬN 123
TÀI LIỆU THAM KHẢO 124
Trang 5DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ
POP Một giao thức truy nhập thư, sử dụng chủ yếu năng lực của Client
IMAP Một giao thức nhận thư, sử dụng chủ yếu năng lực máy chủ
MSS Thành phần lưu trữ thư
SMTP Thành phần gửi nhận thư
LDAP/Directory Thành phần chỉ mục
Webmail Thành phần phục vụ truy nhập thư qua Web
Virus Các phần mềm/đoạn mã phát tán gây hại trên mạng
Spam Các thư rác không mong muốn/hoặc quấy rối
Relay Hiện tượng sử dụng máy chủ để gửi thư không hợp lệ
MTA Chịu trách nhiệm định tuyến, phân phối thư
ISP Nhà cung cấp dịch vụ Internet
DNS Dịch vụ tên miền
Message Tin nhắn, có thể hiểu tương đương thư điệntử
LMTP Giao thức thu gọn để chuyển thư
Dispacher Là một trình gửi lưu lượng đa nhiệm, chuyên gửi kết nối SMTP hoặc LMTP
đến tổ hợp của các luồng SMTP hoặc LMTP server để xử lý theo từng giao thức cụ thể
RFC Bản ghi nhớ - phục vụ việc bàn luận và duyệt các chuẩn
ACL Access Control List
DIT Cây thông tin thư mục
Replication Đồng bộ dữ liệu
FireWall Tường lửa
Load Balancer Thiết bị chia tải cứng
DNS Round Robin Chia tải thông qua DNS
RAID Redundant Array of independent Disks
SLED Single Large Expensive Disks - Đĩa đơn dung lượng lớn giá thành cao LUN Logical Unit Khối cục bộ
MTDL Mean time to data loss - Thời gian dừng dịch vụ do mất dữ liệu
Mailling list Danh bạ gửi thư
Authenticate Xác thực người dùng
Mail Filter Thành phần lọc thư
Black List Danh sách đen - dùng cho chống spam
SSL Secure Sockets layer
Router Định tuyến
VPN Virtual Private Network
Multiplexor Trung chuyển cho thành phần lưu thư
Appliance Thiết bị cứng hoá dùng cho lọc thư
Multi-Process Xử lý đa tiến trình
Foward Chuyển tiếp(thư)
Attached File File đính kèm
Quota Hạn mức(hộp thư)
Sieve Một ngôn ngữ tiêu chuẩn dùng cho lọc thư
MultiMaster Nhiều chủ thể chính - Dùng cho đồng bộ LDAP
Trang 6Bảng Trang
Trang 7Hình 16: Kiến trúc đấu nối của nhà cung cấp dịch vụ 27
Trang 9LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo hướng dẫn, tiến sỹ Tôn Quốc Bình, người đã giành nhiều thời gian chỉ bảo để tôi có thể hoàn thành luận văn Những lời cảm ơn chân thành nhất cũng xin được gửi đến các đồng nghiệp, những người thực sự mong muốn và giúp đỡ tôi đạt được các hiểu biết sâu hơn về lĩnh vực này
Không có sự hỗ trợ của gia đình và nhà trường, chắc chắn quá trình học tập và nghiên cứu của tôi sẽ vấp phải rất nhiều khó khăn
Một lần nữa, tôi xin được bày tỏ lòng biết ơn đối với tất cả những người đã ủng hộ và giúp
đỡ tôi hoàn thành đề án tốt nghiệp, xin gửi lời chúc sức khoẻ và hạnh phúc
Trang 10MỞ ĐẦU
Ngày nay hệ thống thư điện tử vẫn đang giữ vị thế là một phương tiện trao đổi thông tin hữu ích hàng đầu trên mạng Internet và là một dịch vụ cơ bản của các ISP(Internet Service Provider) Trong môi trường Internet đang phát triển rất nhanh dẫn đến sự bùng nổ thuê bao cùng các hiệu ứng spam, lây nhiễm virus …, đòi hỏi của khách hàng đối với các nhà cung cấp dịch vụ ngày càng cao kéo theo các khó khăn không ngừng gia tăng đối với các hệ thống thư điện tử quy mô lớn về hiệu năng, độ tin cậy, chịu đựng quá tải, khả năng chống spam, virus, …
Chúng ta đã biết khá nhiều các phần mềm hệ thống thư điện tử, phần mềm lọc thư, các phương thức chia sẻ tải, các phương thức cài đặt cụm…, nhưng thiết kế như thế nào để tích hợp được một hệ thống thư điện tử với quy mô của nhà khai thác chuyên nghiệp lại là một vấn đề khó khăn, vì những thiết kế của các nhà khai thác lớn như Yahoo, Google, China.com
… thường không được tiết lộ
Trong khuôn khổ của đề tài, ngoài việc trình bày các kiến thức nền tảng để có thể xây dựng
hệ thống thư điện tử quy mô lớn, học viên đưa ra đề xuất về các yêu cầu kỹ thuật đối với hệ thống thư điện tử cho các nhà cung cấp dịch vụ nhằm đáp ứng được các yêu cầu khắt khe của người sử dụng Phần cuối của đề tài trình bày giải pháp xây dựng hệ thống thư điện tử cho mạng VNN với thiết kế đảm bảo cung cấp dịch vụ với 500 nghìn hộp thư, có kiến trúc
mở rộng được đến 2,5 triệu hộp thư, đáp ứng được các yêu cầu kỹ thuật đã đặt ra Giải pháp này có thể sử dụng để tham khảo như một một ví dụ
Mặc dù đã có nhiều cố gắng, nhưng đề tài không thể tránh khỏi các thiếu sót, rất mong nhận được sự chỉ bảo góp ý của các thầy cô giáo, các đồng nghiệp để đề tài được hoàn thiện hơn
Trang 11CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG
Trang 12hoặc một máy phục vụ có thể hỗ trợ chức năng thư điện tử để cung cấp dịch vụ cho các máy trạm khác Giao thức POP3(Post Ofice Protocol Version 3) được cung cấp để cho phép các máy trạm tự động truy nhập thư điện tử trên máy phục vụ Điều này đồng nghĩa với việc giao thức POP3 được sử dụng để cho phép các máy trạm lấy thư về từ máy phục vụ đang lưu giữ thư
POP3 không được thiết kế để phục vụ các tác vụ về thư điện tử ngay trên máy phục vụ, thông thường thì thư bị xóa ngay sau khi tải về máy trạm Nhu cầu lưu thư và giao dịch ngay trên máy phục vụ sẽ được giải quyết với các giao thức có tính năng cao cấp hơn như IMAP4
Sau đây là một ví dụ về phiên làm việc POP3:
S: <wait for connection on TCP port 110> // C hờ đợi kết nối tại cổng 110
C: <open connection> // Mở kết nối
S: +OK POP3 server ready 1896.697170952@dbc.mtview.ca.us
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb // Sử dụng hàm băm MD5 để
tóm lược chuỗi bí mật được chia sẻ trong phiên làm việc để xác thực đối tượng làm việc
S: +OK mrose's maildrop has 2 messages (320 octets): // Hộp thư có 2 thư điện tử
C: STAT // B ắt đầu giao dịch
S: +OK 2 320 // Trạng thái chờ lệnh
C: LIST // Liệt kê số lượng thư
S: +OK 2 messages (320 octets)
C: DELE 1 // Xóa thư thứ nhất
S: +OK thư điện tử 1 deleted // Đã xóa xong
C: RETR 2
S: +OK 200 octets
S: <the POP3 server sends message 2> Gửi thư thư hai đi
S:
C: DELE 2 // X óa thư số 2
S: +OK message 2 deleted // Xóa xong
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: <close connection> // Đóng kết nối
S: <wait for next connection> // Chờ đợi kết nối tiếp theo
Trang 13Hình 2: Giao thức POP3
Trang 14Để phục vụ việc chia thư cho các kênh xử lý, MTA tra cứu thông tin người dùng và tên miền trực tiếp từ máy phục vụ chỉ mục(LDAP server), máy phục vụ chỉ mục trở thành kết nối quan trọng trong quá trình chuyển nhận thư điện tử Kết quả của các truy vấn LDAP được lưu trữ
bộ nhớ đệm(cached) trong quá trình khai thác, với kích thước và thời gian có thể định hình được, do vậy có thể điều chỉnh được hiệu suất
Thành phần MTA chịu trách nhiệm định tuyến, chuyển và phân phối thư Các luồng thư đi qua các kênh giao tiếp khác nhau, được trình bày qua hình vẽ dưới đây(sở dĩ có các kênh khác nhau vì mỗi thư có thể có một đích đến khác nhau, và có các đặc điểm khác nhau đòi hỏi phải phân loại và chia ra các kênh xử lý khác nhau) Người quản trị có thể cấu hình để thư được chuyển thẳng đến các kênh giao tiếp khác nhau dựa vào địa chỉ của thư
Hình 3: Kiến trúc kênn
Kiến trúc kênh: Có thể lập cấu hình cho các kênh từ tập tin cấu hình dạng văn bản Qua
thông tin cấu hình kênh, quản trị viên có thể thiết lập các thông số kiểm soát, xử lý thư điện
tử Phương pháp xử lý bao gồm chỉnh hiệu suất, báo cáo hiện trạng hệ thống Ví dụ, các kênh có thể được xem là lưu lượng phân đoạn theo nhóm hoặc đơn vị, theo kích thước thư điện tử, giới hạn có thể xem là lưu lượng giới hạn, và các luật thông báo hiện trạng chuyển giao(delivery status notification rules) có thể được lập ra theo yêu cầu của quản trị hệ thống Các thuộc tính chẩn đoán có thể được lập cấu hình theo cơ sở từng kênh Con số thông số lập theo kênh có thể rất lớn
Mỗi kênh sẽ chứa từ 1 đến 2 chương trình gọi là slave, có trách nhiệm xử lý thư điện tử vào các kênh, và một chương trình gọi là master, sẽ có trách nhiệm đưa thư điện tử ra khỏi kênh Ở đây sẽ tồn tại một hàng đợi thư ra để lưu tạm thư chờ chuyển thư ra ngoài
Các chương trình sẽ có các chức năng khác nhau như:
Chương trình Slave:
1 Chấp nhận thư vào từ các giao diện khác
2 Đưa chúng vào hàng đợi
3 Hoặc từ chối thư nếu không được phép đưa vào hệ thống
Trang 15Chương trình Master:
1 Xử lý các thư trong hàng đợi
2 Lưu thư nếu các thư cần được xử lý thêm bởi các kênh khác
3 Chuyển vận thư đến các giao diện khác, xóa đi sau khi chuyển xong
4 Phân phối thư đến các hệ thống đích, ví dụ như các hệ thống lưu trữ thư
Máy phục vụ thư điện tử cung cấp các kênh mặc định như sau:
Kênh SMTP: Cho phép các thư điện tử trên mạng IP được phân phối hoặc nhận Cả hai kênh master và slaver đều được cung cấp
Kênh LMTP: Cho phép thư định hướng thẳng từ MTA đến thành phần lưu trữ thư điện tử Kênh này không thông qua SMTP mà kết nối thằng với MSS(Messaging Store System)
Kênh Pipe: Sử dụng cho các chương trình chia thư luân phiên Cho phép chia thư tới các thành phần lưu trữ thư chứ không đưa thẳng vào hộp thư
Kênh Local: Chia thư tới /var/mail, tương thích với các Unix mail client dạng cũ
Kênh xử lý lại(Reprocessing): Dùng cho các thư điện tử được chấp nhận lại
Kênh Defracmentation: Tập hợp lại các thành phần vào 1 thư điện tử nguyên gốc để hỗ trợ thư điện tử dạng MIME
Kênh hoán chuyển(Conversion): Thực hiện hoán chuyển các phần của thư điện tử, hữu ích cho các việc thay lại địa chỉ hoặc tái định dạng lại kiểu nội dung
Hình 4: Kênh hoán chuyển Thư điện tử được định tuyến đến một kênh tùy thuộc theo kết quả ghi lại các địa chỉ đến theo các luật ghi lại tên miền(domain rewriting rules) Các luật ghi lại này chuyển địa chỉ thành địa chỉ tên miền thật, và xác định các kênh tương ứng của chúng Các địa chỉ xuất hiện trong lớp chuyển vận và đầu mục thư điện tử được ghi lại theo các luật này Lớp chuyển vận là phong bì của thư điện tử, có chứa thông tin định tuyến và người dùng không thấy được Đây thực sự là cơ chế chuyển giao thư điện tử đến người nhận tương ứng
Trang 16thư điện tử được gửi đến Tùy theo sơ đồ mạng, hệ thống định tuyến có thể là bước đầu tiên để đến nơi cần đến, hoặc có thể là điểm đến sau cùng
Sau khi hoàn tất quá trình ghi lại, hệ thống định tuyến sẽ được kiểm tra các phần kênh của tập tin cấu hình Mỗi kênh có một hoặc nhiều tên host đi kèm với nhó Tên hệ thống định tuyến được so sánh với từng cái tên để xác định sẽ xếp thư điện tử vào kênh nào Chẳng hạn luật ghi lại đơn giản là thor.innosoft.com $U@$D Qui tắc này chỉ phù hợp với địa chỉ trong tên miền thor.innosoft.com Các địa chỉ trùng khớp được ghi lại với template $U@$D,
$U chỉ định phần tên người dùng bên trái của địa chỉ (trước chữ @), và $D chỉ định phần tên miền phía bên phải của địa chỉ (sau chữ @) Thư điện tử sẽ được xếp hàng đến kênh có nhãn đuôi tên miền thor.innosoft.com
Các luật ghi lại thường là cực mạnh, và có thể thực hiện các thay thế phức tạp dựa trên bảng ánh xạ, tra cứu thư mục LDAP, và tra cứu cơ sở dữ liệu Tuy đôi khi khó hiểu, chúng rất tiện lợi vì vận hành ở mức thấp, và chỉ dùng chi phí trực tiếp khá thấp trong chu kỳ xử lý thư điện tử
Chương trình quản lý thư điện tử - Điều khiển công việc(Job Controller): Các
chương trình kênh vận hành theo cơ chế kiểm soát công việc của chương trình điều khiển công việc, chương trình kiểm soát hàng đợi thư điện tử và chạy các chương trình thực hiện chuyển giao thư điện tử Chương trình điều khiển công việc vận hành theo tiến trình đa nhiệm và là một trong số ít các tiến trình luôn chạy trong hệ thống thư điện tử Các tác vụ
xử lý kênh được tạo ra bởi chính chương trình điều khiển công việc, nhưng chúng hiện diện rất ngắn ngủi và không xuất hiện khi không có tác vụ nào cần chúng
Các kênh Slave vốn phản ứng với những kích thích từ phía ngoài, sẽ báo cho chương trình điều khiển công việc những tập tin thư điện tử mới lập ra Chương trình điều khiển công việc nhập thông tin này vào cấu trúc dữ liệu cục bộ của nó, và nếu cần thiết, tạo một kênh master để xử lý thư điện tử Quá trình tạo ra công việc này có thể không cần thiết nếu chương trình quản lý thư điện tử xác định một kênh có thể xử lý tập tin thư điện tử vừa mới lập Khi công việc kênh master bắt đầu, nó nhận tác vụ thư điện tử từ chương trình quản lý thư điện tử Khi hoàn tất, nó sẽ cập nhật chương trình quản lý thư điện tử về hiện trạng tiến trình xử lý: thư điện tử đã xóa khỏi hàng đợi, hoặc thư điện tử cần được lên kế hoạch để xử
lý lại Chương trình quản lý thư điện tử duy trì thông tin về thư điện tử ưu tiên và các lần xử
lý chuyển giao bị lỗi trước đây, cho phép lập kế hoạch khá tốt cho công việc của các kênh Chương trình quản lý thư điện tử còn theo dõi tình trạng của các phần công việc, nó có rỗi, rỗi bao lâu, nó có bận không
Dispatcher: Dispatcher là một tiến trình khác luôn hiện diện trong hệ thống phục vụ thư
điện tử Là một trình gửi lưu lượng đa nhiệm, chuyên gửi kết nối SMTP hoặc LMTP đến tổ hợp của các luồng SMTP hoặc LMTP server để xử lý theo từng giao thức cụ thể Chương trình SMTP và LMTP server cung ứng một tổ hợp các luồng trong phạm vi của dispatcher Sau khi xử lý một thông điệp, có thể là từ chối nhận nó, hoặc xếp nó vào kênh đích, luồng công việc, sẵn sàng nhận thêm phần việc từ dispatcher
Dispatcher có thể chặn lưu lượng đến dựa theo địa chỉ IP và có thể giảm lưu lượng để ngăn chặn tấn công từ chối dịch vụ (DoS) Nó còn tạo và đóng các tiến trình SMTP hoặc LMTP
Trang 17server dựa theo tải và cấu hình Như vậy các chương trình slave SMTP hoặc LMTP nằm dưới
sự kiểm soát của dispatcher, chứ không phải chương trình quản lý thư điện tử
LMTP: MTA của hệ thống có thể dùng LMTP(Local Mail Transfer Protocol), định nghĩa trong
RFC 2033) để chuyển giao lưu trữ thư điện tử trong tình huống triển khai một máy phục vụ thư điện tử nhiều tầng Trong trường hợp này, ở nơi ta sử dụng trình chuyển tiếp thư bên trong và kho lưu trữ thư ở tầng dưới, các trình chuyển tiếp chịu trách nhiệm mở rộng địa chỉ
và phương pháp chuyển giao, như tự động phản hồi và chuyển tiếp, ngoài ra còn dùng để
mở rộng danh sách thư(mailling list) Việc chuyển giao đến thành phần lưu trữ thư thông thường sẽ qua SMTP, thành phần này thường yêu cầu hệ thống lớp dưới tra cứu lần nữa địa chỉ người nhận trong thư mục LDAP Để nhanh và hiệu quả, MTA có thể dùng LMTP thay vì SMTP để chuyển giao thư điện tử đến kho lưu thư LMTP server của của một số hệ thống thư điện tử không phải là một LMTP server đa chức năng, nhưng đúng hơn, là một giao thức riêng giữa các trình chuyển tiếp thư và các kho lưu thư ở tầng dưới
Tính năng chuyển giao của LMTP: LMTP server của MTA hiệu quả hơn trong việc chuyển
giao các thư điện tử đến kho lưu thư vì:
- Giảm tải trên các thành phần lưu thư: Vì các trình chuyển tiếp có tính năng mở
ngang và các kho lưu trữ lại không có, tốt nhất là chuyển quá trình xử lý cho trình chuyển tiếp càng nhiều càng tốt
- Giảm tải trên các máy phục vụ LDAP: Hạ tầng LDAP thường là yếu tố giới hạn
trong việc triển khai hệ thống nhắn tin thư tín lớn
- Giảm số hàng đợi thư điện tử: Số hàng đợi càng nhiều trên cả trình chuyển tiếp
và kho lưu trữ khiến thư điện tử bị mất, và khiến quản trị viên gặp khó khăn triển khai hệ thống thư tín
Xử lý thư trong triển khai hai lớp không có LMTP: Hình dưới thể hiện phần trình bày
tình huống triển khai 2 lớp không có LMTP
Trang 18Không có LMTP, trong quá trình triển khai hai mức với các trình chuyển tiếp ở trước hệ thống lưu trữ, việc xử lý thư điện tử vào bắt đầu bằng kết nối với cổng SMTP được sử dụng bởi dispatcher trên máy chuyển tiếp thư và được chuyển qua xử lý trên tiến trình tcp_smtp_server Tiến trình này thực hiện nhiều việc với thư điện tử gửi vào, bao gồm:
- Tra cứu người dùng trong thư mục (đọc đĩa)
- Xác định người dùng trong domain được lưu trú bởi hệ thống thư điện tử này
- Xác định liệu người dùng là hợp lệ trên domain
- Ghi lại địa chỉ phong bì thư, như @mailhost:user@domain
- Sắp vào hàng đợi thư điện tử để chuyển giao đến thành phần lưu thư
Tiến trình smtp_client sẽ chọn lấy thư điện tử thư tín từ hàng đợi và gửi nó đến máy phục
vụ lưu thư Trên máy phục vụ lưu thư, một số quá trình xử lý tương tự sẽ diễn ra Dispatcher
sẽ lấy cổng SMTP và lập kết nối, và chuyển nó đến xử lý ở tiến trình tcp_smtp_server Quá trình này thực hiện một loạt các thao tác, bao gồm:
- Tra cứu người dùng trong thư mục (đọc đĩa)
- Xác định người dùng trong domain được lưu chứa bởi hệ thống thư điện tử này
- Xác định liệu người dùng là hợp lệ trên domain(đọc đĩa)
- Ghi lại địa chỉ phong bì để dẫn hướng thư điện tử đến kênh ims_ms(ghi đĩa)
- Sắp vào hàng đợi để chuyển giao thư điện tử đến nơi lưu trữ (ghi đĩa)
Quá trình ims_ms sẽ chọn thư điện tử và cố chuyển nó đến nơi lưu trữ (ghi đĩa)
Quá trình này mất 5 thao tác I/O : 2 lần đọc đĩa và 3 lần ghi đĩa
Xử lý thƣ trong triển khai hai tầng dùng LMTP: Hình dưới thể hiện tiến trình triển khai
2 lớp có dùng LMTP
Hình 6: Mô hình 2 tầng có LMTP
Trang 19Khi có LMTP, kết nối trên cổng SMTP của máy chuyển tiếp thư được dispatcher chọn và chuyển cho quá trình tcp_smtp_server Tiến trình này thực hiện nhiều việc xử lý thư điện tử
tới, trong đó có:
- Tra cứu người dùng trong thư mục (đọc đĩa)
- Xác định người dùng trong tên miền của hệ thống thư điện tử này
- Xác định liệu người dùng là hợp lệ trên tên miền hay không
- Xác định máy chứa thư điện tử nào lưu chứa hộp thư người dùng
- Ghi lại địa chỉ phong bì thư, @mailhost:uid@domain.LMTP hoặc là
mailhost:uid@domain.LMTPNATIVE (ghi đĩa)
- Sắp vào hàng đợi thư điện tử để chuyển giao đến thành phần lưu trữ thư (ghi đĩa)
Địa chỉ của định dạng user@domain.LMTP và user@domain.LMTP sẽ được định tuyến đến
hệ thống lưu thư điện tử qua kênh tcp_lmtp hoặc kênh tcp_lmtpnative Các kênh này
giao tiếp với kho lưu thư dùng LMTP thay vì SMTP Trên máy lưu trữ, dispatcher sẽ nhận kết nối đến cổng LMTP và chuyển cho quá trình lmtp_server LMTP server sẽ đưa thư điện tử
vào trong hộp thư người dùng hoặc vào hộp thư bản địa UNIX (ghi đĩa) Nếu quá trình
chuyển giao thư điện tử thành công, thư điện tử sẽ được xóa khỏi hàng đợi trên máy chuyển tiếp thư Nếu không thành công, thư điện tử sẽ còn ở máy chuyển tiếp thư Lưu ý rằng quá trình LMTP trên máy lưu thư không liên kết bất cứ máy MTA vào để xử lý địa chỉ hay thư mực
Cả quá trình này chỉ mất 3 thao tác IO: 1 đọc đĩa và 2 ghi đĩa
1.3 Thành phần SMTP [2,3]:
Là thành phần đảm trách việc chuyển thư giữa các máy phục vụ trên mạng Internet SMTP
có hai hướng là SMTP vào và SMTP ra SMTP ra phục vụ việc chuyển thư từ trong hệ thống
đi ra các hệ thống khác bên ngoài cho đến khi giao nhận xong với máy phục vụ SMTP vào của hệ thống đích(hệ thống thư đến theo địa chỉ yêu cầu của khách hàng) SMTP vào phục
vụ tiếp nhận các thư từ ngoài chuyển đến, sau đó chuyển sang thành phần chia thư để lưu trữ vào các thiết bị lưu trữ, chờ khách hàng tải về
SMTP tuân thủ chuẩn giao thức sẽ nêu dưới đây, dẫn tới sự giao nhận thư thành công cho
dù các hệ thống Mail được cài đặt trên các nền khác nhau công nghệ của Sun, Openwave, Critical Path, Microsoft …
Giao thức SMTP:
SMTP là một giao thức để phục vụ việc chuyển thư điện tử tin cậy và hiệu quả SMTP không phụ thuộc vào các hệ thống giao nhận và chỉ đòi hỏi kênh truyền dữ liệu Một tính năng quan trọng của SMTP là có khả năng giao vận qua mạng, thường gọi là “SMTP mail relaying” Một mạng sẽ bao gồm nhiều trạm TCP có khả năng truy nhập trên mạng Internet công cộng, các trạm TCP trong một mạng bị cô lập bởi tường lửa, hoặc các trạm trong một môi trường mạng LAN hoặc WAN sử dụng giao thức không phải TCP/IP Sử dụng SMTP, một tiến trình có thể chuyển vận thư điện tử tới một tiến trình khác trong cùng một mạng hoặc tới vài mạng khác thông qua một cổng chuyển tiếp giữa hai mạng
Với cách này, một thư điện tử có thể đi qua một số các phương tiện trung gian hoặc gateway trên đường đi từ người gửi đến người nhận Cơ chế chuyển thư của hệ thống tên miền được sử dụng để nhận dạng các trạm đích tiếp theo cho các thư điện tử sẽ được chuyển vận
Trang 20Mục tiêu của một thư điện tử là được chuyển tới một máy khách khác, và máy khách xác định tên miền như thế nào để thư điện tử có thể chuyển vận là một vấn đề cần quan tâm Trong một số trường hợp, máy khách SMTP sẽ xác định địa chỉ cuối của thư điện tử Trong một số trường hợp khác, máy khách SMTP sẽ thi hành một giao thức POP hoặc IMAP, hoặc khi một máy khách SMTP ở trong môi trường dịch vụ chuyển vận, tên miền xác định được sẽ cho một đích trung gian để thư điện tử chuyển qua Các máy khách SMTP sẽ chú trọng tới tên miền đích trong thư điện tử Một máy phục vụ SMTP với đầy đủ năng lực xử lý, có thể chịu đựng được chuyển tiếp thư từ các máy phục vụ SMTP không đủ năng lực và hỗ trợ tất
cả các hàng đợi, các tính năng địa chỉ trong các đặc tả Điều này có nghĩa là với một máy khách SMTP, trước hết là cần xác định tên miền đích, xác định được một máy phục vụ SMTP
để có thể chuyển thư đến, sau đó thực hiện chuyển thư
Trang 22Hình 8: Giao thức SMTP Một máy phục vụ SMTP có thể là đích cuối hoặc là một trạm trung chuyển, hoặc là một cổng vận chuyển Lệnh của SMTP được sinh bởi máy khách SMTP và gửi tới máy phục vụ SMTP Máy phục vụ SMTP phản hồi lại cho máy khách để giải phóng lệnh
Việc chuyển thư điện tử có thể xảy ra với một kết nối đơn giữa bên gửi SMTP và bên nhận cuối, hoặc có thể xảy ra trong một chuỗi các hệ thống trung chuyển Trong tình huống khác, một phản hồi kết thúc giao vận xảy ra: hoặc giao vận đòi hỏi máy phục vụ chấp nhận thư điện tử hoặc sẽ có một báo cáo lỗi phân phối thư
Khi kênh vận chuyển được khởi tạo và thiết lập xong giao thức bắt tay, có thể khởi tạo giao dịch thư điện tử Một giao dịch chứa một dãy các lệnh mô tả quá trình các bên gửi nhận thư
và quá trình vận chuyển thư(chứa cả các tiêu đề và các cấu trúc khác) Khi cùng một thư được gửi đến nhiều người nhận, giao thức này sẽ khuyến khích các giao vận với một bản sao cho tất cả mọi người nhận tại cùng một tên miền đích(destination domain)
Máy phục vụ sẽ phản hồi cho từng câu lệnh, thông tin phản hồi sẽ chỉ ra câu lệnh đã được chấp nhận, các lệnh bổ sung được chờ đợi thực hiện
Khi một thư điện tử được gửi thành công, máy khách có thể yêu cầu ngắt kết nối hoặc có thể khởi tạo một tác vụ khác Hơn nữa, một máy khách SMTP có thể sử dụng một kết nối đến máy phục vụ SMTP để xác minh một địa chỉ thư điện tử hay lấy một danh sách địa chỉ thư điện tử(mailing list)
Trang 23Ví dụ về một thủ tục SMTP: Thư điện tử gửi bởi Smith tại máy Alpha.ARPA tới Jones, Green,
và Brown tại máy Beta.ARPA Giả định rằng máy Alpha kết nối trực tiếp đến máy Beta:
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah
S: etc etc etc
sẽ chuyển hầu hết các công việc cần thực hiện đối với thư điện tử sang cho máy phục vụ tiến hành Giao thức này nếu được triển khai sẽ đòi hỏi hiệu năng máy phục vụ rất lớn nếu
có nhiều người sử dụng dịch vụ loại này
Trang 24(1) Kết nối mà không có tiền-xác thực (OK greeting)
(2) Tiền-xác thực cho kết nối (PREAUTH greeting)
(3) Từ chối kết nối (BYE greeting)
(4) Login thành công hoặc xác thực thành công
(5) Thành công lựa chọn hoặc lệnh kiểm tra
(6) Lệnh close, hoặc thất bại lệnh select hoặc examine
(7) Lệnh logout, tắt máy phục vụ, hoặc đóng kết nối
Hình 9: Giao thức IMAP
1.5 Thành phần MSS [2]
Thành phần phục vụ lưu thư(Messaging Store System - MSS) là thành phần chịu trách nhiệm lưu trữ cho người sử dụng MSS được dùng để phân phối thư, lấy thư Thành phần MSS làm việc với truy nhập IMAP4 và POP3 để cung cấp các phương thức dễ dàng cho việc truy nhập gửi nhận thư điện tử
MSS cũng làm việc với WebMail để cung cấp khả năng truy nhập hệ thống thư điện tử thông qua trình duyệt Web MSS là một tập hợp các thư mục hoặc là các hộp thư người dùng, thư mục hoặc hộp thư chứa các thư điện tử Mỗi người sử dụng sẽ có một hoặc nhiều thư mục
để lưu trữ thư Thư mục có thể chứa các thư mục khác được bố trí theo cây thư mục Hộp thư thuộc về người sử dụng như một thư mục riêng Thư mục riêng có thể được chia sẻ với người sử dụng khác trên cùng một nơi chứa thư
Với các phiên bản hiện tại của các phần mềm, thành phần lưu thư có thể chia sẻ các thư mục Có hai vùng lưu trữ trong MSS, một dùng cho các thư mục người dùng và một dùng cho các tập tin hệ thống
Tại vùng lưu trữ cho người dùng, vị trí của mỗi người dùng được xác định bởi thuật toán băm hai mức Mỗi hộp thư người dùng hoặc thư mục được trình diễn bởi một thư mục khác trong thư mục cha, mỗi thư điện tử được lưu trữ như một tập tin dạng text sử dụng chuẩn định dạng MIME Khi có nhiều thư trong thư mục, hệ thống sẽ tạo chỉ dẫn băm cho thư mục
đó
Một MSS có thể lưu chứa nhiều phân vùng lưu trữ thư khác nhau Một phân vùng lưu trữ thư được chứa trong một vùng lưu trữ Khi vùng lưu trữ này đầy, có thể khởi tại thêm vùng lưu trữ và phân chia phân vùng lưu trữ thư trên các vùng lưu trữ
MSS duy trì duy nhất một bản sao của mỗi thư điện tử trên mỗi phân vùng với khái niệm bản sao đơn(single-copy) Khi một MSS nhận một thư điện tử được gửi tới nhiều người hay một nhóm người, nó sẽ bổ sung một tham chiếu đến thư điện tử này cho mỗi hộp thư người nhận Làm như vậy sẽ giảm thiểu được việc nhân bản dữ liệu một cách lãng phí Các trạng thái của thư điện tử như “đọc”, “trả lời”, “xóa” … sẽ được duy trì trong thư mục cho mỗi người sử dụng
Trang 25Thông tin của hệ thống MSS được chứa trong các dữ liệu có thể truy cập rất nhanh như Berkeley Database(Openwave và Sun đều có tùy chọn cho cơ sở dữ liệu này và Oracle)
Thông tin có thể được cấu trúc lại từ các vùng của người sử dụng Khi cần, chúng ta có thể nhanh chóng khôi phục dữ liệu để biết được trạng thái MSS trên các phiên bản phần mềm thư điện tử hiện đại có thể khôi phục rất nhanh, trong trường hợp dữ liệu bị hỏng, chúng ta
có thể tắt MSS và khôi phục ngay lập tức mà không cần đợi xây dựng lại dữ liệu
MSS hiện đại thường hỗ trợ IMAP quota extention(RFC2087) - Cơ chế giới hạn dung lượng
Cơ chế này có thể được bật hay tắt Ta có thể cấu hình giới hạn dung lượng người sử dụng bằng cách sử dụng số byte hoặc số lượng thư trong hộp thư
Ta cũng có thể thiết lập ngưỡng cảnh báo nếu người sử dụng chạm đến ngưỡng hạn định Một hệ thống MSS hiện đại sẽ có tính năng gửi thư cảnh báo Khi người sử dụng vượt quá hạn mức, các thư mới đến có thể bị giữ lại trong một khoảng thời gian mà không phân phối vào hộp thư Sau khoảng thời gian này, các thông báo không phân phối được thư do quá hạn định dung lượng hộp thư sẽ được phản hồi đến người gửi thư
Với các ứng dụng đặc biệt khi hạn định được thiết lập, nhưng các thư điện tử phải được phân phối bất kể trạng thái hạn mức của người sử dụng Có một kênh đảm bảo phân phối thư được sử dụng để phân phối thư đi bất kể trạng thái Các công cụ giám sát sẽ báo cáo hạn mức sử dụng và gửi cảnh báo về hạn mức
Kiến trúc kho lưu trữ: Kho lưu trữ(Message Store) được sắp xếp thành một tập hợp các
thư mục hoặc các hộp thư của người sử dụng Mỗi người dùng đều có một hộp nhận thư để chứa các thư gửi đến và có một hoặc nhiều thư mục khác để chứa thư Các thư mục có thể chứa một cây thư mục khác Nếu người dùng theo tư cách cá nhân thì hộp thư của họ là các thư mục riêng, nhưng cũng có thể dùng chung với người dùng khác tuỳ ý
Dưới đây là toàn bộ kiến trúc của một Message Store
Hình 10: Kiến trúc MSS
Trang 26của hộp thư của mỗi người được xác định bằng thuật toán băm 2 cấp Mỗi hộp thư hay thư mục được thể hiện bởi một danh bạ khác nhau trong thư mục mẹ Mỗi thư điện tử sẽ được lưu trữ như một tập tin thuần văn bản ở dạng MIME Khi có nhiều thư điện tử trong thư mục, các danh bạ băm sẽ được tạo ra cho các thư mục đó, nhờ vậy mà số lượng tập tin sẽ không gây trở ngại cho hệ thống tập tin nằm dưới Thêm vào đó, đối với chính các thư điện
tử, kho lưu thư sẽ duy trì một chỉ mục, một nơi trữ các thông tin tiêu đề thư điện tử(header), và các nơi lưu trữ dữ liệu vốn thường xuyên được sử dụng để đảm bảo việc lưu trữ thông tin của các máy khách được nhanh chóng Khi hệ thống tập tin đầy, quản trị viên
có thể tạo các hệ thống tập tin bổ sung khác và các phân vùng của kho lưu trữ
Thiết kế của Kho lưu thư: Thiết kế của Kho lưu thư cần mang lại hiệu suất nổi trội và cải
thiện tính mở Các hệ thống thư điện tử cũ hơn sẽ được dùng lưu trữ tập tin đơn cho từng người dùng, hoặc tập tin đơn cho từng thư điện tử Trong tình huống một tập tin đơn sử dụng cho một người dùng, toàn bộ hộp thư phải được lưu trữ lại để thực hiện các thay đổi như xóa một thư điện tử hoặc xem lại tình trạng thư điện tử Hệ thống UNIX/var/mail truyền thống làm việc theo cách này
Các thiết kế kho lưu thư khác dùng mô hình một thư mục cho tất cả người dùng, và xem tất
cả các thành phần của thư là một tập tin Dù đây là một bước cải thiện, nhưng nó vẫn còn rất nhiều giới hạn, bao gồm việc giới hạn cố định 32.000 người dùng vì những hạn chế hệ thống tập tin của UNIX Ngoài ra, hiệu suất hệ thống tập tin xuống thấp khi có 32.000 đề mục trong một thư mục Thiết kế dùng trong một số hệ thống cũ như hệ thống thư mặc định của Unix giới thiệu việc sử dụng bảng và cấu trúc băm(hash table and structure) trong một thư mục chỉ chứa không quá 200 người dùng
Kiểu tiếp cận hoàn toàn dựa trên cơ sở dữ liệu cũng không thích hợp với các kho lưu trữ thư điện tử lớn Các thư điện tử có sự chênh lệch rất nhiều về độ lớn, khiến chúng khó có thể chứa trong cơ sở dữ liệu Khi nhận từ kho lưu trữ, thư điện tử thường không bị hiệu chỉnh Chỉ có tình trạng của thư điện tử bị thay đổi theo thời gian - ví dụ như đã đọc, đã trả lời, hoặc đã xóa
Kho lưu thư dùng thiết kế lai(hybrid design), kết hợp chỉ mục cơ sở dữ liệu lưu trữ thông tin đầu mục thư điện tử(message header) và các tập tin text để lưu trữ nội dung thư điện tử Việc sử dụng các thư mục chia nhỏ và thuật toán đặt tên tập tin tránh được sự cố do có quá nhiều tập tin trong một thư mục gây ra
Khu vực hệ thống chứa các thông tin về toàn bộ kho lưu trữ theo định dạng cơ sở dữ liệu Berkeley hoặc Oracle cho phép truy cập nhanh, nhưng thông tin về khu vực hệ thống có thể xây dựng lại từ khu vực người dùng Một số hệ thống thư điện tử hiện đại của Sun, Openwave còn chụp ảnh cơ sở dữ liệu(database snapshot), khi cần thiết, ta có thể khôi phục nhanh chóng cơ sở dữ liệu trở về tình trạng trước kia
Tự động hồi phục nhanh chóng: Các ảnh chụp cơ sở dữ liệu là các bản sao của cơ sở dữ
liệu được ghi lại sau mỗi 24 giờ theo cấu hình mặc định Sử dụng bản sao cơ sở dữ liệu sẽ giảm thời gian phục hồi cơ sở dữ liệu chỉ còn vài phút
Khi khởi động kho lưu trữ thư, các cơ sở dữ liệu sẽ được kiểm tra tính đồng nhất Hầu hết lỗi
sẽ được tự động sửa, và các tập tin log sẽ cho phép phân tích toàn diện và đưa ra hướng
Trang 27dẫn cho quản trị viên nếu cần thực hiện thêm nhiều bước kiểm tra Các bản sao cơ sở dữ liệu được dùng tự động khi cần thiết, giảm thời gian phục hồi khi bị lỗi cơ sở dữ liệu, nghĩa
là chỉ cần vài phút khởi động dịch vụ hoặc thông báo cho quản trị viên Khi cơ sở dữ liệu đã được sửa xong, nó sẽ cập nhật và không cần phải thực hiện thêm thao tác nào nữa
Trong những trường hợp ít khi vấp phải, khi cần phải đồng bộ cơ sở dữ liệu từ dữ liệu dự phòng, hệ thống thư điện tử hiện đại cần cho phép khôi phục lại nhanh chóng Quản trị hệ thống có thể đóng kho lưu trữ thư và đưa nó trở về trạng thái trước ngay lập tức, không phải chờ tái cấu trúc cơ sở dữ liệu Sửa chữa theo yêu cầu trên thư mục người dùng, do vậy vẫn có thể truy cập thư điện tử mà không cần chờ đến khi hoàn tất việc sửa chữa toàn hệ thống
Thƣ điện tử một bản sao(single-copy): Một tính năng nổi trội của kho lưu trữ thư(MS)
là duy trì chỉ một bản sao cho mỗi thư điện tử theo từng phần(partition), còn gọi là lưu thư một bản sao Nếu kho lưu thư nhận thư điện tử gửi đến nhiều người dùng, đến một nhóm, hoặc một danh sách phân phối, nó thêm 1 tham khảo vào thư điện tử, thay vì sao chép thư điện tử vào từng hộp thư của người dùng Điều này cho phép cắt giảm lưu trữ dữ liệu sao chép Trạng thái của từng thư điện tử được đảm bảo theo từng thư mục, ứng với mỗi người dùng
Thƣ mục dùng chung phân tán(Distributed Shared Folders): Hệ thống thư điện tử
cần hỗ trợ các mở rộng IMAP4 Access Control List (ACL) để người dùng có thể dùng bất kỳ máy khách IMAP nào để thiết lập quyền truy cập đến thư mục người dùng(hỗ trợ các mở rộng như Mulberry, Netscape Messenger, và Microsoft Outlook) Máy khách Webmail cũng được dùng tương tự Khi hệ thống sử dụng cùng một máy phục vụ chỉ mục(directory server)
và hệ thống được thiết lập ở cơ chế ngang hàng đối với máy phục vụ IMAP, người dùng có thể chọn lựa chia sẻ một thư mục với người dùng khác
Sử dụng cơ sở dữ liệu lưu trữ danh sách thư mục dùng chung, hiệu suất tra cứu thư mục dùng chung được cải thiện rất nhiều, nhờ vậy, trên một kho lưu trữ thư lớn, việc truy cập rất nhanh Ta có thể thực hiện việc kết hợp các thư mục dùng chung ở nhiều kho lưu trữ thư bằng chuyển tiếp từ máy phục vụ IMAP cục bộ đến máy phục vụ IMAP ngang hàng tương ứng
Thư mục công cộng là sở hữu của tài khoản đặc biệt, được quản lý bởi quản trị viên hệ thống nhằm đảm bảo chia sẻ cho cộng đồng Không có người sở hữu các thư mục công cộng
Cơ chế linh động - Xóa và Hết hạn thƣ điện tử: Kho lưu trữ thư(MSS) hỗ trợ các quy
định linh động về hết hạn thư điện tử Các thư điện tử hết hạn có thể được xóa khỏi hệ thống để chúng không chiếm nhiều không gian đĩa Các quy định có thể được lập theo từng phân đoạn, theo từng thư mục, hoặc cho toàn bộ hệ thống Các quy định khác nhau sẽ có hiệu lực theo thời gian tồn tại của thư điện tử, đầu mục thư điện tử, tình trạng thư điện tử (như đã đọc hay được xóa), số lượng tin trong thư mục, kích thước thư mục, v.v… Công thức chung có thể dùng cho một thư mục Thời gian lưu trữ và xóa có thể được thực hiện độc lập
Trang 28cấu hình hạn mức theo người dùng, theo số bytes hay số lượng thư điện tử Có thể đặt ngưỡng để nếu hết hạn mức, một thông tin cảnh báo sẽ gửi đến người dùng Khi đã vượt quá hạn mức, các thư điện tử mới sẽ bị giữ lại trong quá trình gia hạn Sau quá trình gia hạn, các thư điện tử gửi đến người dùng đã vượt quá hạn mức cho phép sẽ được trả về cho người gửi với ghi chú không nhận được Với các ứng dụng đặc biệt, khi sử dụng hạn mức nhưng cần phải chuyển giao, thông điệp bỏ qua hiện trạng hạn mức của người dùng, một kênh chuyển giao thư điện tử bảo đảm sẽ chuyển giao tất cả các thư điện tử này
Các tiện ích đặc biệt sẽ báo cáo việc sử dụng hạn mức và gửi các cảnh báo vượt hạn mức Khi thực thi một hạn mức, hệ thống có khả năng tạm thời từ chối thư đến của người dùng hoặc domain Điều này cho phép kiểm soát tài nguyên hệ thống tốt hơn
1.6 Thành phần chỉ mục(Directory)[1,2,7]
Hệ thống thư điện tử thường phải có các máy phục vụ chỉ mục Máy phục vụ chỉ mục thường
sử dụng nhất là LDAP(Lightweight Directory Access Protocol) Máy phục vụ chỉ mục cung cấp một kho dữ liệu trung tâm về các thông tin thiết yếu để vận hành hệ thống thư điện tử Những thông tin này bao gồm thông tin riêng của người sử dụng, các danh sách phân phối,
và các thông tin về nguồn lực hệ thống khác
Cây thông tin chỉ mục: Máy phục vụ chỉ mục chứa dữ liệu trong các khuôn dạng hình cây,
được biết đến dưới dạng DIT(Directory Information Tree) DIT là một cấu trúc có thứ bậc, với một nhánh chính trên đỉnh cây và các nhánh và nhánh con khác bên dưới DIT là một cấu trúc rất mềm dẻo có thể dễ dàng thiết kế một cơ cấu người ta cần Ví dụ chúng ta có thể chọn để thiết kết DIT như một mô hình doanh nghiệp, hoặc một bản đồ về doanh nghiệp Chúng ta cũng có thể sử dụng DIT để thiết kết dưới dạng ánh xạ một-một(IP-Domain) của tầng DNS Người sử dụng thường quan tâm đến việc thiết kết DIT, vì nếu thiết
kế không tốt thì sau khi có sự thay đổi sẽ không tương thích hoặc gây các khó khăn kéo theo
DIT thường rất mềm dẻo đủ để thích nghi với các kịch bản quản trị phức tạp và quy mô Chúng ta có thể quản trị DIT dưới dạng tập trung hay phân tán Với quản trị tập trung, một quản trị hệ thống sẽ quản trị nó Nhưng với mô hình quản trị phân tán, nhiều quản trị hệ thống sẽ quản trị DIT Thường thường thì người ta quản trị phân tán khi DIT được phân chia cho nhiều cùng, hoặc với nhiều nhánh con, hoặc khi phân bố trên nhiều cụm máy phục vụ khác nhau
Khi DIT là một chỉ mục lớn, nên cân nhắc việc ủy quyền quản trị cho các phần của DIT Cụ thể là chúng ta sẽ thiết lập các quản trị cho từng nhánh con của DIT Hệ thống thư điện tử thường cho phép chúng ta quản trị nhiều nhánh con với một quản trị chính, và với lý do an toàn, một quản trị có thể thay đổi các nhánh con của DIT trong phạm vi thẩm quyền của họ Các lược đồ mặc định được sử dụng cho hệ thống thư điện tử có hai dạng chính 1 và 2, và
có thể được chuyển đổi cho phù hợp với từng trường hợp cụ thể
Đồng bộ chỉ mục: Máy phục vụ chỉ mục hỗ trợ việc đồng bộ, cho phép cấu hình để cung cấp độ tin cậy cao và hiệu quả Có thể thiết lập cơ chế đồng bộ cho tất cả hay một phần của DIT từ một hay nhiều máy phục vụ theo những cách dưới đây:
Thông tin chỉ mục được truy nhập nhiều, do đó nó được đồng bộ ra nhiều máy phục
vụ khác
Trang 29 Thông tin chỉ mục được lưu trữ đệm tại máy phục vụ cục bộ, hạn chế việc truy nhập thông tin từ xa, cơ chế này giúp tăng hiệu năng, giảm thiểu băng thông, và rất thích
hợp với những mạng bị hạn chế băng thông tới máy phục vụ chỉ mục trung tâm
Phụ thuộc vào cấu hình thực tế, cơ chế đa chỉ mục có thể giúp cho máy trạm nhận thư điện tử nhanh hơn so với cơ chế một chỉ mục trung tâm
Server chỉ mục chứa các thông tin chỉ mục cơ bản trong quá trình cài đặt Cây này là một hình ảnh của cây được sử dụng cho các tập tin hệ thống, với gốc, với các mục ở đầu cấu trúc Gốc của cây được gọi là Root:
• o=UserRoot
Trong suốt quá trình cài đặt, một dữ liệu người sử dụng được tạo ra mặc định gọi là UserRoot Một ví dụ về tên của hậu tố được lưu trữ trong dữ liệu(có thể là o=UserRoot) Chúng ta có thể chọn để lưu trú cơ sở dữ liệu này tại thời điểm cài đặt, hoặc muộn hơn Chúng ta có thể xây dựng cây chỉ mục mặc định và bổ sung dữ liệu thích hợp trong quá trình cài đặt chỉ mục Trong hình 2-1, hậu tố o=UserRoot có thể thay tên thành dc=example, dc=com, và các cây con bổ sung có thể được thêm vào để phản ánh thứ bậc của tổ chức
Hình 11: Minh hoạ cây thư mục Trong hình vẽ này:
• dc nói đến các thành phần tên miền
Trang 30điện tử của họ Máy phục vụ webmail quản lý thông tin phiên HTTP và thông tin riêng của người sử dụng thông qua thông tin của LDAP Lợi ích thứ hai của webmail là tất cả các tập tin tĩnh và quá trình xác thực LDAP đều trên các máy phục vụ ở lớp trong Lợi ích này bù đắp lại các yêu cầu về hiệu năng khi trang Web tiêu tốn khi thể hiện lại các thông tin từ lớp trong
Trong tương lai, thành phần WebMail sẽ không thực hiện trực tiếp trên thành phần lưu thư
mà sẽ sử dụng XML dưới dạng Java servelet trên WebSever Như vậy có thể tối thiểu hoá yêu cầu về phần cứng và tăng thêm hiệu năng cho hệ thống
Hình 12: Các thành phần dịch vụ HTTP
Messaging Multiplexor và Webmail: Multiplexor cho phép chúng ta tạo giao diện bên
ngoài giữa các máy phục vụ thư điện tử với người dùng cuối Bởi vậy, chúng ta thiết lập các người sử dụng tới một Multiplexor mà không trỏ thẳng tới các máy phục vụ cụ thể nơi lưu trú các hộp thư Người sử dụng thông qua Multiplexor để lấy các thư chiều về
Khi một máy khách kết nối và xác thực, Multiplexor sẽ tìm kiếm thông tin người dùng trong chỉ mục để xác định nơi chứa các thư điện tử của người dùng Multiplexor sẽ kết nối người dùng tới server cụ thể đó Multiplexor đóng vai trò như một máy uỷ quyền đối với kết nối IMAP4 và POP3 tới Messaging server Chúng ta có thể cung cấp dịch vụ HTTP bằng cách bật tính năng Webmail
Trang 31
1.8 Một số thành phần khác có liên quan [1,2,7]
Client: Để truy nhập các thư điện tử từ máy phục vụ thư điện tử(thường thông qua
Messaging Multiplexor)
Internet Relay: Định tuyến thư điện tử từ Internet và chuyển tiếp chúng qua FireWall Cụ
thể là máy phục vụ thư điện tử sẽ được cài đặt chức năng này
MTA Relay: MTA chiều vào định hướng thư điện tử tới địa chỉ hợp lệ trên MS MTA chiều ra
chấp nhận thư chiều ra từ máy khách, truy vấn LDAP để tìm nơi sẽ gửi thư đến, và sau đó
sẽ gửi nó tới máy phục vụ thích hợp hoặc gửi qua FireWall ra ngoài Cụ thể, một máy phục
vụ sẽ được cài đặt để thực thi chức năng này
DNS Server: Chuyển tên máy phục vụ thành địa chỉ IP để cho phép thư điện thử được định
tuyến đến đúng địa chỉ của nó trên mạng
FireWall: Hạn chế truy nhập Internet từ mạng trong của tổ chức Chúng ta có thể tạo một
tường lửa giữa mạng trong và mạng ngoài
Các kiến trúc đấu nối hệ thống: Trước khi phát triển hệ thống, cần xác định cấu trúc
phân bố các máy phục vụ thư điện tử Có 4 kiến trúc cơ bản có thể áp dụng:
Kiến trúc tập trung: Tập hợp tất cả các thành phần chủ yếu và các máy phục vụ điện tử vào 1 địa điểm
Kiến trúc phân tán: Chia các thành phần chủ yếu và các máy phục vụ ra nhiều phân mạng tại các vị trí địa lý khác nhau
Kiến trúc lai: Tập trung một số thành phần và phân tán một số thành phần khác
Kiến trúc của nhà cung cấp dịch vụ: Các máy phục vụ với nhiều tên miền với số lượng người dùng lớn Có thể dùng kiểu kiến trúc tập trung, tập hợp hầu hết các thành phần tại một vị trí hoặc cũng có thể sử dụng kiến trúc phân tán nhưng tại các site phân tán vẫn có đầy đủ các thành phần chính VD: Yahoo Mail có 4 site ở các vùng khác nhau(tại thời điểm 2005)
1.9 Kiến trúc hệ thống Mail tập trung [2]
Kiến trúc tập trung: Với kiến trúc tập trung, hầu hết các thành phần quan trọng và các
máy xử lý thư đều được bố trí tại một vị trí Các máy trạm kết nối từ xa thông qua mạng WAN tới các máy phục vụ thư điện tử tập trung
Trang 32
Hình 13: Kiến trúc đấu nối tập trung Khi xây dựng kiến trúc tập trung, cần cân nhắc những vấn đề sau:
Thư điện tử ở những site ở xa không có những nhiệm vụ quan trọng
Người sử dụng gửi và nhận những thư kích thước nhỏ
Tổ chức được phân bố tại một vị trí hoặc phân tán với số lượng người không nhiều
Cũng có những điểm bất lợi khi triển khai một kiến trúc tập trung Khi mạng có vấn đề, người dùng lại cùng site đó và người dùng tại site ở xa không thể gửi thư cho nhau được Phụ thuộc vào băng thông mạng và tình trạng tắc nghẽn, dịch vụ có thể sẽ rất chậm vào giờ cao điểm Với người dùng trên cùng 1 vị trí, việc gửi nhận không hiệu quả, như tại hình
vẽ ở trên, người dùng tại Tokyo khi gửi thư cũng cho 1 người tại Tokyo sẽ vẫn phải chuyển thư qua hệ thống tập trung tại thành phố khác rồi lại quay lại người nhận tại Tokyo
Điều này cho thấy, có một số các bất lợi khi triển khai một kiến trúc tập trung là sự phụ thuộc nặng nề vào WAN Nếu mạng không hoạt động bình thường, người sử dụng trong cùng một site có thể vẫn không ảnh hưởng nhưng người sử dụng ở xa sẽ không thể gửi nhận thư điện tử Phụ thuộc vào băng thông mạng và tình trạng nghẽn, dịch vụ có thể sẽ kém đi trong giờ cao điểm Đối với người sử dụng gửi nhận thư trong cùng domain, một kiến trúc tập trung thì không hiệu quả Nhìn vào hình vẽ ta có thể thấy khách hàng tại Tokyo
Trang 33trước hết phải đi qua hệ thống tại site trung tâm trước khi gửi được thư đến người sử dụng khác cũng tại Tokyo
1.10 Kiến trúc hệ thống Mail phân tán [2]
Đối với kiến trúc phân tán, hầu hết các thành phần hệ thống được cài đặt tại các site phân tán, thường là ở xa nhau Hình vẽ dưới đây mô tả một ví dụ về kiến trúc phân tán
Hình 14: Kiến trúc đấu nối phân tán Nên cân nhắc đối với một kiến trúc phân tán cho hệ thống dự định triển khai khi:
Thư điện tử phát sinh và gửi nhận chủ yếu ở các site ở xa
Người dùng gửi và nhận các thư có dung lượng lớn
Số lượng khách hàng lớn tại các site ở xa
Băng thông cho các site ở xa bị hạn chế
Nếu băng thông kết nối ảnh hưởng đến kiến trúc đấu nối, chúng ta có thể cân nhắc việc nâng cấp băng thông Khi băng thông không đắt lắm, chúng ta có thể sử dụng VPN hơn là
sử dụng các đường kết nối trực tiếp
Kiến trúc phân tán có một số ưu điểm: Khách hàng tại các site ở xa sẽ truy nhập nhanh hơn
vì không phải lấy thư điện tử ở xa thông qua WAN Hơn nữa, các thư được gửi tại vùng sở tại ít tạo ra tắc nghẽn hơn so với kiến trúc tập trung, các phân mạng vệ tinh sẽ ít phụ thuộc vào băng thông hơn so với kiến trúc tập trung, để tránh tình trạng phải nâng cấp WAN
Nhược điểm của việc triển khai kiến trúc phân tán là sẽ hao tốn chi phí phần cứng, chi phí hỗ trợ hơn so với kiến trúc tập trung Chi phí phần cứng tăng là do việc đảm bảo độ tin cậy cho các site phân tán khó khăn và tốn nhiều phần cứng hơn so với hệ thống tập trung Chi phí
hỗ trợ các site phân tán đương nhiên cũng sẽ cao vì độ phức tạp của kiến trúc sẽ cao hơn
1.11 Kiến trúc lai ghép [2]
Đối với kiến trúc lai ghép, tập trung hay phân tán sẽ được kết hợp phụ thuộc vào đặc thù của đơn vị Hình vẽ dưới đây thể hiện một kiến trúc lai ghép
Trang 34Hình 15: Kiến trúc đấu nối lai ghép Mạng lai ghép thường bao gồm nhiều site có thể hỗ trợ số lượng khách hàng lớn Một trong những site lớn có thể có nhiều vệ tinh ở các vùng lân cận Nhưng các cụm vệ tinh có thể sẽ không đòi hỏi nhiều thiết bị Những cụm máy khai thác chính sẽ đóng vai trò của trung tâm vùng
1.12 Kiến trúc hệ thống của nhà cung cấp dịch vụ [2]
Về bản chất, kiến trúc của nhà cung cấp dịch vụ là một kiến trúc có tính chất khả mở Cụ thể, một nhà cung cấp dịch vụ với nhiều tên miền có một lượng khách hàng rất lớn Hệ thống có thể được tập trung hóa để có thể hỗ trợ một lượng người sử dụng lớn trong suốt giờ cao điểm Cũng có thể sử dụng kiến trúc phân tán để đảm bảo tối ưu về lưu lượng, hoặc
sử dụng các thành phần chuyển tiếp phân tán để tiếp nhận tải Hình vẽ dưới đây mô tả ví dụ
về kiến trúc của một nhà cung cấp dịch vụ
Trang 35Hình 16: Kiến trúc đấu nối của nhà cung cấp dịch vụ
Trang 36THỐNG THƯ ĐIỆN TỬ DÀNH CHO NHÀ CUNG CẤP DỊCH VỤ
CHUYÊN NGHIỆP 2.1.Đảm bảo hiệu năng [1,2,6,7]
Đối với các hệ thống thư điện tử, người ta thường đưa ra hai khái niệm là phát triển theo chiều ngang và theo chiều dọc, trong đó phương án nâng cấp các thiết bị hiện có gọi là phát triển theo chiều dọc, phương án bổ sung thêm các thiết bị mới để chia tải cho thiết bị hiện
có gọi là phát triển theo chiều ngang
Ta có thể hiểu sơ bộ sự khác biệt ở chố một phương án sẽ nâng cấp tăng cấu hình thiết bị phương án còn lại là thêm thiết bị để chia nhỏ chức năng hoặc chia tải cho 1 chức năng Tùy từng trường hợp người ta sử dụng phương án theo chiều dọc hay chiều ngang Nhưng đối với các hệ thống thư điện tử đôi khi phương án nâng cấp cấu hình cho 1 chức năng không giải quyết được vấn đề mà phải dùng phương án tăng thiết bị và phân chia chức năng hoặc chia tải
2.1.1 Định cỡ hệ thống
Khi thiết kế hệ thống Mail, cần phải đưa ra quyết định sẽ cấu hình hệ thống như thế nào để
có thể tối ưu hiệu năng, độ tin cậy, và tính mở Định cỡ hệ thống là một phần rất quan trọng Công việc định cỡ sẽ cho phép ta xác định được phần cứng và phần mềm sử dụng, thời gian phản hồi cho khách hàng Định cỡ là một công việc khó khăn
Nội dung dưới đây sẽ giới thiệu các phương thức định cỡ cơ bản, có thể giúp chúng ta đưa
ra các quyết định về thiết kế cho các thành phần xử lý của hệ thống thư điện tử
Nội dung trình bày gồm có:
Thu thập cỡ của dữ liệu
Sử dụng giả lập
Tính toán hiệu năng hệ thống
Xây dựng kiến trúc đấu nối
Do mỗi đề án phát triển hệ thống sẽ có các yêu cầu đặc thù, nên ta sẽ không đi vào các thông tin quá cụ thể, mà sẽ đi vào các phương pháp sẽ thực hiện khi tiến hành định cỡ
2.1.1.1 Thu thập kích cỡ dữ liệu:
Phần này sẽ xác định kích cỡ dữ liệu cần để định cỡ hệ thống Những nội dung liên quan bao gồm:
Xác định cường độ giờ cao điểm
Khởi tạo khái lược sử dụng
Xác định mức sử dụng cơ bản
Xác định cường độ giờ cao điểm: Cường độ giờ cao điểm là con số các giao dịch đồng
thời lớn nhất đối với hệ thống thư điện tử trong một giai đoạn cao điểm trong ngày Cường
độ có thể thay đổi từ hệ thống này sang hệ thống khác tùy theo lớp khách hàng sử dụng Cần cân nhắc các điểm dưới đây khi phân tích giờ cao điểm:
1 Xác định khi nào là giờ cao điểm và khoảng thời gian bao lâu
2 Kích cỡ hệ thống chúng ta định triển khai với tổng cường độ vào giờ cao điểm
Trang 373 Khi ta xác định cường độ giờ cao điểm với hệ thống của mình, cần chắc rằng hệ thống đang triển khai có thể đáp ứng cường độ này
2.1.1.2 Khởi tạo khái lƣợc sử dụng:
Khái lược sử dụng xác định các nhân tố như phần mềm, ứng dụng trên hệ thống máy phục
vụ thư điện tử
Nội dung dưới đây sẽ giúp ta khởi tạo khái lược sử dụng để ước lượng tổng tải trên hệ thống
dự định phát triển Để khởi tạo khái lược sử dụng, cần trả lời các câu hỏi sau:
1 Số người sử dụng trên hệ thống?
Khi đếm số người sử dụng trên hệ thống, không chỉ tính những người sử dụng có account và đang truy nhập hệ thống, mà cả những người sử dụng hiện không truy nhập Thông thường,
số người đang sử dụng và người đang không sử dụng là khác nhau:
Với những hệ thống nhỏ cỡ vài ngàn người sử dụng, đôi khi không cần tiến hành chiến lược định cỡ Chỉ cần xây dựng một hệ thống mang tính chất tương đối(ví dụ dùng 01 Server để đáp ứng vài ngàn hộp thư) là dịch vụ có thể khai thác được
2 Có bao nhiêu kết nối trên hệ thống trong giờ cao điểm với các truy nhập bằng dịch vụ
POP/IMAP/Webmail?
Đặc biệt, cần chú trọng số kết nối đồng thời, số kết nối nhưng không khai thác, số kết nối có khai thác gửi nhận thư mà hệ thống có thể hỗ trợ Để xác định số các kết nối đồng thời trên
hệ thống đang triển khai, thực hiện các bước sau:
a Đếm số kết nối TCP sử dụng lệnh netstat của nền tảng unix
b Thu được lần truy nhập và thời gian thoát sau cùng của các người sử dụng đối với Webmail hoặc IMAP4
Một vài lựa chọn sau đây sẽ có lợi cho các hệ thống nhiều người sử dụng:
Đặt các người sử dụng có khai thác và người sử dụng không khai thác vào các máy khác nhau
Nếu một người sử dụng có khai thác trở thành một người sử dụng có khai thác, người sử dụng có thể được chuyển đến một máy dành cho người có khai thác, phương án này sẽ giảm thiểu đòi hỏi tăng phần cứng
Trang 38ước lượng trên hệ thống thư điện tử vào các thời điểm
Một người sử dụng có thể tạo nhiều phiên truy nhập IMAP, trong khi một người sử dụng POP hay Webmail chỉ có một kết nối cho mỗi máy khách Hơn nữa, vì kết nối POP và Webmail kết nối tới máy phục vụ, lấy dữ liệu, ngắt kết nối, thể hiện dữ liệu, lấy các dữ liệu từ người sử dụng, sau đó kết nối lại vào máy phục vụ, điều này khả thi với những người sử dụng có khai thác với POP và Webmail truy nhập dịch vụ mà không cần kích hoạt kết nối tại thời điểm đó Kết nối bận là kết nối đang trong quá trình xử lý Một ví dụ kết nối bận là một máy phục vụ Mail đang xử lý câu lệnh mà một client vừa gửi, máy phục vụ mail sẽ gửi trả lời tới client
2.1.1.4 Chọn lựa kích thước dữ liệu - Phân biệt người sử dụng bởi lớp dịch vụ:
Ta có thể chia các cộng tác viên, nhà quản lý, và các giám sát trên các máy với các khoảng lưu trữ khác nhau cho mỗi lớp dịch vụ, các đặc quyền khác nhau, và các dịch vụ đặc thù
1 Tổng dung lượng lưu trữ cho mỗi hộp thư là bao nhiêu? Khi giới hạn tổng dung lượng của mỗi hộp thư, ta cần ước lượng dung lượng sử dụng thực của mỗi hộp thư
2 Bao nhiêu thư điện tử từ Internet đến hệ thống? Số lượng thư có thể giới hạn theo từng giây trong giờ cao điểm
3 Bao nhiêu thư điện tử được gửi bởi khách hàng tới:
- Người nhận trên hệ thống của chúng ta?
- Người nhận trên Internet?
Các thư điện tử này được giới hạn số lượng theo từng giây trong giờ cao điểm
4 Kích thước thư được phân phối trong khoảng nào?
6 Hệ thống có sử dụng trình quét Virus hoặc một xử lý đặc biệt nào đó và điều này có áp dụng cho tất cả các người sử dụng?
Phụ thuộc vào cấu hình máy phục vụ lưu trữ, MTA sẽ cần quét tất cả các thư để tìm ra các điều kiện đặc biệt về sử lý, do đó làm tăng tải hệ thống
2.1.1.5 Định nghĩa mức người sử dụng cơ bản:
Khi ta thiết lập khái lược sử dụng, ta so sánh nó với mức người sử dụng cơ bản được mô tả
ở phần dưới Một mức người sử dụng cơ bản tạo ra kiểu của thư điện tử dựa trên một quá trình vận hành với một khoảng kích thước thư mà người sử dụng gửi và nhận Thư điện tử
sẽ có một trong năm kiểu cơ bản:
Mức POP nhẹ
Mức POP nặng
Mức IMAP nhẹ
Mức IMAP vừa
Trang 39 Mức Webmail vừa
Mẫu người sử dụng cơ bản được mô tả trong phần này được tổng hợp từ đặc thù người sử
dụng Khái lược đặc thù có thể không đúng hoàn toàn với mức người sử dụng cơ bản Ta có thể sử dụng một số kiểu khác nhau khi làm mô phỏng
Mức POP nhẹ: Một mức POP nhẹ gồm có các khách hàng quay số(dialup) với yêu cầu gửi
nhận thư đơn giản Mỗi kết nối loại này sẽ gửi khoảng dưới 5 thư một giờ Có những khách hàng đọc và xóa toàn bộ các thư của họ trong mỗi phiên kết nối Hơn nữa, có những người
sử dụng soạn và gửi vài thư cho chỉ một người nhận Khoảng 80% các thư là nhỏ hơn 5KB
và khoảng 20% là bằng hoặc lớn hơn 10KB
Mức POP nặng: Mức POP nặng gồm có các khách hàng băng thông rộng hoặc các khách hàng doanh nghiệp có nhu cầu nhận và gửi thư nhiều hơn mức POP nhẹ Nhóm người sử dụng này sử dụng các kết nối xDSL để truy nhập tới nhà cung cấp dịch vụ Mỗi kết nối đồng thời sẽ gửi khoảng 6 thư/giờ Thư sẽ có trung bình hai địa chỉ nhận trở lên Khoảng 65% các thư có dung lượng nhỏ hơn hoặc bằng 5 KB Ba mươi phần trăm các thư có dung lượng trong khoảng 5-10KB 5% thư có dung lượng lớn hơn 1MB Ở một số người sử dụng, 85% xóa hết các thư sau khi đọc chúng, nhưng cũng có đến 15% người dùng để thư trên máy phục vụ và truy nhập nhiều lần trước khi xóa chúng Một vài trường hợp, cùng một thư được tải về vài lần từ máy phục vụ
Mức IMAP nhẹ: Một người sử dụng IMAP nhẹ là những khách hàng sử dụng các dịch vụ Internet băng thông rộng, bao gồm tất cả các dịch vụ cao cấp của thư điện tử như tìm kiếm
và lọc thư Người sử dụng loại này tương tự như người sử dụng POP nặng về kích thước thư,
số lượng người nhận, và số lượng thư gửi nhận trong một phiên kết nối Người sử dụng IMAP nhẹ thường kết nối trong khoảng 4 giờ và xóa hầu hết thư trước khi thoát ra Vì vậy, các thư sẽ được đưa vào hộp thư trong suốt phiên truy nhập, nhưng người dùng thường không lưu quá 20-30 thư trong hộp thư Hầu hết các hộp thư chứa không quá 10 thư
Mức IMAP vừa: Mức IMAP vừa dùng cho những người sử dụng chuyên nghiệp với các phiên truy nhập dài 8 tiếng 1 ngày Một số người dùng gửi, nhận và lưu trữ một số lượng thư lớn Hơn nữa, có những người dùng sử dụng không hạn chế hoặc sử dụng hạn mức đĩa rất lớn Hộp thư của họ chứa số lượng lớn thư và tăng nhanh từng ngày Thư của họ thường xuyên đến hộp thư và được duyệt nhiều lần mỗi giờ Có những người dùng gửi thư với trung bình bốn địa chỉ đến và có những thư với kích thước tương đương POP nặng và IMAP nhẹ
Mức Webmail vừa: Mức Webmail vừa tương đương với mức IMAP vừa Người dùng mức này có kích thước thư tương đương kích thước thư của người dùng mức IMAP vừa và POP nặng Tốc độ gửi và nhận thư cũng tương đương với IMAP vừa
Nếu hệ thống có nhiều mức sử dụng trong cùng một tổ chức, thường là do ta chấp nhận nhiều tùy chọn cho các truy nhập Như vậy ta cần mô phỏng theo các hạng khác nhau để tính toán thiết bị
2.1.1.6 Định lƣợng hiệu năng hệ thống
Khi chúng ta đánh giá phần cứng của chúng ta bằng công cụ thử tải, cần truy nhập để kiểm soát tải của hệ thống Những nội dung sau đây cần quan tâm để cải thiện hiệu năng của hệ thống
Sử dụng bộ nhớ trong
Tốc độ vào ra của đĩa
Trang 40 Tài nguyên CPU
Sử dụng bộ nhớ trong: Cần chắc chắn rằng hệ thống đã có đủ dung lượng bộ nhớ vật lý trên mỗi máy Việc bổ sung thêm bộ nhớ có thể cải thiện hiệu năng của hệ thống và cho phép máy phục vụ chịu được tải cao trong giờ cao điểm Khi không có đủ bộ nhớ, máy phục
vụ sẽ hoạt động không hiệu quả vì phải hoạt động cơ chế hoán đổi bộ nhớ
Tối thiểu bộ nhớ dành cho 1 CPU của các hệ thống thư điện tử nên có là 1GB Nhưng trong hầu hết các triển khai, dung lượng RAM dành cho một CPU(ví dụ SPACK) là 2GB
Vào ra của đĩa: Tốc độ vào ra của đĩa thể hiện qua việc dữ liệu chuyển đổi từ bộ nhớ trong
sang đĩa và từ đĩa sang bộ nhớ trong như thế nào Tốc độ này có thể ảnh hưởng lớn đến hiệu năng của hệ thống Để có hiệu quả cao trong tốc độ vào ra của đĩa cần quan tâm:
Cân nhắc quá trình bảo trì và vận hành, đảm bảo chúng ta có đủ băng thông cho quá trình sao lưu dữ liệu Dự phòng dữ liệu có thể rất tốn băng thông mạng nếu dự phòng từ xa và ảnh hưởng đến quá trình cung cấp dịch vụ Sao lưu cục bộ có thể là một lựa chọn tốt
Khi chia các partition cần chú ý chia hợp lý để cải thiện tốc độ vào ra
Cần thực hiện cơ chế Raid(Redundant Array of independent Disks) với các hệ thống lớn
Phân bổ dữ liệu trên nhiều đĩa để tăng tốc độ đọc và lấy dữ liệu, khai thác hiệu quả các đầu đọc
Nếu sử dụng cơ chế Raid mềm(dùng CPU để điều khiển Raid), thì cần phân bổ đủ CPU để thực hiện Raid
Chúng ta cần kiểm soát tổng số vào ra trên 1 giây, và thời gian phản hồi của đĩa không được lớn quá 10 mili giây
Dung lƣợng đĩa: Khi ta lập phương án đối với dung lượng đĩa, cần chắc chắn rằng đã tính
toán đến dung lượng đĩa cho cả hệ điều hành, phần mềm thư điện tử, và phần lưu trữ thư
Sử dụng tủ đĩa ngoài là một phương án nên triển khai Đối với hầu hết các hệ thống, đĩa ngoài cần hiệu năng cao và khả năng mở rộng lớn vì với những hệ thống lớn cần các giao diện quang với tốc độ vào ra có thể lên đến hàng chục thậm chí hàng trăm Mbps
Dung lượng đĩa cũng một phần do chính sách về hệ thống
Tốc độ mạng: Tốc độ vào ra của mạng là tổng số dữ liệu tại một đơn vị thời gian có thể
luân chuyển qua hệ thống mạng giữa các máy trạm và máy phục vụ Khi một máy phục vụ trên mạng không đáp ứng yêu cầu của máy trạm, máy trạm sẽ tìm cách chuyển lại yêu cầu sau một khoảng thời gian Mỗi lần chuyển lại yêu cầu như vậy sẽ làm tăng tắc nghẽn mạng Cần giảm thiểu số lần chuyển đi chuyển lại yêu cầu bằng cách cải thiện tính toàn vẹn của dữ liệu, hiệu năng hệ thống và tránh tắc nghẽn mạng:
Để tránh nghẽn cổ chai, cần đảm bảo hạ tầng mạng đủ sức chịu tải
Phân mạng của chúng ta cần có tốc độ mạng giữa các máy phục vụ và chuyển mạch
là 100Mbps và tốc độ 1Gbps cho các chuyển mạch của mạng trục chính
Để đảm bảo năng lực lưu trữ có thể đáp ứng trong tương lai, cần tránh dùng các giá trị tính toán lý thuyết không có kiểm chứng trong khi cấu hình hệ thống
Chia tách các lưu lượng ra các phân mạng khác nhau sẽ giảm thiểu xung đột và tắc nghẽn mạng, góp phần tối ưu hóa băng thông sử dụng