nessi

Internship/Fresher
Feb 25, 2018
68
21
8
HOCHIMINH CITY
securityzone.vn
Cấu hình Backup & Restore ESXi host configuration

Nội dung:


1. Sử dụng ESXi CLI để Backup ESXi Host
2. Schedule backup ESXi configuration
3. Restore ESXi host configuration

Backup là một trong những điều tối quan trọng trong việc quản lý điều hành hạ tầng IT. Trong môi trường chạy những dịch vụ Servers dưới dạng máy ảo trên những ESXi host thì việc backup Host-level với agentless backup sẽ mang những lợi ích như việc đảm bảo cấu hình ESXi luôn toàn vẹn trong những sự cố nhất dịnh ví dụ như:

+) Hạ tầng vSphere đang chạy vSAN với những Host vật lý cài đặt OS tại USB (đơn) => đối với dạng Usb đơn khi có sự cố sập nguồn sẽ dễ bị hư hỏng dẫn tới việc mất mát dữ liệu

Host-level backup confgiuration chứa những thông tin cơ bản cần thiết của một ESXi host:

+) Các cấu hình liên quan tới ESXi host,.. bao gồm cả cấu hình vSAN

+) Thông tin về network bao gồm Vmkernel network, firewall ESXi và bao gồm của Network VM

+) Thông tin về VM đang được cư trú tại Host ESXi

Thông tin hệ thống lab đang sử dụng:

+ vCenter Server buid number: 17958471

+ ESXi host version: 16324942

+ Server Dell PowerEdge R630, USBboot 16Gb

+ Datastore: NFS & vSAN

1. Sử dụng ESXi CLI để Backup ESXi Host
Sử dụng ESXi command line là phương pháp hợp lý nhất để sao lưu cấu hình máy chủ ESXi. Ta không cần cài đặt bất kì phần mềm hỗ trợ bổ sung nào để sử dụng dòng lệnh ESXi.

Đầu tiên chúng ta cần phải bật dịch vụ ESXi shell hoặc ESXi SSH để hỗ trợ việc truy cập từ xa vào máy chủ ESXi.

  • ESXi SSH: hỗ trợ việc vào giao diện Command line của ESXi thông qua giao thức SSH
1630321293105.png

  • ESXi Shell: hỗ trợ vào giao diện Command line của ESXi thông qua giao diện Console (DCUI) mà tại giao diện DCUI ta bấm tổ hợp phím Alt + F1 để truy cập vào, và thoát ra bằng Alt + F2
1630321309582.png

1630321473883.png


Để bật ESXi shell hoặc ESXi SSH, ta có thể dùng giao diện vSphere Client hoặc vSphere Client Host.
1630321521289.png


1630321529503.png



Cấu hình ESXi được tự động lưu hàng giờ vào tệp /bootblank/state.tgz. Do đó, để đảm bảo cấu hình ESXi hiện tại được lưu ngay tại thời điểm chúng ta backup và xác nhận rằng một thứ thay đổi được thực hiện sẽ sync với lần lưu tự động cuối cùng, chúng ta sử dụng lệnh
Code:
vim-cmd hostsvc/firmware/sync_config
Sau đó ta thực hiện lệnh sau để xuất file cấu hình:
Code:
vim-cmd hostsvc/firmware/backup_config
1630321647043.png

Sẽ xuất hiện một link download file backup cấu hình của ESXi có dạng:
  • Bundle can be downloaded at : http://*/downloads/529d4bdd-3ff6-ce57-622e-a0047ad5ffac/configBundle-esxi100.securityzone.vn.tgz
Sử dụng link trên và thay địa chỉ IP hoặc FQDN của Vmkernel Management ESXi để download file như hình dưới đây, file được tải xuống có dạng configBundle-HostFQDN.tgz
1630321672410.png

Lưu ý: File backup này sẽ được tồn tại khoảng 5 phút tại thư mục /scratch/downloads, sau đó sẽ bị hệ thống xoá đi.

2. Schedule backup ESXi configuration
Tận dụng ưu điểm tự động hoá chạy Script backup để chạy backup ESXi configuration một cách tự động theo vòng lặp bằng cách sử dụng crontab hết hợp với script .sh.

1. Tạo thư mục lưu trữ file backup trên ESXi datastore

Nên tạo thư mục tại NFS Datastore hoặc VMFS Datastore để đảm bảo rằng khi máy chủ địch không khả dụng vẫn có thể truy cập vào thư mục chứa file backup bằng một Host khác hoặc 1 cách khác như truy cập vào thư mục NFS.

Sử dụng command:
Code:
mkdir /vmfs/volumes/<datastore>/ESXi_backup
Ví dụ: Mình đang sử dụng ESXi có NFS Datastore
1630321727851.png


2. Tạo 1 file script để backup ESXi configuration
Code:
vi esxi_backup.sh
Hoặc
vi /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup/esxi_backup
1630322203031.png


3. Thêm các đoạn command theo quy trình để thực hiện thao tác Backup ESXi confgiuration

Nhấn phím “i” để insert script dưới

Code:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup/ESXi100_config_backup_$(date +%Y%m%d_%H%M%S).tgz \;
find /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup -name \*.tgz -mtime +7 -exec rm {} \;
  • Trong đó dòng script thứ 3: dùng để Copy file configuration Esxi đã được tạo ra, do file cấu hình này chỉ tồn tại 5 phút trong thư mục /scratch/downloads
  • Dòng script thứ 4 (tuỳ chọn thêm): dùng để Remove những file backup trước đó 7 ngày tránh tạo nhiều file backup và làm đầy bộ nhớ.
Note:

4. Lưu file và quit khỏi vi:
Nhấn command dưới để lưu và thoát khỏi trình Edit
Code:
:wq
1630322256718.png

5. Cấu hình cho đoạn Script có thể thực thi trên ESXi
Code:
chmod +x /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup/esxi_backup.sh
6. Chạy thử đoạn Script.
Truy cập vào thư mục chứa file script
Code:
cd /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup
Chạy thử script
Code:
./esxi_backup.sh
7. Xác nhận Scipt chạy thành công và 1 backup file được tạo ra
Code:
ls -al
1630322330632.png

Sau khi chạy đoạn script chúng ta thấy file backup ESXi100_config_backup_yyymmdd_hhmmss.tgz được lưu trữ tại NFS Datastore lâu dài thay vì 5 phút tại thư mục /scratch/downloads .

8. Schedule run Script backup ESXi conffiguration

Sử dụng Crontab
Code:
vi /var/spool/cron/crontabs/root
Thêm dòng lệnh dưới, để chạy backup ESXi configuration mỗi giờ
Code:
0 * * * * /vmfs/volumes/DatastoreESX_NFS01/ESXi100_backup/esxi_backup.sh
Cuối cùng save file và quit, chọn :wq! Để ghi đè do file read-only hoặc thêm quyền để edit được file
Code:
chmod +w /var/spool/cron/crontabs/root
1630322386825.png


Thông tin thêm về phương thức schedule theo thời gian mong muốn: https://crontab.guru/
Cuối cùng, ESXi configuration sẽ được backup tự động hàng giờ với tên ESXi_config_bakup_date_time.tgz và được lưu trữ tự NFS Datastore (theo lab của mình).
1630322401353.png

Xem trên vSphere Client.
1630322405988.png



3. Restore ESXi host configuration
Lưu ý: Để có thể khôi phục cấu hình, máy chủ ESXi đích cần có cùng build number và UUID với dữ liệu cấu hình mà ta backup trước đó.

1. Vào chế độ maintenance host sử dụng CLI hoặc GUI tuỳ ý muốn
Code:
vim-cmd hostsvc/maintenance_mode_enter
2. Copy file backup ESXi configuration
Copy file Backup ESXi configuration cần restore vào một thư có thể truy cập bởi ESXi ví dụ như /tmp/restore_config/ và thực hiện bởi WinSCP.
1630322440108.png


3. Đổi tên configBundle-xxxx.tgz thành configBundle.tgz trước khi ta thực hiện lệnh restore ESXi configuration. Còn không chúng ta sẽ nhận về một thông báo lỗi: “File /tmp/configBundle.tgz was not found”.
Code:
mv /tmp/restore_config/ESXi100_config_backup_20210830_100007.tgz /tmp/restore_config/configBundle.tgz
4. Restore ESXi configuration
Code:
vim-cmd hostsvc/firmware/restore_config /tmp/restore_config/configBundle.tgz
Sau khi chạy lệnh trên ESXi sẽ tự động khởi động lại và nhận cấu hình mới, và chúng ta cần Exit maintenance để thoát chế độ bảo trì và sử dụng host bình thường bằng lệnh dưới hoặc sử dụng GUI.
Code:
vim-cmd hostsvc/maintenance_mode_exit

Lưu ý: Đối với trường hợp ESXi host đích được restore không cùng UUID, chúng ta sẽ thêm số 1 để bắt buộc ghi đè khi UUID không khớp
Code:
vim-cmd hostsvc/firmware/restore_config 1 /tmp/restore_config.configBundle.tgz


Tham khảo:



----------------------------------------Kết thúc bài viết----------------------------------------​
 
Last edited:
  • Love
Reactions: gani

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu