Home server
Máy tính
Trong những năm khoảng 2006-2011 tôi host web site này ở nhà dưới tên lhboi.homelinux.net. Web server đó cũng là gateway, và máy trả lời điện thoại của chúng tôi. Trước đó, một số nội dung trong website này được đưa vào Internet lần đầu trong những năm 1998-2005 ở lhboi.tripod.com. Bây giờ cả hai domain đó đều không còn, nhưng các bạn có thể tìm lại trong dịch vụ lưu trữ web. Từ năm 2011, những bài viết của tôi xuất hiện trong www.lhboi.name.vn bằng dịch vụ Google Sites. Sau đó domain lhboi.name.vn được đặt ở một nhà cung cấp dịch vụ web hosting ở Việt Nam với chi phí thấp hơn tiền điện cho máy tinh nhỏ xíu Raspberry Pi và router. Cuối cùng website cá nhân của tôi được đặt vĩnh viễn trong server GitHub dưới tên lehboi.github.io.
Phần dưới đây viết trong những năm 2006-2007.
Tất cả các phần mềm dùng trong server lhboi.homelinux.net đều là phần mềm mã nguồn mở:
|
Các phần mềm trên được cắt gọt lại cho gọn để chạy tốt trên một máy Intel Pentium 100 MHz với 64 MByte RAM, đĩa cứng 5 GB, hai card mạng Ethernet, không có ổ đĩa mềm, ổ CD-ROM, bàn phím, chuột, VGA card và màn hình. Server này chỉ tốn có 22 W điện.
Hệ thống được nối mạng bằng một ADSL PPPoE bridge ZyXel và một modem voice V90 Acorp.
Máy trả lời điện thoại
Khi có cuộc gọi điện thoại đến mà người trong nhà chưa thể trả lời thì mgetty-voice sẽ phát lời chào, ghi lại lời nhắn vào file trong web server này, và gửi mail chứa URL của file đó cho chủ nhà biết. Với URL đó, lời nhắn có thể nghe được từ bất cứ nơi nào trong Internet.
Đồng hồ chính xác
Đồng hồ của server này được canh theo đồng hồ chuẩn ở asia.pool.ntp.org. Server này cũng cung cấp lại dịch vụ đồng hồ chuẩn, các bạn có thể để cho máy tính của các bạn canh giờ theo server này bằng ntp. ntp chỉnh đồng hồ máy tính chính xác tới hàng phần triệu giây. Tôi cung cấp dịch vụ này vì ở Việt nam chưa có server nào trong hệ thống pool.ntp.org. Tôi cũng muốn server này trở thành vn.pool.ntp.org nhưng không được vì không có địa chỉ IP cố định. Đáng ngạc nhiên là ở Việt nam không còn Internet server nào cung cấp tín hiệu thời gian chuẩn. Tổng cục Tiêu chuẩn Đo lường chất lượng có một đồng hồ chuẩn, trước kia, có cung cấp tín hiệu ở www.tcvn.gov.vn, nay không thể nào đến trang web đó nữa. Ở home.vnn.vn/netclock trước đây có chương trình đồng hồ (không chính xác) nay thì đồng hồ ngưng hẳn rồi.
Gần đây, đã có một máy vn.pool.ntp.org đầu tiên.
Từ điển
Server này chạy chương trình dictd với các bộ từ điển lấy từ Từ điển Hồ Ngọc Đức. Các bạn có thể dùng chương trình dict để tra từ điển trong server này.
Mạng gia đình
Đằng sau server này là mạng gia đình, gồm có:
- Ethernet switch 4-port 10/100 kết hợp với 802.11g Access Point,
- máy desktop Pentium 4 2,6GHz Hyperthread. Mỗi khi tôi bật máy desktop, nó sẽ gọi script /sbin/ifup-local để canh giờ theo server này.
- IBM Thinkpad R50e (của công ty vợ tôi làm việc),
- máy in và scan Epson CX1500
Trên máy desktop tôi thường dùng các chương trình:
|
|
Máy desktop được gắn card AGP 8x nVidia GeForce FX5500 có các đầu ra VGA, DVI, SVIDEO. Thêm một cái DVI-VGA adapter, tôi gắn hai màn hình VGA vào máy desktop. Gắn thêm keyboard, mouse và audio USB vào, phần mềm Desktop Multiplier làm cho tôi và con gái có thể dùng máy cùng một lúc. Mỗi người có đủ một bộ màn hình, bàn phím, chuột, một người dùng loa, một người dùng headphone. Hai người cùng đọc web, xem TV, nghe nhạc, soạn tài liệu… vẫn còn dư sức cho CPU chạy BOINC. Trong máy Linux có thể chạy một máy ảo VMware là Windows. Hình chụp ở cuối trang.
Linux nhìn thấy CPU Pentium 4 Hyperthread như hai CPU, nếu có hai hay nhiều process cần dùng CPU mà CPU đang tạm thời không thể xử lý tiếp lệnh của process đang chạy (có nhiều lý do, ví dụ như gặp lệnh rẽ nhánh đến một đoạn code không có sẵn trong cache) thì nó sẽ đưa process khác vào làm. Thực ra thì một CPU hyperthread không thể làm nhiều việc như hai CPU thật. Khi tôi chạy chương trình encode video gồm bốn process pipe với nhau; nhờ máy có nhiều RAM nên CPU không phải chờ đọc ghi đĩa, bốn process đó cần rất nhiều khả năng tính toán của CPU, trung bình có hơn 2,5 process chờ làm việc mà CPU chỉ bận rộn khoảng chừng 120-140%.
Máy tính bận rộn suốt ngày
CPU Pentium không có khả năng tiết kiệm điện bằng cách tự thay đổi tần số. Như vậy, dù có việc làm hay đang ở không, nó cũng tốn điện như nhau. Để khỏi phí lượng điện tốn cho server này, tôi cho nó chạy SETI@home. SETI@home là chương trình ít đòi hỏi nhất trong số các chương trình BOINC. Máy server này không đủ sức chạy các chương trình BOINC khác. Bây giờ thì CPU của server này luôn luôn dùng hết khả năng của nó.
Để tận dụng máy desktop, tôi cho nó chạy chương trình FightAIDS@home trong số các chương trình BOINC.
IPv6
Mạng gia đình của tôi dùng IPv6. Gateway có một địa chỉ IPv6 và mạng gia đình có prefix 48 bit, tất cả đều là địa chỉ IPv6 global cố định được cấp (miễn phí) bởi Freenet6. Nếu các bạn có truy xuất được vào mạng IPv6 global, xin mời thử đến server này. Do tất cả đều là địa chỉ IPv6 global cố định nên nếu thích tôi có thể cho tất cả các máy trong mạng gia đình làm server, và bất kỳ máy IPv6 nào trong Internet cũng có thể liên lạc với bất kỳ máy nào trong mạng gia đình tôi. Việc liên lạc diễn ra qua tunnel của IPv6 trong IPv4 (dùng UDP port 3653), tunnel nối từ máy gateway của tôi đến 1 server của mạng Freenet6. Nếu router của ISP biết IPv6 thì dùng protocol IPv6 (41) để liên lạc thẳng. ISP Việt nam không mở protocol 41 trên firewall nên tôi dùng UDP port 3653.
Mạng có prefix 48 bit có 2⁸⁰ (hơn 1,2*10²⁴) địa chỉ. Nó được chia thành 65.536 mạng có prefix 64 bit, mỗi mạng có 2⁶⁴ (hơn 18*10¹⁸) địa chỉ. Một mình tôi làm gì cho hết số địa chỉ này!
Tôi đang chuyển hết các hoạt động trong mạng gia đình sang IPv6: web proxy Apache và ssh chạy tốt với IPv6, time server ntpd được dịch lại để chạy được trên IPv6. Bên trong mạng gia đình chỉ có IPv6, giữa mạng gia đình và Internet thì có IPv4 và IPv6 chui trong IPv4. Tôi tin rằng đây là mạng IPv6 đầu tiên thật sự hoạt động ở Việt Nam.
Các thứ đồ chơi khác
Tôi dùng cable USB-to-serial để nối điện thoại Siemens CF62 với máy desktop, và máy desktop thấy máy điện thoại như là một modem cắm vào ngõ serial. Tôi viết một script để đồng bộ giờ trong máy điện thoại với giờ của máy desktop, và ghi các địa chỉ trong Evolution vào máy ĐT. Script đó gọi chat để gửi các lệnh AT xuống máy điện thoại.
Viettel đã cung cấp dịch vụ GPRS, máy Siemens CF62 có thể xem được các trang web html và wml.
Trong máy desktop có gắn card TV Bt878. Tôi thử dùng CableTV và cc2y4m để xem HTVC nhưng không được.
Đây là hình chụp những thứ kể trên. Ở giữa trên cao là máy nhạc Kenwood màu đen, âm thanh của máy tính phát qua máy này. Phía trên bên phải là máy in và scan Epson CX1500. Máy server nằm ở ngăn dưới và quay ngang ra (để dễ cắm dây). Máy desktop nằm bên phải, cũng quay ngang ra. Hai màn hình cùng gắn vào máy desktop, màn hình bên trái đang hiện Windows XP trong VMware, màn hình bên phải là X Window được quay 90° để hợp với khổ giấy dọc, rất tiện khi đọc web hay soạn tài liệu. MS Windows đâu dễ gì làm được như vậy!
* Những kinh nghiệm khác