Chuyển khỏi container stack
Từ ngày 30 tháng 9 năm 2026, HiTechCloud chỉ chạy trên stack dịch vụ trên host: mọi dịch vụ (web server, PHP, MariaDB, mail, DNS, FTP) là một dịch vụ systemd trên host. Container stack cũ, nơi mỗi tài khoản chạy các container podman hoặc docker riêng, đã ngừng sử dụng:
- nó không còn nhận cập nhật (
hitechcloudcli updatedừng ở bước kéo image, vì image panel của nó không còn được phát hành); - không còn trình cài đặt cho nó (
PODMAN_INSTALL.shđã bị gỡ); - các bản phát hành hiện tại của HiTechAdmin và
hitechcloudclinhận ra máy chủ container và thông báo (một banner trên mọi trang HiTechAdmin, và một thông báo từ lần kiểm tra cập nhật hằng giờ). Tuy nhiên máy chủ container không tự cập nhật lên các bản phát hành đó được, nên trang này là thông báo mà đa số sẽ thấy.
Không có gì trên máy chủ container bị tắt vì việc này. Các tài khoản của nó vẫn hoạt động cho tới khi bạn chuyển chúng đi.
Việc chuyển diễn ra từ máy chủ sang máy chủ: bạn cài một máy chủ mới với các dịch
vụ trên host, và máy chủ đó sao chép mọi tài khoản từ máy chủ container. Máy chủ
container chỉ bị đọc. Không có gì trên đó thay đổi cho tới khi bạn chạy cutover cho
một tài khoản.
Những gì được chuyển
Với mỗi tài khoản hosting:
| Hạng mục | Cách nó có mặt trên máy chủ mới |
|---|---|
| Tài khoản | Cùng tên người dùng. Tài khoản giữ mật khẩu panel, địa chỉ e-mail và khoá bí mật xác thực hai yếu tố, cùng mã băm mật khẩu SSH/hệ thống. |
| Gói | Gói cùng tên trên máy chủ này, hoặc m ột bản sao của gói cũ. |
| Tệp website | Được sao chép vào /home/<account>/public_html. |
| Web server | Mỗi website giữ web server nó đang dùng: nginx, Apache, OpenLiteSpeed hoặc OpenResty. |
| Cơ sở dữ liệu | Chỉ các cơ sở dữ liệu của chính tài khoản. Chúng được đổi tên theo dạng <account>_<name> của host, nên shop thành alice_shop. |
| Người dùng cơ sở dữ liệu | Được đổi tên theo cùng cách, ví dụ alice_wpuser, với cùng quyền. Người dùng MariaDB giữ mật khẩu. Xem bên dưới với MySQL. |
| Cấu hình website | Các tệp wp-config.php và .env có ghi cơ sở dữ liệu, người dùng cũ hoặc host container (mysql, mariadb) sẽ được viết lại. Bản gốc được giữ dưới tên <file>.pre-migration. |
| Tên miền và chứng chỉ | Mỗi tên miền được thêm qua domains-add. Chứng chỉ còn hiệu lực từ máy chủ cũ được nhập vào; nếu không, AutoSSL sẽ cấp chứng chỉ mới. |
| Vùng DNS | Được sao chép, với IP của máy chủ cũ được thay bằng IP của máy chủ này. |
| Hộp thư cùng thư đã lưu và mật khẩu, bí danh và chuyển tiếp, hạn mức, và khoá DKIM, để bản ghi DKIM đã công bố vẫn hợp lệ. | |
| FTP | Đăng nhập FTP, mỗi đăng nhập giữ mật khẩu của mình. |
| Tác vụ cron | Được sao chép, với đường dẫn container được viết lại thành đường dẫn trên host, và được lên lịch trong crontab của tài khoản. |
Quá trình di chuyển không bao giờ đụng tới đăng nhập root hay đăng nhập cơ sở dữ liệu
panel của chính máy chủ mới. Nó chỉ tạo và cấp quyền cho các đăng nhập <account>_…
trên các cơ sở dữ liệu <account>_….
Không được chuyển (được liệt kê trong kế hoạch): các container PostgreSQL, MongoDB, Redis/Valkey, Memcached và Elasticsearch/OpenSearch. Hãy chuyển dữ liệu của chúng thủ công.
Cơ sở dữ liệu đến từ container MySQL (không phải MariaDB) được nhập vào
MariaDB. Mật khẩu của người dùng trong đó dùng caching_sha2_password của MySQL, vốn
MariaDB không đọc được, nên mỗi người dùng như vậy nhận một mật khẩu mới. Tệp
wp-config.php hoặc .env của website được viết lại với mật khẩu mới đó. Các loại tệp
cấu hình khác không được viết lại: kết quả liệt kê mọi người dùng bị đặt lại mật khẩu.
Các bước
-
Cài một máy chủ mới với các dịch vụ trên host. Dùng một máy mới, không phải máy chủ container:
bash <(curl -sSL https://hitechcloud.org) -
Cho nó truy cập máy chủ container với quyền root, bằng khoá. Chạy lệnh này trên máy chủ mới:
ssh-keygen -t ed25519 # if root has no key yetssh-copy-id root@<old server> -
Xem những gì sẽ được chuyển. Lệnh này không thay đổi gì trên cả hai máy chủ:
hitechcloudcli migrate accounts plan --from <old server>Kế hoạch liệt kê mọi tài khoản, cùng tên miền, cơ sở dữ liệu (tên cũ và tên mới), người dùng cơ sở dữ liệu, và những gì sẽ không được chuyển. Thêm
--account <name>để xem một tài khoản. -
Di chuyển. Mỗi tài khoản chạy như một tác vụ nền riêng, unit systemd
hitechcloud-migrate-<account>:hitechcloudcli migrate accounts run --from <old server>hitechcloudcli migrate accounts status --from <old server>Mỗi tài khoản giữ ba tệp trong
/var/lib/hitechcloud/migration/<old server>/<account>/:progress.json: bước đang thực hiện và các bước đã xong;result.json: những gì đã được chuyển, và mọi id đã thay đổi (cũ và mới);log: những gì đã diễn ra, gồm cả lý do khi một bước thất bại.
Chạy lại
runsẽ tiếp tục mỗi tài khoản từ chỗ nó dừng. Bước đã xong sẽ không bị lặp lại. -
Kiểm tra từng tài khoản trên máy chủ mới. Trước khi đổi DNS, hãy trỏ tên miền về máy chủ mới trong tệp
/etc/hostscủa chính bạn. Sau đó mở website, đăng nhập vào panel và webmail, và đọcresult.json. -
Chuyển hẳn (cutover), từng tài khoản một.
hitechcloudcli migrate accounts cutover --from <old server> --account <name> --yesLệnh này dừng các container của tài khoản trên máy chủ cũ. Đây là bước duy nhất thay đổi máy chủ cũ. Sau đó trỏ các tên miền của tài khoản về máy chủ mới, hoặc trỏ nameserver nếu máy chủ mới host DNS của nó.
Khi mọi tài khoản đã được chuyển hẳn, có thể cho máy chủ cũ ngừng hoạt động.
Các cách khác để chuyển tài khoản
hitechcloudcli user-transfer chuyển một tài khoản, và
hitechcloudcli server-migrate chuyển mọi tài khoản cùng thiết lập của panel,
giữa hai máy chủ đều chạy dịch vụ trên host. Chúng không chuyển đổi tài khoản
container. Từ một máy chủ container, chúng sao chép /home nhưng không sao chép
cơ sở dữ liệu, hồ sơ website hay mail, vì vậy đừng dùng chúng cho việc này.