# Cài đặt Veeam Agent cho CentOS 9 Stream

## <mark style="color:green;">Tổng quan</mark> <a href="#introduction" id="introduction"></a>

Tài liệu này hướng dẫn cài đặt **Veeam Backup Agent Linux trên CentOS 9 Stream.**

## <mark style="color:green;">Quy trình</mark> <a href="#id-2.-guidance" id="id-2.-guidance"></a>

* OS: CentOS 9 Stream, đang chạy kernel 5.14.0-344.el9.x86\_64
* Veeam repository:  veeam-release-el9-1.0.8-1.x86\_64.rpm
* Veeam Agent: veeam-6.0.3.1221-1.el9.x86\_64

{% tabs %}
{% tab title="1. Cài đặt với non-UEFI Secure" %}
**Bước 1:** Tải Veeam repository:

epository Veeam cho Linux có thể được tìm thấy tại [![](https://repository.veeam.com/favicon.ico)Index of /backup/linux/agent/rpm/el/9/x86\_64/](https://repository.veeam.com/backup/linux/agent/rpm/el/9/x86_64/) . Trên trang này, chọn "**veeam-release-el9-1.0.8-1.x86\_64.rpm**".

<figure><img src="/files/f4adSLx1eaFo5UqvfCkW" alt=""><figcaption></figcaption></figure>

**Bước 2**: Cài đặt Veeam và các phụ thuộc:

* Điều này sẽ tải về một tệp RPM. Bạn có thể không tải trực tiếp tệp này từ trang này xuống máy Linux của mình vì server của bạn có thể không có GUI hoặc trình duyệt web. Để khắc phục, tốt nhất bạn nên tải tệp RPM về máy tính của mình và sau đó sử dụng WinSCP hoặc MobaXterm để sao chép tệp RPM vào server qua SSH.
* Sau khi tệp RPM đã có trên server, cài đặt nó và các phụ thuộc của nó:

```
# dnf clean all 
# rpm -hi veeam-release-el9-1.0.8-1.x86_64.rpm 
# dnf install epel-release -y 
# dnf install dkms python3 make gcc perl kernel-modules-extra -y 
# dnf update 
# dnf install blksnap veeam -y
```

* Các module bdevfilter và blksnap sẽ được tạo trong /lib/modules/$(uname -r)/extra

```xml
[root@centos9 ~# ls /lib/modules/$(uname -r)/extra bdevfilter.ko.xz blksnap.ko.xz
```

* Chúng ta có thể xác nhận rằng module này chưa được tải bằng cách chạy lsmod và grep với từ khóa blksnap. Chúng ta sẽ thấy grep trả về 0 dòng kết quả.

```
[root@centos9 ~]# lsmod | grep blksnap 0
```

**Bước 3:** Insert module bdevfilter và blksnap:

{% hint style="warning" %}
**Quan trọng:** Nếu server khởi động với Secure Boot, chúng ta không thể chèn module → Cần thực hiện bước 3 dưới đây trước khi sử dụng Secure Boot
{% endhint %}

Chúng ta cần tải module vào kernel hiện tại đang chạy bằng cách sử dụng insmod:

```
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz 
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz 
[root@centos9 ~]# lsmod | grep blksnap 
blksnap 217088 0 
bdevfilter 20480 1 blksnap

```

Lúc này, backup agent của chúng ta sẽ chạy tốt; tuy nhiên, module đã tải sẽ không tồn tại nếu chúng ta khởi động lại. Chúng ta cần tạo một tệp có tên /etc/modules-load.d/bdevfilter.conf và /etc/modules-load.d/blksnap.conf, và đảm bảo rằng tệp đó có tên của module kernel. Chúng ta cũng phải chạy depmod để thêm module kernel đã tải vào danh sách các module phụ thuộc của kernel.

```
[root@centos9 ~]# depmod
[root@centos9 ~]# echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@centos9 ~]# echo blksnap > /etc/modules-load.d/blksnap.conf
[root@centos9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@centos9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
```

Khi chúng ta khởi động lại server CentOS, module veeamsnap sẽ tự động được tải như một kernel module.

```
[root@centos9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap
```

<figure><img src="/files/cwAwy90jHK0X4ORk4fQ3" alt=""><figcaption></figcaption></figure>

Và backup agent của chúng ta sẽ hoạt động đúng.

{% endtab %}

{% tab title="2. Cài đặt với Secure Boot" %}
**Bước 1: Tải kho lưu trữ Veeam:**

Kho lưu trữ Veeam repository cho Linux có thể được tìm thấy tại [![](https://repository.veeam.com/favicon.ico)Index of /backup/linux/agent/rpm/el/9/x86\_64/](https://repository.veeam.com/backup/linux/agent/rpm/el/9/x86_64/) . Trên trang này, chọn "veeam-release-el9-1.0.8-1.x86\_64.rpm".

<div align="left"><figure><img src="/files/vebUDOmO3ayUC4CvSZy2" alt=""><figcaption></figcaption></figure></div>

**Bước 2: Cài đặt Veeam và các phụ thuộc:**

* Điều này sẽ tải xuống một tệp RPM. Bạn có thể không thể tải tệp này trực tiếp từ trang này về máy Linux của mình, vì máy chủ của bạn có thể không có GUI hoặc trình duyệt web. Để khắc phục điều này, tốt nhất là tải tệp RPM về máy tính của bạn và sau đó sử dụng WinSCP hoặc MobaXterm để sao chép tệp RPM vào máy chủ qua SSH
* Khi tệp RPM đã có trên máy chủ, hãy cài đặt nó và các phụ thuộc của nó:

```
# dnf clean all
# rpm -hi veeam-release-el9-1.0.8-1.x86_64.rpm
# dnf install epel-release -y
# dnf install dkms python3 make gcc perl kernel-modules-extra -y
# dnf update
# dnf install blksnap veeam -y
```

* Các module `bdevfilter` và `blksnap` sẽ được tạo ra trong thư mục `/lib/modules/$(uname -r)/extra`

```
[root@centos9 ~]# ls /lib/modules/$(uname -r)/extra
bdevfilter.ko.xz  blksnap.ko.xz
```

* Chúng ta có thể xác nhận rằng module này chưa được tải bằng cách chạy `lsmod` và tìm kiếm `blksnap`. Bạn sẽ thấy rằng lệnh `grep` trả về 0 dòng đầu ra.

```
[root@centos9 ~]# lsmod | grep blksnap 
0
```

**Bước 3**: Đăng ký Veeam Kernel Module Key:

Tạo thư mục /root/module-signing:

```
# mkdir module-signing/
```

Tải 3 script từ liên kết: [![](https://gist.github.com/favicon.ico)Make DKMS sign kernel modules on installation, with full script support and somewhat distro independent](https://gist.github.com/sbueringer/bd8cec239c44d66967cf307d808f10c4) và đặt chúng vào thư mục vừa tạo:

Cấp quyền cho 3 script:

`# chmod u+x one-time-setup sign-modules dkms-sign-module`

Tạo 2 tệp để ký các module vào cơ sở dữ liệu UEFI.

```
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/bdevfilter.conf
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/blksnap.conf
```

Chạy tệp `one-time-setup` trước, sau đó khởi động lại:

```
# /root/module-signing/one-time-setup
# reboot
```

Trong quá trình khởi động lại, khi được nhắc, nhấn bất kỳ phím nào để thực hiện quản lý MOK.

<div align="left"><figure><img src="/files/m3MFCNdIPxmWWWicMKuM" alt=""><figcaption></figcaption></figure></div>

Tại bước đầu tiên của wizard, chọn "**Enroll MOK**" và nhấn \[**Enter**].

<div align="left"><figure><img src="/files/6wjvSUCH3oxIopfGehPI" alt=""><figcaption></figcaption></figure></div>

Tại bước "**Enroll the key(s)**", chọn "**Yes**" và nhấn \[Enter].

<div align="left"><figure><img src="/files/lWrfqZpbmCqY0C99LhFX" alt=""><figcaption></figcaption></figure></div>

Cung cấp mật khẩu của tài khoản root và nhấn \[Enter].

<div align="left"><figure><img src="/files/qESWIoqHXdKCsSv8mRjF" alt=""><figcaption></figcaption></figure></div>

Tại bước cuối cùng, chọn "**Reboot**" và nhấn \[Enter].

<div align="left"><figure><img src="/files/wUuql2cCtEvY8UGSLqRJ" alt=""><figcaption></figcaption></figure></div>

Sau đó, ký 2 module bằng cách chạy tệp `sign-modules`:

```
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/blksnap.ko.xz
```

**Bước 4: Chèn các module bdevfilter và blksnap:**

Chúng ta cần tải module vào kernel đang chạy hiện tại bằng cách sử dụng `insmod`:

```
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@centos9 ~]# lsmod | grep blksnap
blksnap               217088  0
bdevfilter             20480  1 blksnap
```

Vào thời điểm này, các sao lưu dựa trên agent của chúng ta sẽ chạy bình thường; tuy nhiên, module đã tải sẽ không tồn tại nếu chúng ta khởi động lại. Chúng ta phải tạo một tệp có tên `/etc/modules-load.d/bdevfilter.conf` và `/etc/modules-load.d/blksnap.conf`, và đảm bảo rằng nó có tên của module kernel. Chúng ta cũng phải chạy `depmod` để thêm module kernel đã tải vào danh sách phụ thuộc module kernel.

```
[root@centos9 ~]# depmod
[root@centos9 ~]# echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@centos9 ~]# echo blksnap > /etc/modules-load.d/blksnap.conf
[root@centos9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@centos9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
```

Khi chúng ta khởi động lại máy chủ CentOS, module veeamsnap sẽ tự động được tải dưới dạng một kernel module.

```
[root@centos9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap
```

Sau đó agent-based backups của chúng ta sẽ hoạt động chính xác.
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.higiocloud.vn/hi-gio-user-guide-vn/back-up-as-a-service/1.-hi-gio-baas/workaround/cai-dat-veeam-agent-cho-centos-9-stream.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
