--- title: "Features" description: >- Explore TIR Virtual Machine features: persistent workspace storage, startup scripts, dataset mounts, SSH key sync, monitoring, and lifecycle management. --- import { VMFeaturesNav } from './VMFeaturesCards' # Features --- ## 1. Persistent Workspace Disk Every TIR VM gets a **dedicated OS disk** that persists across start and stop cycles. Your entire filesystem is durable — just like a physical server. | Detail | Value | |--------|-------| | **Minimum size** | 30 GB | | **Maximum size** | 15 TB | | **Persistence** | Survives VM start, stop, and restart | | **Deletion** | Disk is deleted only when the VM is explicitly deleted | :::warning Always back up your workspace disk before deleting a VM. Deletion is permanent and cannot be undone. ::: ### Resizing the Workspace Disk You can increase your workspace disk size from the VM details page. After resizing, the new storage is **not automatically visible inside the VM** — the filesystem must be expanded manually. **Option 1 — Restart the VM** (simplest) Stop and start the VM from the TIR portal. The filesystem expands automatically on next boot. **Option 2 — Expand without restarting** While the VM is running, SSH in and run the following commands: ```bash sudo partprobe sudo growpart /dev/vda 1 sudo resize2fs /dev/vda1 ``` Verify the new size with: ```bash df -h ``` --- ## 2. Startup Scripts Startup scripts are shell scripts that run automatically every time your VM boots. Use them to install packages, pull model weights, configure services, or apply environment settings — without manual intervention after restart. ### Adding a Startup Script 1. Navigate to your VM's **Details** page. 2. Click **Network & Security → Start Scripts**. 3. Click **Add Script**, enter a name and paste your script content. 4. Click **Save**. The script takes effect on the next VM boot (or restart). ### Example Startup Script ```bash #!/bin/bash # Install latest NVIDIA monitoring tools apt-get update -q apt-get install -y -q nvtop # Pull model weights from EOS aws s3 cp s3://my-bucket/llama-weights/ /home/models/ --recursive \ --endpoint-url https://storage.e2enetworks.com # Start a custom inference server systemctl enable --now my-inference-server ``` :::tip Multiple scripts can be added. They run in alphabetical order by script name. Use prefixes like `01_install.sh`, `02_setup.sh` for reliable ordering. ::: --- ## 3. Datasets Attach large dataset volumes to your VM without copying them into the workspace disk. Datasets are mounted as additional directories inside the VM. | Feature | Description | |---------|-------------| | **Disk Datasets** | Attach a dedicated disk dataset as a block volume inside the VM. | | **EOS Datasets** | Mount an EOS (Object Storage) bucket as a filesystem path inside the VM. | | **Multiple datasets** | Multiple datasets can be attached to a single VM simultaneously. | ### Attaching a Dataset 1. Go to the **Associated Datasets** tab on the VM Details page. 3. Select the dataset name. 4. Click **Update**. :::info Datasets are billed independently from the VM. Storage charges continue even when the VM is stopped or deleted. Delete the dataset explicitly to stop billing. ::: --- ## 4. Shared File System (SFS) Mount a **Shared File System** onto your VM at any path you choose. Unlike datasets, SFS volumes can be shared across multiple VMs simultaneously — making them ideal for shared model weights, logs, or collaborative workspaces. | Feature | Description | |---------|-------------| | **Custom mount path** | Mount the SFS at any directory path inside the VM (e.g. `/mnt/shared`, `/data/models`) | | **Shared access** | The same SFS can be mounted on multiple VMs at once | | **Persistence** | Data persists independently of the VM lifecycle | ### Attaching an SFS 1. Go to the **SFS** tab on the VM Details page, or add it during VM creation under **Advanced Settings**. 2. Select the Shared File System from the listing. 3. Specify the **mount path** where the SFS should be accessible inside the VM. 4. Click **Mount**. :::info SFS storage is billed independently from the VM. Charges continue even when the VM is stopped. Delete the SFS explicitly to stop billing. ::: --- ## 5. SSH Key Management (Live Sync) TIR VMs support **live SSH key updates** — you can add, replace, or remove SSH public keys without rebooting the VM. Key changes take effect within seconds — no VM restart required. ### Supported Operations | Operation | Requires Restart? | |-----------|-----------------| | Add a new SSH key | No | | Remove an existing SSH key | No | | Replace the primary SSH key | No | See [Connect via SSH](/docs/tir/VirtualMachines/vm-connect#add-or-rotate-ssh-keys) for step-by-step instructions. --- ## 6. Reserved IP Assign a **Reserved Static IP Address** to your VM. | Detail | Value | |--------|-------| | **Reassignment** | A reserved IP can be detached and reattached to a different VM | | **Use case** | DNS records, firewall allowlists, or any service that depends on a stable endpoint | ### Attaching a Reserved IP 1. Go to the **Network & Security** tab on the VM Details page. 2. Select a reserved IP from the **Reserve Static IP Address** dropdown. 3. Click **Update**. > Don't have a reserved IP yet? Create one from [Reserved IPs](/docs/tir/network/Reserve_IP/) and return here to attach it. --- ## 7. Monitoring Track your VM's resource consumption in real time from the **Monitoring** tab. | Metric | Description | |--------|-------------| | **CPU Utilization** | Processor load as a percentage over time | | **Memory Utilization** | Active RAM usage in MB or GB | | **Workspace Disk Usage** | Storage used on the workspace disk | --- ## 8. VM Lifecycle | State | Description | |-------|-------------| | **Waiting** | VM is being provisioned. | | **Running** | VM is active. SSH access is available. Compute billing is active. | | **Stopped** | VM is not running. The workspace disk persists. No compute charges. | | **Error** | The VM encountered a problem. | ### Start, Stop, and Restart | Action | What Happens | |--------|-------------| | **Stop** | Sends a graceful shutdown signal. The VM halts cleanly. | | **Start** | Boots the VM from the workspace disk. Startup scripts run on boot. | | **Restart** | Equivalent to Stop + Start. Startup scripts run again on boot. | | **Delete** | Permanently deletes the VM and its workspace disk. This cannot be undone. | --- ## 9. Security Groups Attach **Security Groups** to control which network traffic is allowed in and out of your VM. | Rule Type | Description | |-----------|-------------| | **Inbound** | Controls traffic coming into the VM (e.g., allow port 22 for SSH) | | **Outbound** | Controls traffic going out of the VM | At minimum, attach a Security Group with **port 22 (TCP) inbound** to allow SSH access. See [Security Groups](/docs/tir/network/Security_Group/) for details on creating and managing rules. --- ---