Yêu cầu phần cứng tối thiểu cho TimescaleDB
TimescaleDB hoạt động trên nền tảng PostgreSQL, do đó yêu cầu tài nguyên phải đảm bảo để xử lý khối lượng dữ liệu lớn và truy vấn phức tạp.
Đối với môi trường Production (vận hành thật), bạn cần tuân thủ các thông số sau để đảm bảo hiệu năng ổn định.
- CPU: Tối thiểu 4 nhân (vCore) cho các tác vụ đơn luồng, khuyến nghị 8+ nhân để xử lý song song các truy vấn và compression.
- RAM: Tối thiểu 8GB RAM. PostgreSQL tiêu tốn nhiều RAM cho shared_buffers và cache, cần đảm bảo còn trống cho OS.
- Storage: Tối thiểu 50GB SSD (NVMe là bắt buộc cho tốc độ I/O). TimescaleDB ghi dữ liệu liên tục, HDD sẽ gây nghẽn cổ chai nghiêm trọng.
- Network: Băng thông ổn định, độ trễ thấp (latency < 5ms) nếu triển khai cluster hoặc truy cập từ xa.
Verify: Kiểm tra tài nguyên hiện tại của server bằng lệnh sau.
cat /proc/cpuinfo | grep "processor" | wc -l && free -h && lsblk
Kết quả mong đợi: Hiển thị số nhân CPU, tổng RAM và danh sách các ổ cứng SSD/NVMe đang gắn trên hệ thống.
Cài đặt Ubuntu Server 24.04 LTS
Bước đầu tiên là chuẩn bị hệ điều hành nền tảng. Chúng ta sẽ sử dụng Ubuntu Server 24.04 LTS vì đây là phiên bản được hỗ trợ chính thức và tối ưu cho PostgreSQL 16.
Tải ISO Ubuntu Server 24.04 LTS từ trang chủ và boot vào máy ảo hoặc server vật lý. Trong quá trình cài đặt, chọn các tùy chọn mặc định nhưng chú ý phần phân vùng.
Đảm bảo phân vùng Root (/) có ít nhất 20GB, Swap file 4GB (hoặc bằng 50% RAM nếu RAM nhỏ hơn 8GB).
Verify: Kiểm tra phiên bản hệ điều hành sau khi cài đặt xong.
lsb_release -a
Kết quả mong đợi: Dòng "Description" hiển thị "Ubuntu 24.04.1 LTS" và "Codename" là "noble".
Cấu hình Network, User Sudo và Update hệ thống
Sau khi vào hệ thống, bạn cần thiết lập kết nối mạng, tạo user quản trị có quyền sudo và cập nhật toàn bộ gói phần mềm.
Trước hết, cập nhật danh sách nguồn phần mềm và nâng cấp các gói hiện có lên phiên bản mới nhất.
sudo apt update && sudo apt upgrade -y
Kết quả mong đợi: Không có lỗi, hệ thống thông báo "0 upgraded, X newly installed" hoặc tương tự.
Tiếp theo, tạo một user mới (ví dụ: admin) thay vì sử dụng root trực tiếp để quản trị server, tăng cường bảo mật.
sudo adduser admin
Khi được hỏi, nhập password cho user admin, điền thông tin cá nhân (có thể bỏ trống), và chọn "Y" để xác nhận.
Cấp quyền sudo cho user admin bằng cách thêm vào nhóm sudo.
sudo usermod -aG sudo admin
Kết quả mong đợi: Lệnh chạy không lỗi, user admin hiện đã có quyền thực thi các lệnh sudo.
Cấu hình Network (SSH) để kết nối từ xa. Trên Ubuntu 24.04, ta sử dụng Netplan (yaml) thay vì interfaces cũ.
Chỉnh sửa file cấu hình mạng (tên file thường nằm trong /etc/netplan/). Dưới đây là ví dụ cấu hình IP tĩnh cho card mạng ens33.
sudo nano /etc/netplan/00-installer-config.yaml
Nội dung hoàn chỉnh của file cấu hình mạng (chỉnh sửa theo IP thực tế của bạn):
network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Áp dụng lại cấu hình mạng.
sudo netplan apply
Kết quả mong đợi: Lệnh chạy không lỗi, bạn có thể ping thử IP 192.168.1.100 từ máy khác.
Cấu hình SSH để cho phép đăng nhập bằng key và khóa quyền root login trực tiếp.
sudo nano /etc/ssh/sshd_config
Sửa các dòng sau trong file (bình luận dòng cũ, uncomment dòng mới):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Tải lại dịch vụ SSH để áp dụng thay đổi.
sudo systemctl restart sshd
Kết quả mong đợi: Dịch vụ SSH chạy lại thành công. Thử đăng nhập bằng key SSH từ máy client, không được phép đăng nhập bằng mật khẩu root.
Cài đặt PostgreSQL 16
TimescaleDB trên Ubuntu 24.04 yêu cầu PostgreSQL 16. Chúng ta sẽ thêm repository chính thức của Postgres vào hệ thống để cài đặt phiên bản mới nhất.
Đầu tiên, cài đặt các gói cần thiết để xử lý key GPG và curl.
sudo apt install -y wget gnupg curl ca-certificates
Thêm key GPG của Postgres vào hệ thống.
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
Thêm repository PostgreSQL 16 vào danh sách nguồn phần mềm. Lưu ý Ubuntu 24.04 codename là "noble".
echo "deb http://apt.postgresql.org/pub/repos/apt noble-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
Cập nhật lại danh sách gói và cài đặt PostgreSQL 16.
sudo apt update && sudo apt install -y postgresql-16 postgresql-contrib-16
Kết quả mong đợi: Hệ thống tải và cài đặt các gói PostgreSQL 16 thành công.
Khởi động dịch vụ PostgreSQL và kích hoạt tự động khởi động khi hệ thống bật máy.
sudo systemctl enable --now postgresql
Verify: Kiểm tra trạng thái dịch vụ và phiên bản PostgreSQL.
systemctl status postgresql && psql --version
Kết quả mong đợi: Trạng thái dịch vụ là "active (running)" và phiên bản hiển thị "psql (PostgreSQL) 16.x".
Khởi tạo cơ sở dữ liệu mặc định (nếu chưa có) và tạo user postgres để quản lý.
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'strong_password_here';"
Thay thế "strong_password_here" bằng mật khẩu mạnh thực tế của bạn.
Kết quả mong đợi: Dòng "ALTER ROLE" xuất hiện, xác nhận mật khẩu đã được cập nhật thành công.
Verify cuối cùng: Thử đăng nhập vào PostgreSQL bằng user postgres và mật khẩu vừa đặt.
sudo -u postgres psql -h localhost -U postgres -W -c "SELECT version();"
Kết quả mong đợi: Hệ thống yêu cầu nhập mật khẩu, sau khi nhập đúng sẽ hiển thị phiên bản PostgreSQL 16 chi tiết.
Điều hướng series:
Mục lục: Series: Triển khai Database Time-Series với TimescaleDB và Ubuntu 24.04
Phần 2: Cài đặt và khởi tạo TimescaleDB trên Ubuntu 24.04 »