> For the complete documentation index, see [llms.txt](https://docs.storware.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.storware.eu/os-agents.md).

# Protecting File Systems

## Overview

Storware Backup & Recovery provides file-level protection for **Windows, Linux, and macOS** systems through OS Agents installed on the protected machines.

Backup policies define which directories and files are protected, when backups run, and how long backups are retained. Full and incremental backups are supported, with an optional secondary backup destination for additional copies.

## Supported Operating Systems

| Platform | Supported versions                                                        |
| -------- | ------------------------------------------------------------------------- |
| Windows  | Windows 10, Windows 11, Windows Server 2016, 2019, and 2022               |
| Linux    | Red Hat Enterprise Linux 8 and 9, CentOS Stream 9, Ubuntu 22.04 and 24.04 |
| macOS    | macOS 13 Ventura, 14 Sonoma, and 15 Sequoia                               |

## Supported Features

| Feature                                      | Windows   | Linux     | macOS     |
| -------------------------------------------- | --------- | --------- | --------- |
| Full backup                                  | Supported | Supported | Supported |
| Incremental backup                           | Supported | Supported | Supported |
| Secondary backup destination                 | Supported | Supported | Supported |
| Maximum protected objects per Agent instance | 5 million | 5 million | 5 million |

## Requirements

Before installing an OS Agent, ensure that:

* The protected machine runs a supported operating system.
* A Storware Node is available and reachable from the protected machine.
* The installer or package repository matches the operating system and the Storware Backup & Recovery release being deployed.
* Credentials for a Storware Backup & Recovery account authorized to register the Agent are available.

#### Network Access

The OS Agent connects to the Storware Node using the following port:

| Source   | Destination   | Port      | Purpose             |
| -------- | ------------- | --------- | ------------------- |
| OS Agent | Storware Node | TCP 15900 | Agent communication |

On Nodes using `firewalld`, allow this connection:

```
firewall-cmd --permanent --add-port=15900/tcp
firewall-cmd --reload
```

Apply the rule to the firewall zone used by the interface accessible to the Agent.

## Install and Register the Agent

### Linux

Configure the Storware package repository appropriate for the operating system and target release before installing the Agent.

For Red Hat Enterprise Linux and supported compatible distributions:

```
dnf install sbr-osagent
```

For Ubuntu:

```
apt-get update
apt-get install sbr-osagent
```

Register the Agent with the Storware Node:

```
osac -r <LOGIN> https://<NODE_ADDRESS>:15900
```

Replace:

* `<LOGIN>` with the Storware Backup & Recovery account used for registration.
* `<NODE_ADDRESS>` with the Node’s hostname or IP address.

Enter the account password when prompted.

Start the Agent service:

```
systemctl start sbr-osagent
```

### Windows

**Prerequisites**

Install the **Microsoft Visual C++ 2015–2019 Redistributable (x64)** required by the OS Agent before running the installer.

Download the OS Agent MSI package for the target release from the [Storware Windows repository](https://repo.storware.eu/storware/current/win/).

**Interactive Installation**

1. Run the OS Agent `.msi` installer.
2. Provide the registration details:

| Field            | Description                                               |
| ---------------- | --------------------------------------------------------- |
| **Node address** | Hostname or IP address of the Storware Node.              |
| **Login**        | Storware Backup & Recovery account used for registration. |
| **Password**     | Password for the specified account.                       |

3. Complete the installation.

**Unattended Installation**

Run the installer from an elevated command prompt:

```
msiexec.exe /i "Installer.msi" ADDRESS="https://<NODE_ADDRESS>:15900" LOGIN="<LOGIN>" PASSWORD="<PASSWORD>" /qn /L*v "osagent-install.log"
```

| Parameter  | Description                                               |
| ---------- | --------------------------------------------------------- |
| `ADDRESS`  | Storware Node endpoint used for Agent registration.       |
| `LOGIN`    | Storware Backup & Recovery account used for registration. |
| `PASSWORD` | Password for the specified account.                       |
| `/qn`      | Runs the installation without a user interface.           |
| `/L*v`     | Writes a verbose installation log to the specified file.  |

Ensure that the Node is reachable before starting. If installation fails, review the installation log.

## Configure a Backup Policy

Go to **Agents → Backup Policies** and create or edit a policy.

Define at least one **include rule** to specify the data to protect. Add **exclude rules** when particular files or directories must be omitted.

The Agent first scans the file system using the include rules, then applies the exclude rules to matching items. Items matching an exclude rule are not backed up.

### Rule Settings

Each rule contains:

| Setting                | Description                                                                                                                                          |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Directory pattern**  | Path or pattern identifying the directories to scan.                                                                                                 |
| **Recursive**          | Includes the contents of subdirectories. Without this option, scanning is limited to the selected directory; subdirectory contents are not included. |
| **File name patterns** | One or more patterns identifying files to include or exclude. Separate multiple patterns with commas. A match against any pattern is sufficient.     |

Use `\` as the directory separator on Windows and `/` on Linux.

Pattern matching is **case-insensitive on Windows** and **case-sensitive on Linux**.

### Pattern Matching

| Pattern | Meaning                                                                |
| ------- | ---------------------------------------------------------------------- |
| `*`     | Matches any sequence of characters.                                    |
| `?`     | Matches zero or one character.                                         |
| `**`    | Matches directories recursively. Available in directory patterns only. |

### Directory Pattern Examples

| Windows                | Linux               | Purpose                                                                 |
| ---------------------- | ------------------- | ----------------------------------------------------------------------- |
| `C:\Users\*\Desktop`   | `/home/*/Desktop`   | Matches users’ Desktop directories.                                     |
| `C:\Users\?oo\Desktop` | `/home/?oo/Desktop` | Matches Desktop directories under user names such as `foo` or `goo`.    |
| `C:\**\logs`           | `/**/logs`          | Matches directories named `logs` at any depth below the specified root. |

Use the **Recursive** option to include subdirectory contents within the matched directories.

### File Name Pattern Examples

| Pattern        | Purpose                                                                      |
| -------------- | ---------------------------------------------------------------------------- |
| `*`            | Matches all file names.                                                      |
| `*.txt`        | Matches files with the `.txt` extension.                                     |
| `*.pdf,*.docx` | Matches files with either extension.                                         |
| `.*`           | Matches names beginning with a dot, commonly used for hidden files on Linux. |
| `a?c`          | Matches names such as `ac` and `abc`.                                        |

### Configure a Secondary Backup Destination

A secondary backup destination stores an additional copy of a backup. Configure at least two backup destinations before enabling this option.

1. Go to **Agents → Backup Policies**.
2. Create or edit an OS Agent backup policy.
3. Open the **Rule** tab.
4. Select **Enable Secondary Backup Destination**.
5. Select the secondary destination and configure its retention.
6. Save the policy.

## Windows Backups Using VSS

On Windows, the OS Agent can use **Volume Shadow Copy Service (VSS)** to read files from a file system snapshot.

The Agent creates the snapshot before reading the protected data and releases it after the backup completes.

Configure the response to snapshot creation failures in **Agents → Backup Policies → Edit Policy → Backup process**:

| Option                                | Behavior                                                                          |
| ------------------------------------- | --------------------------------------------------------------------------------- |
| **Fail backup**                       | Stops the operation and marks the backup task as failed.                          |
| **Use a regular copy**                | Continues by copying files directly from the live file system.                    |
| **Use a regular copy with a warning** | Continues with a regular file copy and reports a warning when the task completes. |

A regular file copy does not provide the same snapshot-based view of the data. Select the failure behavior appropriate for the protected workload.

### Verify Protection

After configuring the Agent and policy:

1. Run an initial backup.
2. Confirm that the task completes successfully.
3. Verify that the expected files are included and exclusions are applied correctly.
4. Perform a test restore.

## Archive an OS Agent

To archive an Agent, click **Archive** in the Agent instances list or the Agent details view.

Archived Agents cannot run further backups. The available actions are **Restore**, **Download**, and **Delete**.

{% hint style="info" %}
**Important:** Archiving is permanent. An archived Agent cannot be returned to an active state.
{% endhint %}

## Limitations

* Each OS Agent instance supports a maximum of **5,000,000 protected objects**.
* When using **Dell Data Domain** as the backup destination, local disk storage is strongly recommended for the Node’s staging space.
* The following Linux file system objects are not supported:

| **Object type**     | **Description**                                            |
| ------------------- | ---------------------------------------------------------- |
| Symbolic links      | References to other files or directories.                  |
| Character devices   | Special files providing character-based device access.     |
| Block devices       | Special files representing disks and block devices.        |
| Sockets             | File system objects used for inter-process communication.  |
| Named pipes / FIFOs | File system objects used for communication through a pipe. |
