Yêu cầu phần cứng tối thiểu cho SQL Server Always On
Để triển khai Always On Availability Groups (AG) trên Linux, kiến trúc phần cứng cần đáp ứng các yêu cầu khắt khe hơn so với SQL Server standalone để đảm bảo tính sẵn sàng cao (High Availability) và hiệu năng nhất quán.
CPU và RAM
CPU phải hỗ trợ bộ xử lý 64-bit. Đối với môi trường sản xuất, tối thiểu 4 nhân vật lý (vCPU) cho mỗi node, nhưng khuyến nghị 8 nhân trở lên để xử lý đồng thời các yêu cầu transaction và quá trình redo log của AG.
RAM tối thiểu là 8GB cho phiên bản Standard và 16GB cho phiên bản Enterprise. Tuy nhiên, với Always On, mỗi node cần RAM đủ để cache toàn bộ bộ dữ liệu (Buffer Pool) và duy trì hoạt động của Cluster. Khuyến nghị: 32GB RAM cho mỗi node trong môi trường Dev/Test và 64GB+ cho Production.
Ổ cứng và I/O
Luôn sử dụng SSD hoặc NVMe. Hệ thống Always On phụ thuộc nhiều vào I/O để đồng bộ hóa dữ liệu giữa các node. Hiệu năng I/O chậm sẽ gây ra tình trạng "Lag" trong quá trình đồng bộ, dẫn đến Failover không tự động hoặc bị treo.
Cần phân vùng riêng biệt cho:
- System OS: 50GB SSD.
- SQL Data (MDF/LDF): Tối thiểu 100GB, tốc độ IOPS cao.
- Swap Space: Tối thiểu bằng 50% RAM vật lý, hoặc bằng RAM nếu RAM dưới 32GB.
- Shared Storage (Optional): Cần thiết nếu dùng Shared Disk cho Cluster, nhưng trong kiến trúc Always On trên Linux thường dùng Local Disk + Witness File Share.
Verify yêu cầu phần cứng
Chạy lệnh sau để kiểm tra CPU, RAM và Disk Speed trên từng node:
lscpu | grep "Model name"
free -h
lsblk -o NAME,SIZE,TYPE
Tải và kiểm tra tính toàn vẹn ISO Ubuntu 24.04 LTS
Ubuntu 24.04 LTS (Noble Numbat) là phiên bản mới nhất được hỗ trợ chính thức bởi Microsoft SQL Server 2022 trên Linux. Chỉ sử dụng phiên bản Server Edition (Desktop version có thể thiếu một số gói kernel module cần thiết cho WSFC).
Tải ISO Server
Tải file ISO từ nguồn chính thức của Canonical. Lưu ý chọn phiên bản "Ubuntu Server 24.04 LTS".
cd /var/tmp && wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
Verify SHA256 Checksum
Trước khi cài đặt, bắt buộc phải kiểm tra tính toàn vẹn của file ISO để đảm bảo file không bị lỗi hoặc giả mạo. So sánh checksum từ file tải về với checksum chính thức từ trang Ubuntu.
sha256sum /var/tmp/ubuntu-24.04-live-server-amd64.iso
Kết quả mong đợi: Một chuỗi hash 64 ký tự. So sánh chuỗi này với giá trị SHA256 được công bố trên trang Ubuntu 24.04 Release Notes. Nếu khớp, file là an toàn.
Cài đặt Ubuntu 24.04 với phân vùng Swap và Hostname tĩnh
Trong quá trình cài đặt qua màn hình cài đặt (Installer), thực hiện các bước cấu hình quan trọng sau để chuẩn bị cho Always On.
Cấu hình phân vùng (Storage Configuration)
Trong bước "Storage Configuration", chọn "Custom partitioning (advanced)". Không dùng "Use entire disk" vì ta cần kiểm soát vị trí swap và data.
Tạo các phân vùng như sau:
- / (Root): 50GB, Type: ext4.
- swap: 32GB (hoặc tương đương 50% RAM), Type: swap.
- /var/lib/sqlserver: 100GB+, Type: ext4 (Dành riêng cho dữ liệu SQL).
- /var/log: 20GB, Type: ext4 (Dành cho log hệ thống).
Đảm bảo mount point của partition swap được thiết lập đúng. Sau khi cài đặt xong, hệ thống sẽ tự động mount swap theo cấu hình này.
Cấu hình Hostname tĩnh
Trong bước "Hostname", đặt tên cho node theo quy chuẩn của Active Directory và Cluster. Ví dụ: sql-node01.domain.local và sql-node02.domain.local.
Sau khi cài đặt xong và reboot, verify hostname:
hostname
Kết quả mong đợi: Trả về tên miền đầy đủ (FQDN) đã đặt.
Verify Swap Space
Kiểm tra xem swap đã được mount và kích thước đúng:
swapon --show
free -h
Kết quả mong đợi: Cột "Swap" hiển thị dung lượng đã cấu hình (ví dụ 32G).
Cấu hình mạng tĩnh (Static IP) và DNS Resolution
Môi trường Always On yêu cầu địa chỉ IP tĩnh tuyệt đối cho cả giao diện vật lý và giao diện Witness. DNS phải phân giải chính xác tên node sang IP và ngược lại (Reverse DNS) để Cluster Heartbeat hoạt động.
Cấu hình Network Manager (Netplan)
Ubuntu 24.04 sử dụng Netplan để quản lý mạng. File cấu hình nằm tại /etc/netplan/.
Xác định tên giao diện mạng (ví dụ: eth0 hoặc ens192):
ip link show
Chỉnh sửa file cấu hình Netplan (thay thế eth0 bằng tên interface thực tế của bạn):
sudo nano /etc/netplan/00-installer-config.yaml
Nội dung file hoàn chỉnh cho Node 1 (SQL-Node01):
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.101/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 192.168.1.2
- 8.8.8.8
mtu: 1500
Áp dụng cấu hình mới:
sudo netplan apply
Kết quả mong đợi: Không có lỗi (error). IP 192.168.1.101 được gán cho interface eth0.
Cấu hình DNS Resolution (/etc/hosts)
Vì SQL Server Always On trên Linux sử dụng Windows Server Failover Cluster (WSFC), các node cần "thấy" nhau qua tên miền. Nếu chưa có Active Directory (AD) trong bước này, phải cấu hình file /etc/hosts trên tất cả các node để giả lập DNS.
Trên Node 1, Node 2 và Node Witness (nếu có), chỉnh sửa file /etc/hosts:
sudo nano /etc/hosts
Nội dung file /etc/hosts (phải giống hệt nhau trên mọi node):
127.0.0.1 localhost
127.0.1.1 sql-node01.domain.local sql-node01
192.168.1.101 sql-node01.domain.local sql-node01
192.168.1.102 sql-node02.domain.local sql-node02
192.168.1.103 sql-witness.domain.local sql-witness
192.168.1.200 sql-cluster.domain.local sql-cluster
Lưu ý: IP 192.168.1.200 là Cluster IP (Virtual IP) sẽ được dùng sau khi tạo Cluster. Các IP 101, 102 là IP vật lý của các node SQL.
Verify DNS và Kết nối mạng
Thử phân giải tên từ Node 1 sang Node 2 và ngược lại:
ping -c 3 sql-node02.domain.local
ping -c 3 sql-cluster.domain.local
Kết quả mong đợi: Ping thành công, trả về đúng IP đã cấu hình trong /etc/hosts.
Chạy lệnh kiểm tra kết nối TCP đến cổng mặc định của SQL (1433) sau khi cài đặt SQL (ở phần sau), nhưng hiện tại hãy verify kết nối SSH giữa các node để đảm bảo firewall không chặn:
ssh sql-node02.domain.local "hostname"
Kết quả mong đợi: Kết nối SSH thành công và trả về tên node đích.
Điều hướng series:
Mục lục: Series: Triển khai Database SQL Server Always On với Ubuntu 24.04
Phần 2: Cài đặt SQL Server 2022 và Active Directory trên Ubuntu »