feat(docs): merge and clean old docs into new one (#5025)
This commit is contained in:
@@ -82,6 +82,7 @@ module.exports = {
|
||||
['/xoa', 'XOA Support'],
|
||||
['/purchase', 'Purchase XOA'],
|
||||
['/license_management', 'License Management'],
|
||||
['/reseller', 'Partner Program'],
|
||||
['/community', 'Community Support'],
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
# Summary
|
||||
|
||||
- [Introduction](README.md)
|
||||
- [Architecture](architecture.md)
|
||||
- [xo-server](xo-server.md)
|
||||
- [xo-web](xo-web.md)
|
||||
- [xo-cli](xo-cli.md)
|
||||
- [others](others.md)
|
||||
- [Installation](installation.md)
|
||||
- [XOA](xoa.md)
|
||||
- [Updater](updater.md)
|
||||
- [Trial activation](trial_activation.md)
|
||||
- [Plugins](plugins.md)
|
||||
- [Logs](logs.md)
|
||||
- [Compatibility](supported-version.md)
|
||||
- [Troubleshooting](troubleshooting.md)
|
||||
- [From the sources](from_the_sources.md)
|
||||
- [Configuration](configuration.md)
|
||||
- [Features](features.md)
|
||||
- [Administration](administration.md)
|
||||
- [Home view](user_interface.md)
|
||||
- [Search and filters](search.md)
|
||||
- [VM management](vm_management.md)
|
||||
- [VM creation](vm_creation.md)
|
||||
- [VM import and export](vm_import_export.md)
|
||||
- [XenServer Patching](patching.md)
|
||||
- [Docker support](docker_support.md)
|
||||
- [Backup and DR](backups.md)
|
||||
- [Full backups](full_backups.md)
|
||||
- [Rolling snapshots](rolling_snapshots.md)
|
||||
- [Continuous Delta backups](delta_backups.md)
|
||||
- [Continuous Replication](continuous_replication.md)
|
||||
- [Disaster recovery](disaster_recovery.md)
|
||||
- [Smart Backup](smart_backup.md)
|
||||
- [File level Restore](file_level_restore.md)
|
||||
- [Metadata Backup](metadata_backup.md)
|
||||
- [Backup Concurrency](concurrency.md)
|
||||
- [Configure backup reports](backup_reports.md)
|
||||
- [Backup troubleshooting](backup_troubleshooting.md)
|
||||
- [User authentication](authentication.md)
|
||||
- [Built-in](built-in.md)
|
||||
- [LDAP](ldap.md)
|
||||
- [SAML](saml.md)
|
||||
- [GitHub](github.md)
|
||||
- [Google](google.md)
|
||||
- [Resources delegation](resources_delegation.md)
|
||||
- [ACLs](acls.md)
|
||||
- [CloudInit](cloudinit.md)
|
||||
- [Self Service](self_service.md)
|
||||
- [Visualizations](visualizations.md)
|
||||
- [Health](health.md)
|
||||
- [Job manager](scheduler.md)
|
||||
- [Alerts](alerts.md)
|
||||
- [Web hooks](web-hooks.md)
|
||||
- [Load balancing](load_balancing.md)
|
||||
- [Emergency Shutdown](emergency_shutdown.md)
|
||||
- [Auto scalability](auto_scalability.md)
|
||||
- [Forecaster](forecaster.md)
|
||||
- [SDN Controller](sdn_controller.md)
|
||||
- [Recipes](recipes.md)
|
||||
- [Reverse proxy](reverse_proxy.md)
|
||||
- [How to contribute?](contributing.md)
|
||||
- [Support](support.md)
|
||||
- [Roadmap](roadmap.md)
|
||||
- [Purchase](purchase.md)
|
||||
- [Direct purchase](directpurchase.md)
|
||||
- [Through purchase department](through_purchase_department.md)
|
||||
- [Reseller](reseller.md)
|
||||
- [Editions](editions.md)
|
||||
- [Trial](trial.md)
|
||||
- [License Management](license-management.md)
|
||||
- [Invoices](invoices.md)
|
||||
- [Upgrade](upgrade.md)
|
||||
- [XOSAN](xosan.md)
|
||||
- [Requirements](xosan_requirements.md)
|
||||
- [Types](xosan_types.md)
|
||||
- [Replicated](xosan_replicated.md)
|
||||
- [Disperse](xosan_disperse.md)
|
||||
- [Creation](xosan_create.md)
|
||||
- [Trial](xosan_trial.md)
|
||||
- [General Troubleshooting](general-troubleshooting.md)
|
||||
- [Glossary](glossary.md)
|
||||
@@ -1,6 +1,6 @@
|
||||
# ACLs
|
||||
|
||||
> ACLs are permissions that apply to pre-existing objects. Only a super admin (XO administrator) can create objects.
|
||||
ACLs are permissions that apply to pre-existing objects. Only a super admin (XO administrator) can create objects.
|
||||
|
||||
ACLs are the permissions for your users or groups. The ACLs view can be accessed in the "Settings" panel.
|
||||
|
||||
@@ -11,7 +11,9 @@ ACLs are the permissions for your users or groups. The ACLs view can be accessed
|
||||
|
||||

|
||||
|
||||
> Pro tip: you can click to add multiple objects at the same time!
|
||||
:::tip
|
||||
You can click to add multiple objects at the same time!
|
||||
:::
|
||||
|
||||
Your ACL is now available in the right list:
|
||||
|
||||
|
||||
@@ -275,3 +275,39 @@ The possibilities are infinite! You can schedule a **lot** of things (any action
|
||||
|
||||
- revoke your user ACLs Friday at 11:00PM (e.g: no access on the weekend)
|
||||
- restore them Monday at 6:00AM
|
||||
|
||||
## Emergency Shutdown
|
||||
|
||||
If you have a UPS for your hosts, and lose power, you may have a limited amount of time to shut down all of your VM infrastructure before the batteries run out. If you find yourself in this situation, or any other situation requiring the fast shutdown of everything, you can use the **Emergency Shutdown** feature.
|
||||
|
||||
### How to activate
|
||||
|
||||
On the host view, clicking on this button will trigger the _Emergency Shutdown_ procedure:
|
||||
|
||||

|
||||
|
||||
1. **All running VMs will be suspended** (think of it like "hibernate" on your laptop: the RAM will be stored in the storage repository).
|
||||
2. Only after this is complete, the host will be halted.
|
||||
|
||||
Here, you can see the running VMs are being suspended:
|
||||
|
||||

|
||||
|
||||
And finally, that's it. They are cleanly shut down with the RAM saved to disk to be resumed later:
|
||||
|
||||

|
||||
|
||||
Now the host is halted automatically.
|
||||
|
||||
### Powering back on
|
||||
|
||||
When the power outage is over, all you need to do is:
|
||||
|
||||
1. Start your host.
|
||||
2. All your VMs can be resumed, your RAM is preserved and therefore your VMs will be in the exact same state as they were before the power outage.
|
||||
|
||||
## Recipes
|
||||
|
||||
:::tip
|
||||
TODO: this section is still a work in progress!
|
||||
:::
|
||||
|
||||
@@ -20,10 +20,248 @@ Your XOA is connected to all your hosts, or the pool master only if you are usin
|
||||
|
||||

|
||||
|
||||
Xen Orchestra itself is built as a modular solution. Each part has its role:
|
||||
Xen Orchestra itself is built as a modular solution. Each part has its role.
|
||||
|
||||
- The core is "[xo-server](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server/)" - a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure.
|
||||
- The web interface is "[xo-web](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-web)" - it runs directly from your browser. The connection with `xo-server` is done via _WebSockets_.
|
||||
- "[xo-cli](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-cli)" is a module allowing you to send commands directly from the command line.
|
||||
## xo-server (server)
|
||||
|
||||
We have other modules as well (like the LDAP plugin for example). It allows us to use this modular architecture to add further parts as we need them. It's completely flexible, allowing us to adapt Xen Orchestra to every existing workflow.
|
||||
The core is "[xo-server](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server/)" - a daemon dealing directly with XenServer or XAPI capable hosts. This is where users are stored, and it's the center point for talking to your whole Xen infrastructure.
|
||||
|
||||
XO-Server is the core of Xen Orchestra. Its central role opens a lot of possibilities versus other solutions - let's see why.
|
||||
|
||||
### Daemon mode
|
||||
|
||||
As a daemon, XO-Server is always up. Because of this, it can listen and record every event occurring on your entire Xen infrastructure. Connections are always open and it can cache information before serving it to another client (CLI, Web or anything else).
|
||||
|
||||
### Central point
|
||||
|
||||
Contrary to XenCenter, each Xen Orchestra's client is connected to one XO-Server, and not all the Xen servers. With a traditional architecture:
|
||||
|
||||

|
||||
|
||||
You can see how we avoid a lot of resource and bandwidth waste with a central point:
|
||||
|
||||

|
||||
|
||||
### Events
|
||||
|
||||
Legacy interfaces use the "pull" model, requesting data every "x" seconds:
|
||||
|
||||

|
||||
|
||||
It's **not scalable** and **slow**.
|
||||
|
||||
Previously with XO < 3.4, we used events in the following way:
|
||||
|
||||

|
||||
|
||||
But the interface was still lagging behind the server. With XO 3.4 and beyond, we now have a full event system, allowing instant display of what's happening on your infrastructure:
|
||||
|
||||

|
||||
|
||||
### A proxy for your hosts
|
||||
|
||||
XO-Server will act as a proxy for all your clients. This opens a lot of possibilities!
|
||||
|
||||
#### Console proxy
|
||||
|
||||
A good example is the console: you can now expose your consoles even if your clients are outside the network!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### VM streaming
|
||||
|
||||
Another possibility is to stream a VM from one host to another.
|
||||
|
||||
To do that previously, you needed to export your VM somewhere, then re-import it:
|
||||
|
||||

|
||||
|
||||
Thanks to our architecture, it's now far easier:
|
||||
|
||||

|
||||
|
||||
#### Patching on the fly
|
||||
|
||||
To install a patch manually, it requires a lot of steps: find, download, extract and apply the patch, sequentially.
|
||||
|
||||
"xo-server" can do all these steps at once:
|
||||
|
||||
1. automatically download the patch from Citrix servers
|
||||
2. unzip it and upload it on the fly to your host
|
||||
3. apply it as soon it's done
|
||||
|
||||
### Pluggable
|
||||
|
||||
It's really easy to connect other modules to XO-server, and extend or adapt the solution to your needs (see XO-web and XO-cli for real examples).
|
||||
|
||||
#### ACLs
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### NodeJS under the hood
|
||||
|
||||
[NodeJS](https://en.wikipedia.org/wiki/Nodejs) is a software platform for scalable server-side and networking applications. It's famous for its efficiency, scalability and its asynchronous capabilities. Exactly what we need! Thus, XO-server is written in JavaScript.
|
||||
|
||||
## xo-web (web UI)
|
||||
|
||||
The web interface is "[xo-web](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-web)" - it runs directly from your browser. The connection with `xo-server` is done via _WebSockets_.
|
||||
|
||||
This is probably the first part of Xen Orchestra you'll see. The Web interface allows you to interact with your virtual infrastructure. As a module of XO-Web it facilitates everyday Xen administrator work, but also provides a solution to delegate parts of your infrastructure to other people.
|
||||
|
||||

|
||||
|
||||
[Read the manage section](./manage.md) to discover what you can do in XO-web.
|
||||
|
||||
### ReactJS
|
||||
|
||||
We stay consistent from the back-end to the front-end with one main language: [ReactJS](https://reactjs.org/)
|
||||
|
||||

|
||||
|
||||
## xo-cli (CLI)
|
||||
|
||||
"[xo-cli](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-cli)" is a module allowing you to send commands directly from the command line.
|
||||
|
||||
Thanks to introspection, `xo-cli` will detect all the available features exposed in the `xo-server` API.
|
||||
|
||||
:::warning
|
||||
This CLI is mainly used as a debug tool, there's no 100% guarantee on its stability. Use it only if you really know what you do.
|
||||
:::
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
> xo-cli --help
|
||||
Usage:
|
||||
|
||||
xo-cli --register <XO-Server URL> <username> [<password>]
|
||||
Registers the XO instance to use.
|
||||
|
||||
xo-cli --unregister
|
||||
Remove stored credentials.
|
||||
|
||||
xo-cli --list-commands [--json] [<pattern>]...
|
||||
Returns the list of available commands on the current XO instance.
|
||||
|
||||
The patterns can be used to filter on command names.
|
||||
|
||||
xo-cli --list-objects [--<property>]… [<property>=<value>]...
|
||||
Returns a list of XO objects.
|
||||
|
||||
--<property>
|
||||
Restricts displayed properties to those listed.
|
||||
|
||||
<property>=<value>
|
||||
Restricted displayed objects to those matching the patterns.
|
||||
|
||||
xo-cli <command> [<name>=<value>]...
|
||||
Executes a command on the current XO instance.
|
||||
|
||||
```
|
||||
|
||||
#### Register your XO instance
|
||||
|
||||
```
|
||||
> xo-cli --register http://xo.my-company.net admin@admin.net admin
|
||||
Successfully logged with admin@admin.net
|
||||
```
|
||||
|
||||
Note: only a token will be saved in the configuration file.
|
||||
|
||||
#### List available objects
|
||||
|
||||
Prints all objects:
|
||||
|
||||
```
|
||||
> xo-cli --list-objects
|
||||
```
|
||||
|
||||
It is possible to filter on object properties, for instance to print
|
||||
all VM templates:
|
||||
|
||||
```
|
||||
> xo-cli --list-objects type=VM-template
|
||||
```
|
||||
|
||||
#### List available commands
|
||||
|
||||
```
|
||||
> xo-cli --list-commands
|
||||
```
|
||||
|
||||
Commands can be filtered using patterns:
|
||||
|
||||
```
|
||||
> xo-cli --list-commands '{user,group}.*'
|
||||
```
|
||||
|
||||
#### Execute a command
|
||||
|
||||
The same syntax is used for all commands: `xo-cli <command> <param name>=<value>...`
|
||||
|
||||
E.g., adding a new server:
|
||||
|
||||
```
|
||||
> xo-cli server.add host=my.server.net username=root password=secret-password
|
||||
42
|
||||
```
|
||||
|
||||
The return value is the identifier of this new server in XO.
|
||||
|
||||
Parameters (except `true` and `false` which are correctly parsed as
|
||||
booleans) are assumed to be strings. For other types, you may use JSON
|
||||
encoding by prefixing with `json:`:
|
||||
|
||||
```
|
||||
> xo-cli foo.bar baz='json:[1, 2, 3]'
|
||||
```
|
||||
|
||||
##### VM export
|
||||
|
||||
```
|
||||
> xo-cli vm.export vm=a01667e0-8e29-49fc-a550-17be4226783c @=vm.xva
|
||||
```
|
||||
|
||||
##### VM import
|
||||
|
||||
```
|
||||
> xo-cli vm.import sr=60a6939e-8b0a-4352-9954-5bde44bcdf7d @=vm.xva
|
||||
```
|
||||
|
||||
> Note: `xo-cli` only supports the import of XVA files. It will not import OVA files. To import OVA images, you must use the XOA web UI or use `xo-upload-ova` [available here](https://github.com/vatesfr/xen-orchestra/blob/master/@xen-orchestra/upload-ova/README.md#xo-upload-ova).
|
||||
|
||||
## API
|
||||
|
||||
Because `xo-server` is already requested by our web UI (`xo-web`) or CLI (`xo-cli`), there's an API. You can use it directly to have advanced integration in your IT infrastructure (automation, or as a VPS vendor etc.).
|
||||
|
||||
:::warning
|
||||
However, this API isn't 100% guarantee to be stable. Use it with caution.
|
||||
:::
|
||||
|
||||
If you need assistance on how to use it:
|
||||
|
||||
1. Try to use [xo-cli](./architecture.md#xo-cli-cli) first. You'll learn all the available calls
|
||||
2. A good intro can be find within [xo-lib](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-lib#xo-lib-)
|
||||
3. Create a support ticket asking us for precise call you want to make, we'll help you!
|
||||
|
||||
## Plugins
|
||||
|
||||
Xen Orchestra plugins allow you to extend features without rewriting the core of the application.
|
||||
|
||||
You can see your installed plugins in "Settings" then the "Plugins" page:
|
||||
|
||||

|
||||
|
||||
All plugin configuration should be done in the web interface:
|
||||
|
||||

|
||||
|
||||
A plugin can be:
|
||||
|
||||
- activated/deactivated
|
||||
- loaded on start of the application
|
||||
- configured (extend the plugin settings by clicking on the "+" icon
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
# User authentication
|
||||
|
||||
Xen Orchestra supports various types of user authentication, internal or even external thanks to the usage of the [Passport library](http://passportjs.org/).
|
||||
|
||||
There are 2 types of XO users:
|
||||
|
||||
- admins, with all rights on all connected resources
|
||||
- users, with no rights by default
|
||||
|
||||
All users will land on the "flat" view, which displays no hierarchy, only all their visible objects (or no object if they are not configured).
|
||||
|
||||
ACLs will thus apply only to "users".
|
||||
|
||||
> Any account created by an external authentication process (LDAP, SSO...) will be a **user** without any permission.
|
||||
|
||||
Also, you don't have to create an external user by yourself: it will be created automatically in Xen Orchestra after its first connection.
|
||||
|
||||
## Debugging
|
||||
|
||||
If you can't log in with your LDAP/SAML/Github/Google settings, please check the logs of `xo-server` while you attempt to connect. It will give you hints about the error encountered. You can do that with a `tail -f /var/log/syslog -n 100` on your XOA.
|
||||
@@ -14,7 +14,9 @@ Alternatively, here is a video recap on different backup capabilities:
|
||||
- [Continuous Replication](continuous_replication.md)
|
||||
- [File Level Restore](file_level_restore.md)
|
||||
|
||||
> Don't forget to take a look at the [backup troubleshooting](backup_troubleshooting.md) section. You can also take a look at the [backup reports](backup_reports.md) section for configuring notifications.
|
||||
:::tip
|
||||
Don't forget to take a look at the [backup troubleshooting](backup_troubleshooting.md) section. You can also take a look at the [backup reports](backup_reports.md) section for configuring notifications.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
There is also a way to automatically select the VMs to backup: **[smart backup](backups.md#smart-backup)**.
|
||||
|
||||
@@ -14,7 +14,10 @@ At the end of a backup job, you can configure Xen Orchestra to send backup repor
|
||||
|
||||
3. Once it's done, you can now create your backup job. In the "report" selection you can choose the situation in wish you want to receive an email (always, never or failure).
|
||||

|
||||
> Note: You can also modify existing backup jobs and change the behaviour of the report system.
|
||||
|
||||
:::tip
|
||||
You can also modify existing backup jobs and change the behaviour of the report system.
|
||||
:::
|
||||
|
||||
## XMPP
|
||||
|
||||
|
||||
@@ -28,7 +28,9 @@ Each backups' job execution is identified by a `runId`. You can find this `runId
|
||||
|
||||
## Schedule
|
||||
|
||||
> :construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::tip
|
||||
:construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::
|
||||
|
||||
## Smart Backup
|
||||
|
||||
@@ -127,7 +129,7 @@ The tooltip confirms this:
|
||||
|
||||
## Remotes
|
||||
|
||||
> Remotes are places where your _backup_ and _delta backup_ files will be stored.
|
||||
Remotes are places where your _backup_ and _delta backup_ files will be stored.
|
||||
|
||||
To add a _remote_, go to the **Settings/Remotes** menu.
|
||||
|
||||
@@ -169,7 +171,9 @@ PATH TO BACKUP is only needed if you have subfolders in your share.
|
||||
|
||||
### Local
|
||||
|
||||
> **This is for advanced users**. Using the local XOA filesystem without extra mounts/disks will **use the default system disk of XOA**.
|
||||
:::warning
|
||||
**This is for advanced users**. Using the local XOA filesystem without extra mounts/disks will **use the default system disk of XOA**.
|
||||
:::
|
||||
|
||||
If you need to mount an unsupported store (FTP for example), you can always do it manually:
|
||||
|
||||
@@ -258,3 +262,57 @@ Replicated VMs HA are taken into account by XCP-ng. To avoid the resultant troub
|
||||
:::tip
|
||||
The tag won't be automatically removed by XO on the replicated VMs, even if HA is re-enabled.
|
||||
:::
|
||||
|
||||
## Backup Concurrency
|
||||
|
||||
Xen Orchestra 5.20 introduces new tools to manage backup concurrency. Below is an overview of the backup process and ways you can control concurrency in your own environment.
|
||||
|
||||
### Backup process
|
||||
|
||||
#### 1. Snapshot creation
|
||||
|
||||
When you perform a backup in XCP-ng/XenServer, the first operation performed is to "freeze" the data at a specific time - this is done by **making a snapshot**. This operation is pretty quick, only a few seconds in general. However it uses a lot of I/O on your storage, therefore more I/O activity means longer times to snapshot. Still, the order of magnitude is seconds per VM.
|
||||
|
||||
#### 2. Export
|
||||
|
||||
Xen Orchestra will fetch the content of the snapshot made in step 1. This operation can be very long, obviously depending on the size of the snapshot to export: exporting 1TiB of data will take far longer than exporting 1GiB!
|
||||
|
||||
#### 3. Snapshot removal
|
||||
|
||||
When it's done exporting, we'll remove the snapshot. Note: this operation will trigger a coalesce on your storage in the near future (a coalesce is required every time a snapshot is removed).
|
||||
|
||||
### Concurrency
|
||||
|
||||
Let's say you want to backup 50 VMs (each with 1x disk) at 3:00 AM. There are **2 different strategies**:
|
||||
|
||||
1. backup VM #1 (snapshot, export, delete snapshots) **then** backup VM #2 -> _fully sequential strategy_
|
||||
2. snapshot all VMs, **then** export all snapshots, **then** delete all snapshots for finished exports -> _fully parallel strategy_
|
||||
|
||||
The first purely sequential strategy will lead to a big problem: **you can't predict when a snapshot of your data will occur**. Because you can't predict the first VM export time (let's say 3 hours), then your second VM will have its snapshot taken 3 hours later, at 6 AM. We assume that's not what you meant when you specified "backup everything at 3 AM". You would end up with data from 6 AM (and later) for other VMs.
|
||||
|
||||
Strategy number 2 is better in this aspect: all the snapshots will be taken at 3 AM. However **it's risky without limits**: it means potentially doing 50 snapshots or more at once on the same storage. **Since XenServer doesn't have a queue**, it will try to do all of them at once. This is also prone to race conditions and could cause crashes on your storage.
|
||||
|
||||
So what's the best choice? Continue below to learn how to best configure concurrency for your needs.
|
||||
|
||||
#### Best choice
|
||||
|
||||
By default the _parallel strategy_ is, on paper, the most logical one. But we need to give it some limits on concurrency.
|
||||
|
||||
:::tip
|
||||
Xen Orchestra can be connected to multiple pools at once. So the concurrency number applies **per pool**.
|
||||
:::
|
||||
|
||||
Each step has its own concurrency to fit its requirements:
|
||||
|
||||
- **snapshot process** needs to be performed with the lowest concurrency possible. 2 is a good compromise: one snapshot is fast, but a stuck snapshot won't block the whole job. That's why a concurrency of 2 is not too bad on your storage. Basically, at 3 AM, we'll do all the VM snapshots needed, 2 at a time.
|
||||
- **disk export process** is bottlenecked by XCP-ng/XenServer - so to get the most of it, you can use up to 12 in parallel. As soon a snapshot is done, the export process will start, until reaching 12 at once. Then as soon as one in those 12 is finished, another one will appear until there is nothing more to export.
|
||||
- **VM export process:** the 12 disk export limit mentioned above applies to VDI exports, which happen during delta exports. For full VM exports (for example, for full backup job types), there is a built in limit of 2. This means if you have a full backup job of 6 VMs, only 2 will be exported at once.
|
||||
- **snapshot deletion** can't happen all at once because the previous step durations are random - no need to implement concurrency on this one.
|
||||
|
||||
This is how it currently works in Xen Orchestra. But sometimes, you also want to have _sequential_ backups combined with the _parallel strategy_. That's why we introduced a sequential option in the advanced section of backup-ng:
|
||||
|
||||
:::tip
|
||||
0 means it will be fully **parallel** for all VMs.
|
||||
:::
|
||||
|
||||
If you job contains 50 VMs for example, you could specify a sequential backup with a limit of "25 at once" (enter 25 in the concurrency field). This means at 3 AM, we'll do 25 snapshots (2 at a time), then exports. As soon as the first VM backup is completely finished (snapshot removed), then we'll start the 26th and so on, to always keep a max of 25x VM backups going in parallel.
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# Built-in
|
||||
|
||||
This is the default method. Creating a user is very simple:
|
||||
|
||||
1. Go into the Settings view, select "Users"
|
||||
2. You can create a _user_ or an _admin_, with their password (or generate one)
|
||||
|
||||

|
||||
|
||||
By default, a _user_ won't have any permissions. At the opposite, an _admin_ will have all rights.
|
||||
@@ -1,63 +0,0 @@
|
||||
# CloudInit
|
||||
|
||||
Cloud-init is a program "that handles the early initialization of a cloud instance"[^n]. In other words, you can, on a "cloud-init"-ready template VM, pass a lot of data at first boot:
|
||||
|
||||
- setting the hostname
|
||||
- add ssh keys
|
||||
- automatically grow the file system
|
||||
- create users
|
||||
- and a lot more!
|
||||
|
||||
This tool is pretty standard and used everywhere. A lot of existing cloud templates are using it.
|
||||
|
||||
So it means very easily customizing your VM when you create it from a compatible template. It brings you closer to the "instance" principle, like in Amazon cloud or OpenStack.
|
||||
|
||||
## Requirements
|
||||
|
||||
You only need to use a template of a VM with CloudInit installed inside it. [Check this blog post to learn how to install CloudInit](https://xen-orchestra.com/blog/centos-cloud-template-for-xenserver/).
|
||||
|
||||
**Note:** In XOA 5.31, we changed the cloud-init config drive type from [OpenStack](https://cloudinit.readthedocs.io/en/latest/topics/datasources/configdrive.html) to the [NoCloud](https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html) type. This will allow us to pass network configuration to VMs in the future. For 99% of users, including default cloud-init installs, this change will have no effect. However if you have previously modified your cloud-init installation in a VM template to only look for `openstack` drive types (for instance with the `datasource_list` setting in `/etc/cloud/cloud.cfg`) you need to modify it to also look for `nocloud`.
|
||||
|
||||
## Usage
|
||||
|
||||
First, select your compatible template (CloudInit ready) and name it:
|
||||
|
||||

|
||||
|
||||
Then, activate the config drive and insert your SSH key. Or you can also use a custom CloudInit configuration:
|
||||
|
||||

|
||||
|
||||
> CloudInit configuration examples are [available here](http://cloudinit.readthedocs.org/en/latest/topics/examples.html).
|
||||
|
||||
You can extend the disk size (**in this case, the template disk was 8 GiB originally**). We'll extend it to 20GiB:
|
||||
|
||||

|
||||
|
||||
Finally, create the VM:
|
||||
|
||||

|
||||
|
||||
Now start the VM and SSH to its IP:
|
||||
|
||||
- **the system has the right VM hostname** (from VM name)
|
||||
- you don't need to use a password to access it (thanks to your SSH key):
|
||||
|
||||
```
|
||||
$ ssh centos@192.168.100.226
|
||||
[centos@tmp-app1 ~]$
|
||||
```
|
||||
|
||||
The default `cloud-init` configuration can allow you to be to be a sudoer directly:
|
||||
|
||||
```
|
||||
[centos@tmp-app1 ~]$ sudo -s
|
||||
[root@tmp-app1 centos]#
|
||||
```
|
||||
|
||||
Check the root file system size: indeed, **it was automatically increased** to what you need:
|
||||
|
||||
```
|
||||
[centos@tmp-app1 ~]$ df -h
|
||||
/dev/xvda1 20G 1,2G 18G 6% /
|
||||
```
|
||||
@@ -14,3 +14,4 @@ Only after that, you can go on the [dedicated forum](https://xcp-ng.org/forum/ca
|
||||
|
||||
:::tip
|
||||
If you want a consistent and tested solution for using Xen Orchestra, we strongly advise to use our preconfigured and validated [Xen Orchestra virtual Appliance](installation.md#xoa).
|
||||
:::
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
# Backup Concurrency
|
||||
|
||||
Xen Orchestra 5.20 introduces new tools to manage backup concurrency. Below is an overview of the backup process and ways you can control concurrency in your own environment.
|
||||
|
||||
## Backup process
|
||||
|
||||
### 1. Snapshot creation
|
||||
|
||||
When you perform a backup in XCP-ng/XenServer, the first operation performed is to "freeze" the data at a specific time - this is done by **making a snapshot**. This operation is pretty quick, only a few seconds in general. However it uses a lot of I/O on your storage, therefore more I/O activity means longer times to snapshot. Still, the order of magnitude is seconds per VM.
|
||||
|
||||
### 2. Export
|
||||
|
||||
Xen Orchestra will fetch the content of the snapshot made in step 1. This operation can be very long, obviously depending on the size of the snapshot to export: exporting 1TiB of data will take far longer than exporting 1GiB!
|
||||
|
||||
### 3. Snapshot removal
|
||||
|
||||
When it's done exporting, we'll remove the snapshot. Note: this operation will trigger a coalesce on your storage in the near future (a coalesce is required every time a snapshot is removed).
|
||||
|
||||
## Concurrency
|
||||
|
||||
Let's say you want to backup 50 VMs (each with 1x disk) at 3:00 AM. There are **2 different strategies**:
|
||||
|
||||
1. backup VM #1 (snapshot, export, delete snapshots) **then** backup VM #2 -> _fully sequential strategy_
|
||||
2. snapshot all VMs, **then** export all snapshots, **then** delete all snapshots for finished exports -> _fully parallel strategy_
|
||||
|
||||
The first purely sequential strategy will lead to a big problem: **you can't predict when a snapshot of your data will occur**. Because you can't predict the first VM export time (let's say 3 hours), then your second VM will have its snapshot taken 3 hours later, at 6 AM. We assume that's not what you meant when you specified "backup everything at 3 AM". You would end up with data from 6 AM (and later) for other VMs.
|
||||
|
||||
Strategy number 2 is better in this aspect: all the snapshots will be taken at 3 AM. However **it's risky without limits**: it means potentially doing 50 snapshots or more at once on the same storage. **Since XenServer doesn't have a queue**, it will try to do all of them at once. This is also prone to race conditions and could cause crashes on your storage.
|
||||
|
||||
So what's the best choice? Continue below to learn how to best configure concurrency for your needs.
|
||||
|
||||
### Best choice
|
||||
|
||||
By default the _parallel strategy_ is, on paper, the most logical one. But we need to give it some limits on concurrency.
|
||||
|
||||
> Note: Xen Orchestra can be connected to multiple pools at once. So the concurrency number applies **per pool**.
|
||||
|
||||
Each step has its own concurrency to fit its requirements:
|
||||
|
||||
- **snapshot process** needs to be performed with the lowest concurrency possible. 2 is a good compromise: one snapshot is fast, but a stuck snapshot won't block the whole job. That's why a concurrency of 2 is not too bad on your storage. Basically, at 3 AM, we'll do all the VM snapshots needed, 2 at a time.
|
||||
- **disk export process** is bottlenecked by XCP-ng/XenServer - so to get the most of it, you can use up to 12 in parallel. As soon a snapshot is done, the export process will start, until reaching 12 at once. Then as soon as one in those 12 is finished, another one will appear until there is nothing more to export.
|
||||
- **VM export process:** the 12 disk export limit mentioned above applies to VDI exports, which happen during delta exports. For full VM exports (for example, for full backup job types), there is a built in limit of 2. This means if you have a full backup job of 6 VMs, only 2 will be exported at once.
|
||||
- **snapshot deletion** can't happen all at once because the previous step durations are random - no need to implement concurrency on this one.
|
||||
|
||||
This is how it currently works in Xen Orchestra. But sometimes, you also want to have _sequential_ backups combined with the _parallel strategy_. That's why we introduced a sequential option in the advanced section of backup-ng:
|
||||
|
||||
> Note: 0 means it will be fully **parallel** for all VMs.
|
||||
|
||||
If you job contains 50 VMs for example, you could specify a sequential backup with a limit of "25 at once" (enter 25 in the concurrency field). This means at 3 AM, we'll do 25 snapshots (2 at a time), then exports. As soon as the first VM backup is completely finished (snapshot removed), then we'll start the 26th and so on, to always keep a max of 25x VM backups going in parallel.
|
||||
@@ -58,7 +58,9 @@ Manually create a snapshot on the VM being backed up, then copy this snapshot UU
|
||||
|
||||

|
||||
|
||||
> DO NOT ever delete or alter this snapshot, feel free to rename it to make that clear.
|
||||
:::warning
|
||||
DO NOT ever delete or alter this snapshot, feel free to rename it to make that clear.
|
||||
:::
|
||||
|
||||
### Seed copy
|
||||
|
||||
@@ -68,7 +70,9 @@ We need to copy the UUID of this newly created VM as well, `targetVmUuid`:
|
||||
|
||||

|
||||
|
||||
> DO not start this VM or it will break the Continuous Replication job! You can rename this VM to more easily remember this.
|
||||
:::warning
|
||||
DO not start this VM or it will break the Continuous Replication job! You can rename this VM to more easily remember this.
|
||||
:::
|
||||
|
||||
### Set up metadata
|
||||
|
||||
@@ -103,6 +107,8 @@ Your backup job should now be working correctly! Manually run the job the first
|
||||
|
||||
In the situation where you need to failover to your destination host, you simply need to start all your VMs on the destination host.
|
||||
|
||||
> Note: If you want to start a VM on your destination host without breaking the CR jobs on the other side, you will need to make a copy of the VM and start the copy. Otherwise, you will be asked if you would like to force start the VMs.
|
||||
:::tip
|
||||
If you want to start a VM on your destination host without breaking the CR jobs on the other side, you will need to make a copy of the VM and start the copy. Otherwise, you will be asked if you would like to force start the VMs.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
@@ -24,8 +24,9 @@ Please, do explain:
|
||||
The best way to propose a change to the documentation or code is
|
||||
to create a [GitHub pull request](https://help.github.com/articles/using-pull-requests/).
|
||||
|
||||
> Your pull request should always be against the `master`
|
||||
> branch and not against `stable` which is the stable branch!
|
||||
:::tip
|
||||
Your pull request should always be against the `master` branch and not against `stable` which is the stable branch!
|
||||
:::
|
||||
|
||||
1. Create a branch for your work
|
||||
2. Add a summary of your changes to `CHANGELOG.md` under the `next` section, if your changes do not relate to an existing changelog item
|
||||
@@ -46,11 +47,15 @@ to create a [GitHub pull request](https://help.github.com/articles/using-pull-re
|
||||
- meta: points to other issues and is used to manage long term goals (similar but orthogonal to milestones)
|
||||
- question
|
||||
|
||||
> All issues MUST have one of these labels!
|
||||
:::warning
|
||||
All issues MUST have one of these labels!
|
||||
:::
|
||||
|
||||
**Difficulty**
|
||||
|
||||
> This helps new people to contribute.
|
||||
:::tip
|
||||
This helps new people to contribute.
|
||||
:::
|
||||
|
||||
1. easy
|
||||
2. medium
|
||||
@@ -68,8 +73,9 @@ to create a [GitHub pull request](https://help.github.com/articles/using-pull-re
|
||||
3. high: should be fixed for the next release
|
||||
4. critical: should be fixed ASAP and a patch release is done once fixed
|
||||
|
||||
> A new version MUST NOT be released with a `high` or `critical`
|
||||
> issue.
|
||||
:::warning
|
||||
A new version MUST NOT be released with a `high` or `critical` issue.
|
||||
:::
|
||||
|
||||
**Status**
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
# Direct purchase
|
||||
|
||||
This is the easiest purchase option: you can buy XOA with your registered email account on `xen-orchestra.com`.
|
||||
|
||||
## Choose your edition
|
||||
|
||||
You can choose the edition you want in two places:
|
||||
|
||||
- [the pricing page](https://xen-orchestra.com/#!/pricing)
|
||||
- [your account/purchases page](https://xen-orchestra.com/#!/purchases)
|
||||
|
||||
> You need to be logged in to make a purchase. If you don't have an account, please [register here](https://xen-orchestra.com/#!/signup).
|
||||
|
||||
From your account page, click on the purchase menu, then select the edition you need:
|
||||
|
||||

|
||||
|
||||
## Purchase options
|
||||
|
||||
The second step is to select your purchase option:
|
||||
|
||||
- Subscription: only available with a credit card payment. Choose this option for a monthly payment or a yearly payment **renewed automatically** each year.
|
||||
|
||||
- Paid period: **check or wire transfer only**. This purchase allows you to subscribe for a one, two or three year period
|
||||
|
||||
> A 2 year subscription period grants you 1 month discounted
|
||||
> A 3 year subscription period grants you 2 months discounted
|
||||
|
||||
Then you need to fill in your information and select **"Buy for my own use"** (direct purchase)
|
||||
|
||||

|
||||
|
||||
## Billing information
|
||||
|
||||
You need to complete all the required information on this page in order to move forward.
|
||||
|
||||
> Note: If you are part of the Eurozone, you will need to provide a valid EU VAT number in order to proceed to payment. Transactions between companies inside the Eurozone are VAT free.
|
||||
> Transactions outside the Eurozone are VAT free.
|
||||
|
||||

|
||||
|
||||
## Select your payment mode
|
||||
|
||||
Credit Card, Wire transfer or Bank check are the three payment methods available on our store. Some methods can be unavailable regarding the purchase option you have selected during step one.
|
||||
|
||||
> Wire transfer is not available for monthly and yearly subscription - Credit Card is not available for paid period.
|
||||
|
||||

|
||||
|
||||
> All required information for wire transfer and Check payment will be available in the last step of the payment AND on your proforma invoice.
|
||||
> ⚠ Please, use an explicit reference for your wire transfer in order for us to easily identify your payment.
|
||||
@@ -26,7 +26,9 @@ Retention, or **depth**, applies to the VM name. **If you change the VM name for
|
||||
|
||||
Also, by default, the DR VM will have a "Disaster Recovery" tag.
|
||||
|
||||
> **Size warning**: A high retention number will lead to huge space occupation on your SR.
|
||||
:::warning
|
||||
A higher retention number will lead to huge space occupation on your SR.
|
||||
:::
|
||||
|
||||
## Network conflicts
|
||||
|
||||
|
||||
@@ -1,194 +0,0 @@
|
||||
# Docker support
|
||||
|
||||
> This feature is available in XOA 4.10 and above
|
||||
|
||||
The basic container lifecycle is documented [in the Administration section](https://xen-orchestra.com/docs/administration.html#docker-management).
|
||||
|
||||
This category is dedicated to creating a VM with Docker support.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- XenServer 6.5 or higher
|
||||
- Plugin installation (see below)
|
||||
- CoreOS ISO ([download it here](http://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso)) for CoreOS installations
|
||||
- Xen Orchestra 4.10 or newer
|
||||
|
||||
## Docker plugin installation
|
||||
|
||||
This first step is needed until Docker is supported natively in the XenServer API (XAPI).
|
||||
|
||||
> The plugin should be installed on every host you will be using, even if they are on the same pool.
|
||||
|
||||
#### For XenServer 6.5
|
||||
|
||||
1. SSH to your XenServer
|
||||
1. Download the plugin: `wget http://downloadns.citrix.com.edgesuite.net/10343/XenServer-6.5.0-SP1-xscontainer.iso`
|
||||
1. Install it: `xe-install-supplemental-pack XenServer-6.5.0-SP1-xscontainer.iso`
|
||||
|
||||
#### For XenServer 7.0
|
||||
|
||||
1. SSH to your XenServer
|
||||
1. Download the plugin: `wget http://downloadns.citrix.com.edgesuite.net/11621/XenServer-7.0.0-xscontainer.iso`
|
||||
1. Install it: `xe-install-supplemental-pack XenServer-7.0.0-xscontainer.iso`
|
||||
|
||||
#### For XenServer 7.1
|
||||
|
||||
1. SSH to your XenServer
|
||||
1. Download the plugin: `wget http://downloadns.citrix.com.edgesuite.net/11993/XenServer-7.1.0-xscontainer.iso`
|
||||
1. Install it: `xe-install-supplemental-pack XenServer-7.1.0-xscontainer.iso`
|
||||
|
||||
#### For XenServer 7.2
|
||||
|
||||
1. SSH to your XenServer
|
||||
1. Download the plugin: `wget http://downloadns.citrix.com.edgesuite.net/12641/XenServer-7.2.0-xscontainer.iso`
|
||||
1. Install it: `xe-install-supplemental-pack XenServer-7.2.0-xscontainer.iso`
|
||||
|
||||
That's it! You can now enjoy Docker support!
|
||||
|
||||
## Docker managed VMs
|
||||
|
||||
There are two ways to use the newly exposed Docker features:
|
||||
|
||||
- Install a CoreOS VM
|
||||
- Transform an existing VM into a supported Docker VM
|
||||
|
||||
### CoreOS
|
||||
|
||||
[CoreOS](https://coreos.com/) is a Linux distribution with bundled software, like `etcd`, `rkt`, `fleet` etc. The ISO install CD also uses `CloudInit` (which is the interesting thing here).
|
||||
|
||||

|
||||
|
||||
#### Create the VM
|
||||
|
||||
First things first, [create a new VM as usual](vm_creation.md).
|
||||
|
||||
Then, select the "CoreOS" template in the list and name it as you wish:
|
||||
|
||||

|
||||
|
||||
Select the [CoreOS ISO](http://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso) as source for the installation.
|
||||
|
||||
You will also notice Cloud Config panel:
|
||||
|
||||

|
||||
|
||||
You'll have to uncomment the line:
|
||||
|
||||
`# - ssh-rsa <Your public key>`
|
||||
|
||||
And replace it with your actual SSH public key:
|
||||
|
||||
`- ssh-rsa AAAA....kuGgQ me@mypc`
|
||||
|
||||
The rest of the configuration is identical to any other VM. Just click on "Create VM" and you are done. After a few seconds, your VM will be ready. Nothing else to do!
|
||||
|
||||
You can see it thanks to the docker logo in the main view:
|
||||
|
||||

|
||||
|
||||
But also in the VM view, you'll have a container tab:
|
||||
|
||||

|
||||
|
||||
It's empty obviously, because you don't have any Docker containers running. So now, let's boot the VM, and create some Docker containers!
|
||||
|
||||
You should be able to access the VM with the user `core` and your SSH key (so no password to write!). And good news: because Xen Tools are installed automatically, you already have the IP address displayed in Xen Orchestra.
|
||||
|
||||
So in our example (use the `core` user):
|
||||
|
||||
```
|
||||
me@mypc $ ssh core@192.168.100.209
|
||||
|
||||
The authenticity of host '192.168.100.209 (192.168.100.209)' can't be established.
|
||||
ED25519 key fingerprint is SHA256:NDOQgOqUm3J2ZsBEMNFCpXE1lTsu4DKqKN6H7YcxS3k.
|
||||
Are you sure you want to continue connecting (yes/no)? yes
|
||||
Warning: Permanently added '192.168.100.209' (ED25519) to the list of known hosts.
|
||||
Last login: Sun Nov 22 21:00:05 2015
|
||||
CoreOS stable (607.0.0)
|
||||
Update Strategy: No Reboots
|
||||
|
||||
core@core1 ~ $
|
||||
```
|
||||
|
||||
You are now connected! Let's run some tests before installing it on the disks, with a container named "hello" (just doing a small infinite loop):
|
||||
|
||||
```
|
||||
core@core1 ~ $ docker run --name nginx -d hello /bin/sh -c "while true; do echo Hello World; sleep 1; done"
|
||||
Unable to find image 'busybox:latest' locally
|
||||
Pulling repository busybox
|
||||
17583c7dd0da: Download complete
|
||||
d1592a710ac3: Download complete
|
||||
Status: Downloaded newer image for busybox:latest
|
||||
150bc05a84971489b2dd5dc99fe0169cdbd23599d6fac55a6a8756a3c6f52853
|
||||
|
||||
```
|
||||
|
||||
You can create any number of these!
|
||||
|
||||
Guess what? Check in Xen Orchestra, in the VM view:
|
||||
|
||||

|
||||
|
||||
You can now "cycle" this container: stop, pause or reboot it!
|
||||
|
||||
Don't forget that you can sort the table and even search inside it:
|
||||
|
||||

|
||||
|
||||
#### CoreOS installation
|
||||
|
||||
Now that it works, you can make a persistent installation of your CoreOS VM. In the same SSH terminal used before, just type:
|
||||
|
||||
```
|
||||
core@core1 ~ $ sudo coreos-install -d /dev/xvda -o xen -C stable
|
||||
```
|
||||
|
||||
You should have this output:
|
||||
|
||||
```
|
||||
Downloading the signature for http://stable.release.core-os.net/amd64-usr/607.0.0/coreos_production_xen_image.bin.bz2...
|
||||
...
|
||||
Downloading, writing and verifying coreos_production_xen_image.bin.bz2...
|
||||
Success! CoreOS stable 607.0.0 (xen) is installed on /dev/xvda
|
||||
```
|
||||
|
||||
You can reboot the VM and even eject the CoreOS ISO: it will boot as a normal VM now!
|
||||
|
||||
### How it works
|
||||
|
||||
During the VM creation, the XSContainer plugin will create an extra disk: "Automatic Config Drive", with a size of 2MB. This is where the necessary configuration you edited previously (with the SSH key) is passed to the CoreOS VM! In fact, it uses `CloudInit`.
|
||||
|
||||
#### What is CloudInit?
|
||||
|
||||
`CloudInit` is software created to simplify VM provisioning for Cloud instances: it was originally developed for the Amazon Cloud, but works with all major Cloud ready systems, like OpenStack for example.
|
||||
|
||||
Basically, it reads configuration during the boot, allowing:
|
||||
|
||||
- SSH key management for newly created VM/instances
|
||||
- Root disk filesystem growing
|
||||
- User/group management
|
||||
- Arbitrary command execution (system update, custom scripts etc.)
|
||||
|
||||
In our case, it's used by the XSContainer plugin to allow host communication to the Docker daemon running in the VM, thus exposing Docker commands outside of the VM.
|
||||
|
||||
### Existing VMs
|
||||
|
||||
You can also use the XSContainer plugin to "transform" an existing VM into a "Docker" managed VM.
|
||||
|
||||
You need to have the following installed inside the VM:
|
||||
|
||||
- Docker
|
||||
- openssh-server
|
||||
- ncat
|
||||
|
||||
For Debian/Ubuntu like distro: `apt-get install docker.io openssh-server nmap`. For RHEL and derived (CentOS...): `yum install docker openssh-server nmap-ncat`.
|
||||
|
||||
To run Docker as non-root, please add the user you want inside the "Docker" group.
|
||||
|
||||
Now you need to access your host (Dom0) and use the following command:
|
||||
|
||||
```
|
||||
xscontainer-prepare-vm -v <VM_UUID> -u <username>
|
||||
```
|
||||
|
||||
> Because "prepare-vm" is not exposed outside of the Dom0 (yet?), we can't use Xen Orchestra to give you a one-click solution as of now.
|
||||
@@ -1,58 +0,0 @@
|
||||
# Editions
|
||||
|
||||
There are 4 **editions** of the Xen Orchestra Appliance (XOA):
|
||||
|
||||
- Free
|
||||
- Starter
|
||||
- Enterprise
|
||||
- Premium
|
||||
|
||||
**Also, you can try all features in the Premium Edition for free (without any commitment) for 15 days by registering a trial. [Read here for trial instructions](trial.md).**
|
||||
|
||||
### Free
|
||||
|
||||
This is the basic edition, allowing you to perform administrator tasks on a virtualized infrastructure. It's "like" XenCenter. You can:
|
||||
|
||||
- Create VMs, SRs etc.
|
||||
- Access to VM consoles (HTML5 web based!)
|
||||
- Edit resources (VM, pools etc.)
|
||||
- Make snapshots
|
||||
- Migrate VMs
|
||||
|
||||
That's more or less the same features you can see on the [administration page](administration.md).
|
||||
|
||||
### Starter
|
||||
|
||||
The Starter Edition is intended for system administrators who want to do more with their current XenServer infrastructure. This version is also bundled with our pro support!
|
||||
|
||||
In addition to the free edition, you get:
|
||||
|
||||
- [Scheduled backups](full_backups.md)
|
||||
- [Scheduled snapshots](rolling_snapshots.md)
|
||||
- Patch detection and application in one click (even to whole pools at once!)
|
||||
- XenServer Docker management via XenServer plugin
|
||||
|
||||
You'll also have access to our ticket system to report issues and be helped in less than 72h.
|
||||
|
||||
### Enterprise
|
||||
|
||||
The Enterprise Edition allows you to access a lot more features than Starter:
|
||||
|
||||
- Disaster Recovery
|
||||
- Continuous Delta Backup
|
||||
- Live stats
|
||||
- ACLs + LDAP/SSO
|
||||
|
||||
In addition, you'll have faster support to answer your issues/questions (48h or less).
|
||||
|
||||
### Premium
|
||||
|
||||
Premium is the highest edition, with all features included without any limitations. This means:
|
||||
|
||||
- Dataviz
|
||||
- Infrastructure health check
|
||||
- Job Manager
|
||||
- Continuous Replication
|
||||
- Self Service
|
||||
|
||||
Along with the fastest guaranteed support - 24 hours or less (typically much less).
|
||||
@@ -1,29 +0,0 @@
|
||||
# Emergency Shutdown
|
||||
|
||||
If you have a UPS for your hosts, and lose power, you may have a limited amount of time to shut down all of your VM infrastructure before the batteries run out. If you find yourself in this situation, or any other situation requiring the fast shutdown of everything, you can use the **Emergency Shutdown** feature.
|
||||
|
||||
## How to activate
|
||||
|
||||
On the host view, clicking on this button will trigger the _Emergency Shutdown_ procedure:
|
||||
|
||||

|
||||
|
||||
1. **All running VMs will be suspended** (think of it like "hibernate" on your laptop: the RAM will be stored in the storage repository).
|
||||
2. Only after this is complete, the host will be halted.
|
||||
|
||||
Here, you can see the running VMs are being suspended:
|
||||
|
||||

|
||||
|
||||
And finally, that's it. They are cleanly shut down with the RAM saved to disk to be resumed later:
|
||||
|
||||

|
||||
|
||||
Now the host is halted automatically.
|
||||
|
||||
## Powering back on
|
||||
|
||||
When the power outage is over, all you need to do is:
|
||||
|
||||
1. Start your host.
|
||||
2. All your VMs can be resumed, your RAM is preserved and therefore your VMs will be in the exact same state as they were before the power outage.
|
||||
@@ -1,20 +0,0 @@
|
||||
# Features
|
||||
|
||||
All the following features are exposed through the web client, XO-Web, which is using a [responsive design](https://xen-orchestra.com/blog/xen-orchestra-responsive-design/).
|
||||
|
||||
We've made multiple categories to help you to find what you need:
|
||||
|
||||
- [XenServer Administration](administration.html)
|
||||
- [Docker Support](docker_support.html)
|
||||
- [Backups](backups.html)
|
||||
- [Disaster Recovery](disaster_recovery.html)
|
||||
- [Resources delegation](resources_delegation.html)
|
||||
- [CloudInit](cloudinit.md)
|
||||
- [Self Service](self_service.html)
|
||||
- [Visualizations](visualizations.html)
|
||||
- [Job Manager](scheduler.html)
|
||||
- [Alerts](alerts.html)
|
||||
- [Load balancing](load_balancing.html)
|
||||
- [SDN Controller](sdn_controller.html)
|
||||
|
||||

|
||||
@@ -1,21 +0,0 @@
|
||||
# File level restore
|
||||
|
||||
You can also restore specific files and directories inside a VM. It works with all your existing delta backups.
|
||||
|
||||
> You must use the latest XOA release. When you connect with the console, you should see `Build number: 16.12.20`. If you have this or higher (eg `17.*`), it means that's OK! Otherwise, please update your XOA.
|
||||
|
||||
> Restoring individual files from an SMB remote is not possible yet, but it's planned for the future!
|
||||
|
||||
> File level restore **is only possible on delta backups**
|
||||
|
||||
## Restore a file
|
||||
|
||||
Go into the Backup/File restore section:
|
||||
|
||||

|
||||
|
||||
Then, click on the VM where your files are, and follow the instructions:
|
||||
|
||||

|
||||
|
||||
That's it! Your chosen file will be restored.
|
||||
@@ -17,7 +17,9 @@ $ xoa check
|
||||
|
||||
If the result you have is completely different from that, or if error messages are displayed, lost packets, etc., you have, indeed, a problem. The next step should be to check in this document if there is an existing troubleshooting for the problem you have.
|
||||
|
||||
> You can also access the log by using this command: `$ tail -f /var/log/syslog` ([learn more](https://xen-orchestra.com/docs/logs.html))
|
||||
:::tip
|
||||
You can also access the log by using this command: `$ tail -f /var/log/syslog` ([learn more](https://xen-orchestra.com/docs/logs.html))
|
||||
:::
|
||||
|
||||
## General
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# GitHub
|
||||
|
||||
This plugin allows GitHub users to authenticate to Xen-Orchestra.
|
||||
|
||||
The first time a user signs in, XO will create a new XO user with the same identifier, without any permissions.
|
||||
|
||||
First you need to configure a new app in your GitHub account:
|
||||
|
||||

|
||||
|
||||
When you get your `clientID` and your `clientSecret`, you can configure them in the GitHub Plugin inside the "Settings/Plugins" view of Xen Orchestra.
|
||||
|
||||
Be sure to activate the plugin after you save the configuration (button on top). When it's done, you'll see a link in the login view, this is where you'll go to authenticate:
|
||||
|
||||

|
||||
|
||||
## Debugging
|
||||
|
||||
If you can't log in with your GitHub settings, please check the logs of `xo-server` while you attempt to connect. It will give you hints about the error encountered. You can do that with a `tail -f /var/log/syslog -n 100` on your XOA.
|
||||
@@ -1,40 +0,0 @@
|
||||
# Google
|
||||
|
||||
This plugin allows Google users to authenticate to Xen-Orchestra.
|
||||
|
||||
The first time a user signs in, XO will create a new XO user with the same identifier, without any permissions.
|
||||
|
||||
## Creating the Google project
|
||||
|
||||
[Create a new project](https://console.developers.google.com/project):
|
||||
|
||||

|
||||
|
||||
Enable the Google+ API:
|
||||
|
||||

|
||||
|
||||
Add OAuth 2.0 credentials:
|
||||
|
||||

|
||||

|
||||
|
||||
## Configure the XO plugin
|
||||
|
||||
In Settings, then Plugins, expand the Google plugin detail and provide:
|
||||
|
||||
- a `clientID` e.g `326211154583-nt2s112d3t7f4f1hh49oo9164nivvbnu.apps.googleusercontent.com`
|
||||
- a `clientSecret`, e.g `HTDb8I4jXiLRMaRL15qCffQ`
|
||||
- the `callbackURL`, e.g `http://xo.company.net/signin/google/callback`
|
||||
|
||||

|
||||
|
||||
Be sure to activate the plugin after you save the configuration (button on top).
|
||||
|
||||
You can now connect with your Google account in the login page:
|
||||
|
||||
![Google log in]()
|
||||
|
||||
## Debugging
|
||||
|
||||
If you can't log in with your Google settings, please check the logs of `xo-server` while you attempt to connect. It will give you hints about the error encountered. You can do that with a `tail -f /var/log/syslog -n 100` on your XOA.
|
||||
@@ -1,15 +0,0 @@
|
||||
# Health
|
||||
|
||||
This view will help you find any bottlenecks and compare the metrics of your infrastructure.
|
||||
|
||||
### Heatmap
|
||||
|
||||
A heatmap allows its reader to understand when your VMs or hosts are stressed. Values are relative, thus it's easy to detect trends or spikes.
|
||||
|
||||
[](https://xen-orchestra.com/blog/xen-orchestra-4-4/#heatmapforinfrastructurehealth).
|
||||
|
||||
### Event correlation
|
||||
|
||||
This is the place to compare metrics on comparable objects (VMs to VMs, hosts to hosts).
|
||||
|
||||
[](https://xen-orchestra.com/blog/xen-orchestra-4-6#eventcorrelation).
|
||||
@@ -31,6 +31,34 @@ Once you have started the VM, you can access the web UI by putting the IP you co
|
||||
We don't generate virtual appliances every month (unlike XO code itself). It's very likely you'll need to update Xen Orchestra after the initial deploy. You need to register to do so!
|
||||
:::
|
||||
|
||||
### Trial
|
||||
|
||||
In your current Free XOA, register it in the "Updates" view in the main menu:
|
||||
|
||||

|
||||
|
||||
**To register your appliance, please use your email/password from your previous registration on xen-orchestra.com**:
|
||||
|
||||

|
||||
|
||||
Then you can click on "Start Trial", the green button:
|
||||
|
||||

|
||||
|
||||
Remember to click on the Upgrade button after requesting a trial - this will download the **Premium Edition** for 15 days!
|
||||
|
||||

|
||||
|
||||
### Trial availability
|
||||
|
||||
In this update view, you can see when your trial will end:
|
||||
|
||||

|
||||
|
||||
:::tip
|
||||
Don't worry! XOA will still work after the trial: you'll be forced to downgrade to Free version, but you won't lose any configuration data.
|
||||
:::
|
||||
|
||||
### More on XOA
|
||||
|
||||
You can get all the info you want on XOA in its [dedicated section](xoa.md).
|
||||
@@ -68,7 +96,7 @@ If not, see [this page](https://nodejs.org/en/download/package-manager/) for ins
|
||||
|
||||
#### Yarn
|
||||
|
||||
> Yarn is a package manager that offers more guarantees than npm.
|
||||
Yarn is a package manager that offers more guarantees than npm.
|
||||
|
||||
See [this page](https://yarnpkg.com/en/docs/install#debian-stable) for instructions on how to install Yarn.
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Invoices
|
||||
|
||||
You can find all your invoices in your member zone: https://xen-orchestra.com/#!/member
|
||||
|
||||
Get in the "Invoices" tab:
|
||||
|
||||

|
||||
|
||||
You can download your invoice in PDF format, by clicking in the "Export" row, on the invoice name with the PDF extension.
|
||||
22
docs/ldap.md
22
docs/ldap.md
@@ -1,22 +0,0 @@
|
||||
# LDAP
|
||||
|
||||
XO currently supports connections to LDAP directories, like _Open LDAP_ or _Active Directory_.
|
||||
|
||||
To configure your LDAP, you need to go into the _Plugins_ section in the "Settings" view. Then configure it:
|
||||
|
||||

|
||||
|
||||
Don't forget to save the configuration, and also check if the plugin is activated (green button on top).
|
||||
|
||||
## Filters
|
||||
|
||||
LDAP Filters allow you to properly match your user. It's not an easy task to always find the right filter, and it entirely depends on your LDAP configuration. Still, here is a list of common filters:
|
||||
|
||||
- `'(uid={{name}})'` is usually the default filter for _Open LDAP_
|
||||
- `'(cn={{name}})'`, `'(sAMAccountName={{name}})'`, `'(sAMAccountName={{name}}@<domain>)'` or even `'(userPrincipalName={{name}})'` are widely used for _Active Directory_. Please check with your AD Admin to find the right one.
|
||||
|
||||
After finishing the configuration, you can try to log in with your LDAP username and password. Finally, right after your initial successful log in, your account will be visible in the user list of Xen Orchestra.
|
||||
|
||||
## Debugging
|
||||
|
||||
If you can't log in with your LDAP settings, please check the logs of `xo-server` while you attempt to connect. It will give you hints about the error encountered. You can do that with a `tail -f /var/log/syslog -n 100` on your XOA.
|
||||
25
docs/logs.md
25
docs/logs.md
@@ -1,25 +0,0 @@
|
||||
# Logs
|
||||
|
||||
This section will explain how to check the XOA logs, and use them to detect issues.
|
||||
|
||||
## From the web interface
|
||||
|
||||
Go into Settings/Logs view.
|
||||
|
||||
## CLI
|
||||
|
||||
All XOA logs are stored in `/var/log/syslog` (on the XO Appliance).
|
||||
|
||||
To filter only what you need, you can use `journalctl`. Below is an example to filter only logs for `xo-server`:
|
||||
|
||||
```
|
||||
$ journalctl -u xo-server -f -n 50
|
||||
```
|
||||
|
||||
This will return the 50 last lines and tail the file. If you have an error message in your application, start this command and try to reproduce the issue. You'll see clearly what the problem is.
|
||||
|
||||
You can also filter for the updater program:
|
||||
|
||||
```
|
||||
$ journalctl -u xoa-updater -f -n 50
|
||||
```
|
||||
@@ -34,7 +34,9 @@ Let's take a quick tour:
|
||||
- the home view has a header with a type selector (VMs, hosts or pools), a filter zone and a button to create new VMs
|
||||
- the VM list also has a header (number of filtered VMs and total VMs) and assisted filters (by pool, host and tags) and a sort menu (by name, memory etc.). You can also expand all VMs details here with the icon 
|
||||
|
||||
> Pro Tip: you can edit a VM name, description and even current host by long clicking on the field
|
||||
:::tip
|
||||
You can edit a VM name, description and even current host by long clicking on the field
|
||||
:::
|
||||
|
||||
## Bulk actions
|
||||
|
||||
@@ -54,7 +56,9 @@ All host objects are displayed:
|
||||
|
||||
You have power status, name, description, number of CPU cores, total memory, management IP and pool name displayed. You can also edit these by long clicking.
|
||||
|
||||
> Pro Tip: If hosts have missing patches, you'll see a red dot with the total patches missing. Click on it to go the patch section of the host. See this blog post on [patches for XenServer](https://xen-orchestra.com/blog/hotfix-xs70e004-for-xenserver-7-0/) for more details.
|
||||
:::tip
|
||||
If hosts have missing patches, you'll see a red dot with the total patches missing. Click on it to go the patch section of the host. See this blog post on [patches for XenServer](https://xen-orchestra.com/blog/hotfix-xs70e004-for-xenserver-7-0/) for more details.
|
||||
:::
|
||||
|
||||
### Pools
|
||||
|
||||
@@ -64,7 +68,9 @@ All your pools are displayed here:
|
||||
|
||||
You can also see missing patches in red.
|
||||
|
||||
> Did you know? Even a single XenServer host is inside a pool!
|
||||
:::tip
|
||||
Did you know? Even a single XenServer host is inside a pool!
|
||||
:::
|
||||
|
||||
## Live filter search
|
||||
|
||||
@@ -75,7 +81,9 @@ The idea is not just to provide a good search engine, but also a complete soluti
|
||||
- perform bulk actions on all results found
|
||||
- sort your results for more pertinent insight
|
||||
|
||||
> Pro Tip: the URL of Xen Orchestra contains the search string, eg `home?s=power_state%3Arunning+`. You can share these URLs to your colleagues to share your search!
|
||||
:::tip
|
||||
Pro Tip: the URL of Xen Orchestra contains the search string, eg `home?s=power_state%3Arunning+`. You can share these URLs to your colleagues to share your search!
|
||||
:::
|
||||
|
||||
### Search examples
|
||||
|
||||
@@ -105,11 +113,15 @@ There, you can edit or remove any filter/search you've created!
|
||||
|
||||
In this user section, you can set a default filter (preset filters or your own).
|
||||
|
||||
> Pro Tip: this is saved in your user preferences. It means that you can connect anywhere on any browser, and you'll still see the same behavior.
|
||||
:::tip
|
||||
Pro Tip: this is saved in your user preferences. It means that you can connect anywhere on any browser, and you'll still see the same behavior.
|
||||
:::
|
||||
|
||||
### Filter syntax
|
||||
|
||||
> A filter allows you to search through a collection of objects which have multiple properties and may even contain other nested objects.
|
||||
:::tip
|
||||
A filter allows you to search through a collection of objects which have multiple properties and may even contain other nested objects.
|
||||
:::
|
||||
|
||||
#### Searching for a string (or substring)
|
||||
|
||||
@@ -118,7 +130,9 @@ Simply type the string, if it contains special characters just surround it with
|
||||
- `simple-string`
|
||||
- `"string with special characters like whitespaces"`
|
||||
|
||||
> The search is recursive, case insensitive and non-anchored (i.e. matches if the pattern is contained in a string).
|
||||
:::tip
|
||||
The search is recursive, case insensitive and non-anchored (i.e. matches if the pattern is contained in a string).
|
||||
:::
|
||||
|
||||
A simple string can also contain a wildcard character (`*`) to match any character in a portion of the string:
|
||||
|
||||
@@ -223,7 +237,9 @@ The next step is to select a template:
|
||||
|
||||

|
||||
|
||||
> What is a XenServer template? It can be 2 things: first an "empty" template, meaning it contains only the configuration for your future VM, such as example settings (minimum disk size, RAM and CPU, BIOS settings if HVM etc.) Or it could be a previous VM you converted into a template: in this case, creating a VM will clone the existing disks.
|
||||
:::tip
|
||||
What is a XenServer template? It can be 2 things: first an "empty" template, meaning it contains only the configuration for your future VM, such as example settings (minimum disk size, RAM and CPU, BIOS settings if HVM etc.) Or it could be a previous VM you converted into a template: in this case, creating a VM will clone the existing disks.
|
||||
:::
|
||||
|
||||
##### Name and description
|
||||
|
||||
@@ -247,7 +263,9 @@ The default CPU weight is `256` which means it will be scheduled by Xen like any
|
||||
|
||||
What about cap? It's the maximum amount of CPUs a VM can consume, using a 100 base (1 vCPU: 100). Default is 0 and means no upper cap.
|
||||
|
||||
> Should I mess with these settings? In general: nope. Change this only if you are sure of what are you doing. More can be found here: https://wiki.xen.org/wiki/Credit_Scheduler
|
||||
:::tip
|
||||
Should I mess with these settings? In general: nope. Change this only if you are sure of what are you doing. More can be found here: https://wiki.xen.org/wiki/Credit_Scheduler
|
||||
:::
|
||||
|
||||
#### Install settings
|
||||
|
||||
@@ -277,7 +295,9 @@ This is the network section of the VM configuration: in general, MAC field is ke
|
||||
|
||||
This section is for configuring new or existing disks (according to your selected template).
|
||||
|
||||
> Protip: avoid using large disks for your VMs. Want to store a lot of files? Use a network share for that (NFS, SMB) and keep using VMs with small system disks. It's far easier to maintain, migrate, backup and restore!
|
||||
:::tip
|
||||
Protip: avoid using large disks for your VMs. Want to store a lot of files? Use a network share for that (NFS, SMB) and keep using VMs with small system disks. It's far easier to maintain, migrate, backup and restore!
|
||||
:::
|
||||
|
||||
## VM management
|
||||
|
||||
@@ -328,7 +348,9 @@ If you pool supports HA (must have shared storage), you can activate "HA". Read
|
||||
|
||||
#### Docker management
|
||||
|
||||
> Please [read the dedicated section](docker_support.md) to install a Docker Ready VM.
|
||||
:::tip
|
||||
Please [read the dedicated section](docker_support.md) to install a Docker Ready VM.
|
||||
:::
|
||||
|
||||
### VM CPU priority
|
||||
|
||||
@@ -356,13 +378,17 @@ You can create a snapshot with one click. It will be named automatically. After
|
||||
- revert your VM to this snapshot (it will restart the VM)
|
||||
- delete this snapshot
|
||||
|
||||
> By default, XOA will try to make a snapshot with quiesce. If the VM does not support it, it will fallback to the default snapshot system.
|
||||
:::tip
|
||||
By default, XOA will try to make a snapshot with quiesce. If the VM does not support it, it will fallback to the default snapshot system.
|
||||
:::
|
||||
|
||||
## VM import and export
|
||||
|
||||
Xen Orchestra can import and export VM's in XVA format (XenServer format) or import OVA files (OVF1 format).
|
||||
|
||||
> We support OVA import from VirtualBox. Feel free to report issues with OVA from other virtualization platforms.
|
||||
:::tip
|
||||
We support OVA import from VirtualBox. Feel free to report issues with OVA from other virtualization platforms.
|
||||
:::
|
||||
|
||||
### VM import
|
||||
|
||||
@@ -384,7 +410,9 @@ When you are OK with these settings, just click on the "Import" button.
|
||||
|
||||
### VM export
|
||||
|
||||
> Exported VMs are in XVA format
|
||||
:::tip
|
||||
Exported VMs are in XVA format
|
||||
:::
|
||||
|
||||
Just access the page for the VM that you want to export, and click on the "Export" button in the toolbar. You'll instantly download a compressed XVA file.
|
||||
|
||||
@@ -421,7 +449,9 @@ When you click on "Install all patches", XOA will do all of the following automa
|
||||
|
||||
You can see more screenshots here: https://xen-orchestra.com/blog/hotfix-xs70e004-for-xenserver-7-0/
|
||||
|
||||
> If you are behind a proxy, please update your `xo-server` configuration to add a proxy server, as [explained in the appropriate section](configuration.md#proxy-for-xenserver-updates-and-patches).
|
||||
:::tip
|
||||
If you are behind a proxy, please update your `xo-server` configuration to add a proxy server, as [explained in the appropriate section](configuration.md#proxy-for-xenserver-updates-and-patches).
|
||||
:::
|
||||
|
||||
### Notes on patching
|
||||
|
||||
@@ -435,7 +465,9 @@ You can see more screenshots here: https://xen-orchestra.com/blog/hotfix-xs70e00
|
||||
|
||||
Visualizations can help you to understand your XenServer infrastructure, as well as correlate events and detect bottlenecks.
|
||||
|
||||
> :construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::tip
|
||||
:construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::
|
||||
|
||||
### Dashboard
|
||||
|
||||
@@ -457,7 +489,9 @@ A Parallel Coordinates visualization helps to detect proportions in a hierarchic
|
||||
|
||||
This view will help you find any bottlenecks and compare the metrics of your infrastructure.
|
||||
|
||||
> :construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::tip
|
||||
:construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::
|
||||
|
||||
### Heatmap
|
||||
|
||||
@@ -484,7 +518,9 @@ This allows you to enjoy Docker containers displayed directly in Xen Orchestra.
|
||||
|
||||
This first step is needed until Docker is supported natively in the XenServer API (XAPI).
|
||||
|
||||
> The plugin should be installed on every host you will be using, even if they are on the same pool.
|
||||
:::tip
|
||||
The plugin should be installed on every host you will be using, even if they are on the same pool.
|
||||
:::
|
||||
|
||||
#### For XenServer 6.5
|
||||
|
||||
|
||||
@@ -26,7 +26,9 @@ Once created, the job is displayed with the other classic jobs.
|
||||
|
||||
## Performing a restore
|
||||
|
||||
> WARNING: restoring pool metadata completely overwrites the XAPI database of a host. Only perform a metadata restore if it is a new server with nothing running on it (eg replacing a host with new hardware).
|
||||
:::warning
|
||||
Restoring pool metadata completely overwrites the XAPI database of a host. Only perform a metadata restore if it is a new server with nothing running on it (eg replacing a host with new hardware).
|
||||
:::
|
||||
|
||||
If you browse to the Backup NG Restore panel, you will now notice a Metadata filter button:
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# Others
|
||||
|
||||
We already have other modules in place, e.g for authentication, like a LDAP, SAML, Google or GitHub as external providers.
|
||||
|
||||
If you want to understand how modules work, have a look here:
|
||||
|
||||
- [LDAP plugin](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server-auth-ldap)
|
||||
- [GitHub authentication](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-server-auth-github)
|
||||
|
||||
XO's API can be explored through the `xo-cli` client (please refer to the previous section for details).
|
||||
|
||||
There are modules for a lot of various tasks, like:
|
||||
|
||||
- performance analysis
|
||||
- reporting
|
||||
- load management
|
||||
- various authentication providers
|
||||
|
||||
Check your Settings/Plugins view in XOA to see them.
|
||||
@@ -1,32 +0,0 @@
|
||||
# Patching
|
||||
|
||||
Patching a host manually can be time consuming (and boring). That's why we provide the high level feature of downloading and applying all missing patches automatically.
|
||||
|
||||
## XOA smart patching system
|
||||
|
||||
Your XOA will check the official Citrix servers for missing patches. They will be displayed if any:
|
||||
|
||||
- in dashboard view
|
||||
- in pool view (plus the number of missing patches in a red box)
|
||||
- in host view (in patching tab, same red pill)
|
||||
|
||||
### Installing patches
|
||||
|
||||
When you click on "Install all patches", XOA will do all of the following automatically:
|
||||
|
||||
- fetch all missing patches from Citrix servers
|
||||
- unzip them
|
||||
- upload them
|
||||
- apply them in the correct order
|
||||
|
||||
You can see more screenshots here: https://xen-orchestra.com/blog/hotfix-xs70e004-for-xenserver-7-0/
|
||||
|
||||
> If you are behind a proxy, please update your `xo-server` configuration to add a proxy server, as [explained in the appropriate section](configuration.md#proxy-for-xenserver-updates-and-patches).
|
||||
|
||||
## Notes on patching
|
||||
|
||||
- Xen Orchestra won't reboot your hosts automatically. That's your call to choose when to do it.
|
||||
- Patching doesn't always require rebooting. Check the "Guidance" row: if "restartHost" is displayed, it means you need to reboot to have the patch fully applied (see screenshot below)
|
||||
- XO will install all patches without rebooting: that's not an issue. Even applying patches manually, **it's not mandatory to reboot after each patch**.
|
||||
|
||||

|
||||
@@ -39,8 +39,11 @@ The second step is to select your purchase option:
|
||||
|
||||
- Paid period: **check or wire transfer only**. This purchase allows you to subscribe for a one, two or three year period
|
||||
|
||||
> A 2 year subscription period grants you 1 month discounted
|
||||
> A 3 year subscription period grants you 2 months discounted
|
||||
:::tip
|
||||
|
||||
- A 2 year subscription period grants you 1 month discounted
|
||||
- A 3 year subscription period grants you 2 months discounted
|
||||
:::
|
||||
|
||||
Then you need to fill in your information and select **"Buy for my own use"** (direct purchase)
|
||||
|
||||
@@ -50,8 +53,10 @@ Then you need to fill in your information and select **"Buy for my own use"** (d
|
||||
|
||||
You need to complete all the required information on this page in order to move forward.
|
||||
|
||||
> Note: If you are part of the Eurozone, you will need to provide a valid EU VAT number in order to proceed to payment. Transactions between companies inside the Eurozone are VAT free.
|
||||
> Transactions outside the Eurozone are VAT free.
|
||||
:::tip
|
||||
If you are part of the Eurozone, you will need to provide a valid EU VAT number in order to proceed to payment. Transactions between companies inside the Eurozone are VAT free.
|
||||
Transactions outside the Eurozone are VAT free.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
@@ -59,12 +64,16 @@ You need to complete all the required information on this page in order to move
|
||||
|
||||
Credit Card, Wire transfer or Bank check are the three payment methods available on our store. Some methods can be unavailable regarding the purchase option you have selected during step one.
|
||||
|
||||
> Wire transfer is not available for monthly and yearly subscription - Credit Card is not available for paid period.
|
||||
:::tip
|
||||
Wire transfer is not available for monthly and yearly subscription - Credit Card is not available for paid period.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
> All required information for wire transfer and Check payment will be available in the last step of the payment AND on your proforma invoice.
|
||||
> ⚠ Please, use an explicit reference for your wire transfer in order for us to easily identify your payment.
|
||||
:::tip
|
||||
All required information for wire transfer and Check payment will be available in the last step of the payment AND on your proforma invoice.
|
||||
:warning: Please, use an explicit reference for your wire transfer in order for us to easily identify your payment.
|
||||
:::
|
||||
|
||||
## Via your purchase departement
|
||||
|
||||
@@ -113,7 +122,9 @@ To apply to our partner program, you can access the [partner page](https://xen-o
|
||||
|
||||
You will have to complete a form in order to provide information regarding your expectations and location. Once you've finished, you should receive an email in order to **start the discussion with someone from our team**.
|
||||
|
||||
> It's important to answer the email - this will start the discussion with someone from our team in order to determine together if the partner status is what you really need.
|
||||
:::tip
|
||||
It's important to answer the email - this will start the discussion with someone from our team in order to determine together if the partner status is what you really need.
|
||||
:::
|
||||
|
||||
Once we have activated your partner space, you will have the ability to access the purchasing page [at the same place](https://xen-orchestra.com/#!/partner).
|
||||
|
||||
@@ -162,3 +173,39 @@ If you want to purchase XO using the quote you receive, you just have to enter t
|
||||
If you choose a Stripe payment, you can always edit the credit card information in case it changes. To do so, you only have to login to your personal account page and access the _profile_ menu.
|
||||
|
||||

|
||||
|
||||
## Upgrade your plan
|
||||
|
||||
If you want to upgrade your active plan to a higher version of Xen Orchestra, you can do it from your **personal space**.
|
||||
|
||||
### Step by step:
|
||||
|
||||
1. Connect on your personal account on the [website](https://xen-orchestra.com/#!/login?source=member.index).
|
||||
|
||||

|
||||
|
||||
2. Go on the purchase menu
|
||||
|
||||

|
||||
|
||||
3. Pick the line corresponding to the account you want to upgrade. Click on the "upgrade" button on the right.
|
||||
|
||||

|
||||
|
||||
4. At this point, you will see a standard subscription page. **Choose the same payment method you used to purchase the initial plan** and confirm the purchase.
|
||||
|
||||

|
||||
|
||||
5. If you chosse wire transfer, you have now the possibility to download a quote. As you can see, the remaining period of your previous plan is now a credit note applied on this upgrade.
|
||||
|
||||

|
||||
|
||||
6. As for a regular purchase, upload a proof of payment in order for us to activate your new plan as soon as possible.
|
||||
|
||||

|
||||
|
||||
7. **Enjoy your new plan!**
|
||||
|
||||
:::tip
|
||||
As a reseller, the process is quite the same. The only difference is that you have to pick your customer line into you reseller space an not your personal space.
|
||||
:::
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Recipes
|
||||
|
||||
Here are some configuration examples to leverage the possibilities in Xen Orchestra.
|
||||
@@ -1,8 +1,10 @@
|
||||
# Xen Orchestra Partner Program
|
||||
# Partner Program
|
||||
|
||||
The Xen Orchestra partner program is designed to offer you the opportunity to become a reseller of Xen Orchestra and deliver a full stack solution to your customers.
|
||||
|
||||
> Becoming a reseller will grant you a standard discount. However, **the reseller status is designed for companies that want to actively prospect for new Xen Orchestra users**. That's why we are asking our partners to **resell Xen Orchestra at least two times a year**. If you are acting as a third party purchaser answering to a specific request from one of your customers, you don't need to apply to the reseller program - you can follow [this process](https://xen-orchestra.com/docs/through_purchase_department.html) instead.
|
||||
:::tip
|
||||
Becoming a reseller will grant you a standard discount. However, **the reseller status is designed for companies that want to actively prospect for new Xen Orchestra users**. That's why we are asking our partners to **resell Xen Orchestra at least two times a year**. If you are acting as a third party purchaser answering to a specific request from one of your customers, you don't need to apply to the reseller program - you can follow [this process](./purchase.md#via-your-purchase-departement) instead.
|
||||
:::
|
||||
|
||||
## Apply to the program
|
||||
|
||||
@@ -12,7 +14,9 @@ To apply to our partner program, you can access the [partner page](https://xen-o
|
||||
|
||||
You will have to complete a form in order to provide information regarding your expectations and location. Once you've finished, you should receive an email in order to **start the discussion with someone from our team**.
|
||||
|
||||
> It's important to answer the email - this will start the discussion with someone from our team in order to determine together if the partner status is what you really need.
|
||||
:::tip
|
||||
It's important to answer the email - this will start the discussion with someone from our team in order to determine together if the partner status is what you really need.
|
||||
:::
|
||||
|
||||
Once we have activated your partner space, you will have the ability to access the purchasing page [at the same place](https://xen-orchestra.com/#!/partner).
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# Resource Delegation
|
||||
|
||||
This chapter covers how to delegate resources (VM, hosts, etc) to users.
|
||||
|
||||
The idea is to allow external users (not admins) to:
|
||||
|
||||
- interact only with their objects
|
||||
- delegate VMs to your dev teams...
|
||||
- ... or to your clients
|
||||
|
||||
> Remember: admins can do everything, thus permissions don't apply on them. It's only for _users_.
|
||||
|
||||
## Groups
|
||||
|
||||
Groups are a set of users. You can use groups to apply permissions/ACLs on a whole set of users, instead of repeating superfluous operations on multiple users separately.
|
||||
|
||||
Groups can be created and managed in the "Groups" view inside the "Settings" menu.
|
||||
|
||||
1. Create a group by giving it a name
|
||||
2. Edit this group and add users in it
|
||||
|
||||
Any group can be edited as needed after its creation.
|
||||
|
||||

|
||||
@@ -1,48 +0,0 @@
|
||||
# Reverse proxy
|
||||
|
||||
## Apache
|
||||
|
||||
As XO-web and XO-server communicate with _WebSockets_, you need to have the [`mod_proxy`](http://httpd.apache.org/docs/2.4/mod/mod_proxy.html), [`mod_proxy_http`](http://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html), [`mod_proxy_wstunnel`](http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html) and [`mod_rewrite`](http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html) modules enabled.
|
||||
|
||||
Please use this configuration in this order or it will not work. Do not forget the trailing slashes!:
|
||||
|
||||
```apache
|
||||
RewriteEngine On
|
||||
RewriteCond %{HTTP:upgrade} websocket [NC]
|
||||
RewriteRule /[<path>]/(.*) ws://<xo-server ip>:<xo-server port>/$1 [L,P]
|
||||
|
||||
ProxyPass /[<path>]/ http://<xo-server ip>:<xo-server port>/
|
||||
ProxyPassReverse /[<path>]/ http://<xo-server ip>:<xo-server port>/
|
||||
```
|
||||
|
||||
## NGINX
|
||||
|
||||
Just configure your VirtualHost as usual (or your default site), with a `location` section like this one:
|
||||
|
||||
```nginx
|
||||
location /[<path>] {
|
||||
# Add some headers
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Proxy configuration
|
||||
proxy_pass http://<XOA ip address>[:<port>]/;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
|
||||
proxy_redirect default;
|
||||
|
||||
# Issue https://github.com/vatesfr/xen-orchestra/issues/1471
|
||||
proxy_read_timeout 1800; # Error will be only every 30m
|
||||
|
||||
# For the VM import feature, this size must be larger than the file we want to upload.
|
||||
# Without a proper value, nginx will have error "client intended to send too large body"
|
||||
client_max_body_size 4G;
|
||||
}
|
||||
```
|
||||
|
||||
That's all!
|
||||
@@ -8,7 +8,9 @@ We strongly advise that you do NOT rely only on snapshots!
|
||||
|
||||
This feature is similar to Backups, but it creates a snapshot when planned to do so. It also handles the retention (removing the oldest snapshot). This feature is very convenient to rollback to a previous state.
|
||||
|
||||
> :construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::tip
|
||||
:construction_worker: This section needs to be completed: screenshots and how-to :construction_worker:
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Due to space usage, rolling snapshots should be avoided for large VMs on non-thin provisioned storages.
|
||||
|
||||
23
docs/saml.md
23
docs/saml.md
@@ -1,23 +0,0 @@
|
||||
# SAML
|
||||
|
||||
> SAML authentication plugin for XO-Server
|
||||
|
||||
This plugin allows SAML users to authenticate to Xen-Orchestra.
|
||||
|
||||
The first time a user signs in, XO will create a new XO user with the same identifier.
|
||||
|
||||
## Configuration
|
||||
|
||||
In the "Settings" then "Plugins" view, expand the SAML plugin configuration. Then provide the needed fields:
|
||||
|
||||

|
||||
|
||||
Save the configuration and then activate the plugin (button on top).
|
||||
|
||||
> Important: When registering your instance to your identity provider,
|
||||
> you must configure its callback URL to
|
||||
> `http://xo.example.net/signin/saml/callback`!
|
||||
|
||||
## Debugging
|
||||
|
||||
If you can't log in with your SAML settings, please check the logs of `xo-server` while you attempt to connect. It will give you hints about the error encountered. You can do that with a `tail -f /var/log/syslog -n 100` on your XOA.
|
||||
@@ -1,54 +0,0 @@
|
||||
# Job manager
|
||||
|
||||
> Job manager is available in XOA 4.10 and higher
|
||||
|
||||
The key idea is to be able to schedule any action (migrate, reboot etc.), for things like backups, snapshots or DR actions.
|
||||
|
||||
In the main menu, go to the "Job Manager" section:
|
||||
|
||||

|
||||
|
||||
You can now **schedule all actions** on your hosts, VMs, or ACLs. It's configured in 2 steps:
|
||||
|
||||
1. Create a job
|
||||
1. Schedule it!
|
||||
|
||||
Real example, step by step: **Creating a job called "security reboot"** (in this case, restarting "nfs" and "Core1" VMs):
|
||||
|
||||

|
||||
|
||||
Note that you can execute this job **now** by clicking on the orange play button (to test it for instance):
|
||||
|
||||

|
||||
|
||||
**Schedule the job** (every Sunday at 5:00 AM):
|
||||
|
||||

|
||||
|
||||
And that's it! The job is listed in the Overview:
|
||||
|
||||

|
||||
|
||||
The possibilities are infinite! You can schedule a **lot** of things (any actions on a VM, like migrate, start, clone, suspend etc. Same thing also applies to hosts).
|
||||
|
||||
## Examples
|
||||
|
||||
### Save on your electric bill
|
||||
|
||||
- plan a live migration of your VMs at 11:00PM to a less powerful host, then shutdown the big one
|
||||
- start the big server at 6:00AM and migrate the VMs back 15 minutes later
|
||||
|
||||
### Scale when needed
|
||||
|
||||
- schedule the boot of extra VMs during your usual activity spikes (horizontal scaling)
|
||||
- also add more vCPUs or RAM to these VMs at the same time
|
||||
- go back to the previous state when your planned load is low (e.g: during the night)
|
||||
|
||||
### Planned reboot
|
||||
|
||||
- For example: your client app is not very stable, or you need to reboot every month after kernel updates: schedule this during the weekend!
|
||||
|
||||
### Add or Remove ACLs
|
||||
|
||||
- revoke your user ACLs Friday at 11:00PM (e.g: no access on the weekend)
|
||||
- restore them Monday at 6:00AM
|
||||
@@ -61,7 +61,9 @@ The plugin's configuration contains:
|
||||
|
||||
### Encryption
|
||||
|
||||
> Encryption is not available prior to 8.0.
|
||||
:::warning
|
||||
Encryption is not available prior to XCP-ng 8.0.
|
||||
:::
|
||||
|
||||
- On XCP-ng 8.0:
|
||||
- To be able to encrypt the networks, `openvswitch-ipsec` package must be installed on all the hosts:
|
||||
|
||||
128
docs/search.md
128
docs/search.md
@@ -1,128 +0,0 @@
|
||||
# Live filter search
|
||||
|
||||
The idea is not just to provide a good search engine, but also a complete solution for managing all your XenServer infrastructure. Ideally:
|
||||
|
||||
- less clicks to see or do what you need
|
||||
- find a subset of interesting objects
|
||||
- perform bulk actions on all results found
|
||||
- sort your results for more pertinent insight
|
||||
|
||||
> Pro Tip: the URL of Xen Orchestra contains the search string, eg `home?s=power_state%3Arunning+`. You can share these URLs to your colleagues to share your search!
|
||||
|
||||
## Search examples
|
||||
|
||||
We include some predefined filters in the dropdown "Filters":
|
||||
|
||||

|
||||
|
||||
You can use custom filters here:
|
||||
|
||||

|
||||
|
||||
## Save your search
|
||||
|
||||
If you want to record your filter, just click on the "Save" icon 
|
||||
|
||||
After giving a name to your filter, you will be able to find it in the dropdown filter menu.
|
||||
|
||||
## Manage your saved search
|
||||
|
||||
Just go into your user panel (bottom of main left menu):
|
||||
|
||||

|
||||
|
||||
There, you can edit or remove any filter/search you've created!
|
||||
|
||||
## Set a default search
|
||||
|
||||
In this user section, you can set a default filter (preset filters or your own).
|
||||
|
||||
> Pro Tip: this is saved in your user preferences. It means that you can connect anywhere on any browser, and you'll still see the same behavior.
|
||||
|
||||
## Filter syntax
|
||||
|
||||
> A filter allows you to search through a collection of objects which have multiple properties and may even contain other nested objects.
|
||||
|
||||
#### Searching for a string (or substring)
|
||||
|
||||
Simply type the string, if it contains special characters just surround it with quotes:
|
||||
|
||||
- `simple-string`
|
||||
- `"string with special characters like whitespaces"`
|
||||
|
||||
> The search is recursive, case insensitive and non-anchored (i.e. matches if the pattern is contained in a string).
|
||||
|
||||
A simple string can also contain a wildcard character (`*`) to match any character in a portion of the string:
|
||||
|
||||
- `foo*bar`: matches `foobar`, `foo - bar`, etc.
|
||||
|
||||
#### Regular expression
|
||||
|
||||
For more advanced string matching, you can use regular expressions:
|
||||
|
||||
- `/^DNS server \d+$/`: matches `DNS server 1`, `DNS server 05` but not `DNS server`
|
||||
- `/foo/i`: with the `i` flag, it ignores the case, therefore it matches `Foo` and `FOO`
|
||||
|
||||
[More information about supported regular expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions).
|
||||
|
||||
#### Searching a specific property
|
||||
|
||||
Type the property name, followed by a colon `:` and a subfilter:
|
||||
|
||||
- `name_label:"my VM"`
|
||||
- `virtualizationMode:hvm`
|
||||
- `boot:order:cn`
|
||||
|
||||
#### Exclusion
|
||||
|
||||
Prefix your filter with an exclamation mark `!` to exclude any matching results:
|
||||
|
||||
- `!hvm`
|
||||
- `!power_state:Running` or `power_state:!Running`
|
||||
|
||||
#### Intersection
|
||||
|
||||
Simply type the filter's terms side by side:
|
||||
|
||||
- `power_state:Halted !virtualizationMode:hvm`
|
||||
|
||||
#### Grouping
|
||||
|
||||
Parentheses can be used to group terms together:
|
||||
|
||||
- `!(power_state:Running virtualizationMode:hvm)`
|
||||
|
||||
#### Union
|
||||
|
||||
Pipe `|` followed by a group of terms:
|
||||
|
||||
- `|(vm1 vm2)`
|
||||
- `power_state:|(Running suspended)`
|
||||
|
||||
#### Truthy property
|
||||
|
||||
This one is less common but can be used to check whether a property has a truth-like value (`true`, non-empty string or non-zero number).
|
||||
|
||||
Postfix the name of a property by a question mark `?`:
|
||||
|
||||
- `auto_poweron?`
|
||||
- `high_availability?`
|
||||
|
||||
#### Number comparison
|
||||
|
||||
You can use the search field/filter with number comparisons:
|
||||
|
||||
- `snapshots:length:>2` (to display VMs with more than 2 snapshots)
|
||||
- `$VBDs:length:>=4` (VMs with more 4 or more disks attached)
|
||||
- `VIFs:length:>=2` (number of network interfaces)
|
||||
|
||||
## Available properties
|
||||
|
||||
There isn't much documentation listing these (yet), but you can see all objects and their properties using `xo-cli --list-objects`. You can then use these properties for search in XOA.
|
||||
|
||||
Take a look at [the documentation](https://github.com/vatesfr/xen-orchestra/tree/master/packages/xo-cli#xo-cli) for xo-cli :)
|
||||
|
||||
Example: to search by the Xen Tools status:
|
||||
|
||||
- `xenTools?`: whether the tools are installed
|
||||
- `xenTools:"up to date"`: whether they are installed and up to date
|
||||
@@ -1,73 +0,0 @@
|
||||
# Self Service
|
||||
|
||||
The self-service feature allows users to create new VMs. This is different from delegating existing resources (VM's) to them, and it leads to a lot of possibilities.
|
||||
|
||||
## Set of resources
|
||||
|
||||
To create a new set of resources to delegate, go to the "Self Service" section in the main menu:
|
||||
|
||||

|
||||
|
||||
### Create a set
|
||||
|
||||
> Only an admin can create a set of resources
|
||||
|
||||
To allow people to create VMs as they want, we need to give them a _part_ of your XenServer resources (disk space, CPUs, RAM). You can call this "general quotas" if you like. But you first need to decide which resources will be used.
|
||||
|
||||
In this example below, we'll create a set called **"sandbox"** with:
|
||||
|
||||
- "devs" is the group that can use this set (all users in the group)
|
||||
- "Lab Pool" is the pool where they can play
|
||||
- "Debian 8 Cloud Ready" is the only template they can use
|
||||
- "SSD NFS" is the only SR where they can create VMs
|
||||
- "Pool-wide network with eth0" is the only available network for them
|
||||
|
||||

|
||||
|
||||
As you can see, only compatible hosts are shown and can be used for this resource set (hosts in another pool aren't shown). This way, you can be sure to have resources free for tasks other than self-service.
|
||||
|
||||
> Don't forget to add an ISO SR to allow your users to install VMs with CD if necessary
|
||||
|
||||
#### Quotas
|
||||
|
||||
Then, you can define quotas on this set:
|
||||
|
||||
- max vCPUs
|
||||
- max RAM
|
||||
- max disk usage
|
||||
|
||||
> Note: Snapshotting a VM within a self-service will _not_ use the quota from the resource set. The same rule applies for backups and replication.
|
||||
|
||||
When you click on create, you can see the resource set and remove or edit it:
|
||||
|
||||

|
||||
|
||||
## Usage (user side)
|
||||
|
||||
As soon as a user is granted a resource set, it displays a new button in their main view: "new".
|
||||
|
||||

|
||||
|
||||
Now, the user can create a VM with only the resources granted in the set:
|
||||
|
||||

|
||||
|
||||
And the recap before creation:
|
||||
|
||||

|
||||
|
||||
If the "Create" button is disabled, it means the user requested more resources than available.
|
||||
|
||||
Finally, if a user has been granted access to multiple resource sets, they can be switched in the top right of the screen.
|
||||
|
||||
## Toward the Cloud
|
||||
|
||||
Self-service is a major step in the Cloud. Combine it with our [Cloudinit compatible VM creation](cloudinit.md) for a full experience:
|
||||
|
||||
- create a Cloud ready template
|
||||
- create a set and put Cloud templates inside
|
||||
- delegate this set to a group of users
|
||||
|
||||
Now, your authorized users can create VMs with their SSH keys, grow template disks if needed, etc. Everything is inside a "sandbox" (the resource set) you defined earlier!
|
||||
|
||||

|
||||
@@ -1,39 +0,0 @@
|
||||
# Smart backup
|
||||
|
||||
There are two ways to select which VMs will be backed up:
|
||||
|
||||
1. Manually selecting multiple VM's
|
||||
1. Smart backup
|
||||
|
||||
Picking VMs manually can be a limitation if your environment moves fast (i.e. having new VMs you need to backup often). In that situation you would previously need to constantly go back and edit the backup job to add new VM's.
|
||||
|
||||
But thanks to _smart backup_, you now have more flexibility: you won't select specific VMs, but VMs status/tag/placement **at the time backup job will be executed**. Let's see some examples!
|
||||
|
||||
## Backup all VMs on a pool
|
||||
|
||||
This job will backup all VMs on a pool "Lab Pool" when scheduled:
|
||||
|
||||

|
||||
|
||||
It means: **every VM existing on this pool at the time of the backup job will be backed up**. Doesn't matter if you create a new VM, it will be backed up too without editing any backup job.
|
||||
|
||||
**You now have the ability to intelligently backup VM's in production pools!**
|
||||
|
||||
Want to narrow the job a bit? See below.
|
||||
|
||||
## Backup filters
|
||||
|
||||
You can also:
|
||||
|
||||
- backup only running (or halted) VMs when the job is executed
|
||||
- backup only VMs with a specific tag
|
||||
|
||||
Remember the Prod VMs? I added a tag "prod" to each of them:
|
||||
|
||||

|
||||
|
||||
Now if you do this:
|
||||
|
||||

|
||||
|
||||
It means any VMs on "Lab Pool" with the "prod" tag will be backed up.
|
||||
@@ -1,37 +0,0 @@
|
||||
# Xen Orchestra compatibility
|
||||
|
||||
Xen Orchestra is designed to work exclusively on [XCP-ng](https://xcp-ng.org/) and [Citrix XenServer](https://xenserver.org/) hypervisor (any version). Xen Orchestra should be fully functional with any version of these two hypervisors. However, to benefit from the best support quality, our product is tested to work the best with the following versions:
|
||||
|
||||
## Citrix XenServer (Citrix hypervisor)
|
||||
|
||||
Backup restore for large VM disks (>1TiB usage) is [broken on all XenServer versions](https://bugs.xenserver.org/browse/XSO-868) until Citrix release a fix.
|
||||
|
||||
- Citrix Hypervisor 8.1
|
||||
- Citrix Hypervisor 8.0
|
||||
- XenServer 7.6
|
||||
- XenServer 7.5
|
||||
- [VDI I/O error](https://bugs.xenserver.org/browse/XSO-873), waiting for Citrix to release our fix
|
||||
- XenServer 7.4
|
||||
- XenServer 7.3
|
||||
- XenServer 7.2
|
||||
- XenServer 7.1
|
||||
- XenServer 7.0
|
||||
- XenServer 6.5
|
||||
- Random Delta backup issues
|
||||
- XenServer 6.1 and 6.2
|
||||
- No Delta backup and CR support
|
||||
- XenServer 5.x
|
||||
- Basic administration features
|
||||
|
||||

|
||||
|
||||
## XCP-ng
|
||||
|
||||
All the pending fixes are already integrated in the latest XCP-ng version. We strongly suggest people to keep using the latest XCP-ng version as far as possible.
|
||||
|
||||
- XCP-ng 8.0
|
||||
- XCP-ng 7.6
|
||||
- XCP-ng 7.5
|
||||
- XCP-ng 7.4.1
|
||||
|
||||

|
||||
@@ -1,28 +0,0 @@
|
||||
# Through purchase department
|
||||
|
||||
If you can't purchase using your own account, usually because you need to go through a dedicated purchase department in your company, this is the process you need to follow.
|
||||
|
||||
Typically, you will provide two contacts:
|
||||
|
||||
- The "billing contact" (in general, the purchaser email). This account will have access to invoices. This is the account doing the purchase. Once purchased, the license needs to be bound to the second contact account, the technical contact.
|
||||
- The "technical contact", the email of the system administrator using the solution and making support requests.
|
||||
|
||||
## As "billing contact"
|
||||
|
||||
1. First of all, you need to create an account as a purchaser (eg: "purchase.dept@example.com"). Once it's done, you need to go inside the member page, in the **purchases** menu.
|
||||
|
||||

|
||||
|
||||
Now, you just have to pick the edition of Xen Orchestra you want to purchase for your IT team.
|
||||
|
||||
2. On the first payment screen, after you choose the plan and the subscription method. You can select the option "Buy for another account"
|
||||
|
||||

|
||||
|
||||
3. Once the payment is completed, you will have to bind the plan with the end-user account (technical contact). If the end-user doesn't have an account yet, the system will create one and send an e-mail to your end user.
|
||||
|
||||

|
||||
|
||||
That's it, you have now completed the purchase.
|
||||
|
||||
**⚠ Once you have bound the plan to your end user account, you cannot change it. Double check the spelling of the e-mail before binding the account.**
|
||||
@@ -1,31 +0,0 @@
|
||||
# Trial
|
||||
|
||||
The trial is valid for 15 days. You'll have a **fully featured XOA** in Premium state!
|
||||
|
||||
> We don't have other edition for trial, but you can compare features on [our pricing page](https://xen-orchestra.com/#!/pricing).
|
||||
|
||||
## Activate the trial
|
||||
|
||||
In your current Free XOA, go register it in the "Updates" view in the main menu:
|
||||
|
||||

|
||||
|
||||
**To register, please use your email/password from your previous registration on xen-orchestra.com**:
|
||||
|
||||

|
||||
|
||||
There, you can click on "Start Trial" green button:
|
||||
|
||||

|
||||
|
||||
Remember to click on Upgrade button after requesting the trial, to download the **Premium Edition** for 15 days!
|
||||
|
||||

|
||||
|
||||
## Trial availability
|
||||
|
||||
In this update view, you can see when your trial will end:
|
||||
|
||||

|
||||
|
||||
> **Don't worry! XOA will still work after the trial: you'll be forced to downgrade to Free version, but you won't lose any configuration.**
|
||||
@@ -1,35 +0,0 @@
|
||||
# Trial activation
|
||||
|
||||
A trial will allow you to test all available features in XOA, for 15 days.
|
||||
|
||||
The procedure is very simple:
|
||||
|
||||
- register, then download a Free Edition [on our website](https://xen-orchestra.com/#/member)
|
||||
- [deploy the virtual appliance](xoa.md)
|
||||
- activate the trial via the "Update" view (details below)
|
||||
|
||||
## Activate the trial
|
||||
|
||||
In your current Free XOA, register it in the "Updates" view in the main menu:
|
||||
|
||||

|
||||
|
||||
**To register your appliance, please use your email/password from your previous registration on xen-orchestra.com**:
|
||||
|
||||

|
||||
|
||||
Then you can click on "Start Trial", the green button:
|
||||
|
||||

|
||||
|
||||
Remember to click on the Upgrade button after requesting a trial - this will download the **Premium Edition** for 15 days!
|
||||
|
||||

|
||||
|
||||
## Trial availability
|
||||
|
||||
In this update view, you can see when your trial will end:
|
||||
|
||||

|
||||
|
||||
> **Don't worry! XOA will still work after the trial: you'll be forced to downgrade to Free version, but you won't lose any configuration data.**
|
||||
@@ -51,6 +51,32 @@ XOA is configured in HVM. It means you need hardware that supports HVM instructi
|
||||
|
||||
Please check that you have enabled virtualization settings in your BIOS or upgrade your hardware.
|
||||
|
||||
## Logs
|
||||
|
||||
This section will explain how to check the XOA logs, and use them to detect issues.
|
||||
|
||||
### From the web interface
|
||||
|
||||
Go into Settings/Logs view.
|
||||
|
||||
### CLI
|
||||
|
||||
All XOA logs are stored in `/var/log/syslog` (on the XO Appliance).
|
||||
|
||||
To filter only what you need, you can use `journalctl`. Below is an example to filter only logs for `xo-server`:
|
||||
|
||||
```
|
||||
$ journalctl -u xo-server -f -n 50
|
||||
```
|
||||
|
||||
This will return the 50 last lines and tail the file. If you have an error message in your application, start this command and try to reproduce the issue. You'll see clearly what the problem is.
|
||||
|
||||
You can also filter for the updater program:
|
||||
|
||||
```
|
||||
$ journalctl -u xoa-updater -f -n 50
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
XOA is a virtual appliance running Debian with Xen Orchestra installed. If you have any problems, the first thing to do is to use our check service by running the `xoa check` command in a terminal:
|
||||
@@ -142,7 +168,7 @@ $ openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -nodes -
|
||||
$ systemctl restart xo-server.service
|
||||
```
|
||||
|
||||
## Configuration
|
||||
### Logs
|
||||
|
||||
The system logs are visible by using this command:
|
||||
|
||||
@@ -168,7 +194,9 @@ If a package disappears due to a build problem or human error, you can redownloa
|
||||
1. `rm /var/lib/xoa-updater/update.json`
|
||||
2. `xoa-updater --upgrade`
|
||||
|
||||
> We'll have a `xoa-updater --force-reinstall` option soon, to do this automatically
|
||||
:::tip
|
||||
We'll have a `xoa-updater --force-reinstall` option soon, to do this automatically
|
||||
:::
|
||||
|
||||
### Reset configuration
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# How to uprade your active plan?
|
||||
|
||||
If you want to upgrade your active plan to a higher version of Xen Orchestra, you can do it from your **personal space**.
|
||||
|
||||
### Step by step:
|
||||
|
||||
1. Connect on your personal account on the [website](https://xen-orchestra.com/#!/login?source=member.index).
|
||||
|
||||

|
||||
|
||||
2. Go on the purchase menu
|
||||
|
||||

|
||||
|
||||
3. Pick the line corresponding to the account you want to upgrade. Click on the "upgrade" button on the right.
|
||||
|
||||

|
||||
|
||||
4. At this point, you will see a standard subscription page. **Choose the same payment method you used to purchase the initial plan** and confirm the purchase.
|
||||
|
||||

|
||||
|
||||
5. If you chosse wire transfer, you have now the possibility to download a quote. As you can see, the remaining period of your previous plan is now a credit note applied on this upgrade.
|
||||
|
||||

|
||||
|
||||
6. As for a regular purchase, upload a proof of payment in order for us to activate your new plan as soon as possible.
|
||||
|
||||

|
||||
|
||||
7. **Enjoy your new plan!**
|
||||
|
||||
> As a reseller, the process is quite the same. The only difference is that you have to pick your customer line into you reseller space an not your personal space.
|
||||
@@ -1,63 +0,0 @@
|
||||
# Home view
|
||||
|
||||
This is the home view - what you see when you access your Xen Orchestra URL. It displays all running VMs. This can be configured to your needs (see the "Filters section" below).
|
||||
|
||||
If you don't have any servers connected, you'll see a panel telling you to add a server:
|
||||
|
||||

|
||||
|
||||
## Add a XenServer host
|
||||
|
||||
Just click on "Add server", enter the IP of a XenServer host (ideally the pool master if in a pool):
|
||||
|
||||

|
||||
|
||||
After clicking on connect, the server is displayed as connected:
|
||||
|
||||

|
||||
|
||||
Now go back to the Home view (or click on the "Xen Orchestra" title on the top left of the screen), you'll see the default home view of VM objects.
|
||||
|
||||
## VMs
|
||||
|
||||
By default, this view groups all **running VMs** on your connected server:
|
||||
|
||||

|
||||
|
||||
Let's take a quick tour:
|
||||
|
||||
- the global menu is on the left, you can collapse it by clicking on the icon 
|
||||
- the home view has a header with a type selector (VMs, hosts or pools), a filter zone and a button to create new VMs
|
||||
- the VM list also has a header (number of filtered VMs and total VMs) and assisted filters (by pool, host and tags) and a sort menu (by name, memory etc.). You can also expand all VMs details here with the icon 
|
||||
|
||||
> Pro Tip: you can edit a VM name, description and even current host by long clicking on the field
|
||||
|
||||
### Bulk actions
|
||||
|
||||
You can select multiple objects (eg VMs) at once to perform a bulk action. The master checkbox will select all, or you can select anything yourself.
|
||||
|
||||
After selecting one or more object, an action bar is displayed:
|
||||
|
||||

|
||||
|
||||
This will execute the action for all selected objects!
|
||||
|
||||
## Hosts
|
||||
|
||||
All host objects are displayed:
|
||||
|
||||

|
||||
|
||||
You have power status, name, description, number of CPU cores, total memory, management IP and pool name displayed. You can also edit these by long clicking.
|
||||
|
||||
> Pro Tip: If hosts have missing patches, you'll see a red dot with the total patches missing. Click on it to go the patch section of the host. See this blog post on [patches for XenServer](https://xen-orchestra.com/blog/hotfix-xs70e004-for-xenserver-7-0/) for more details.
|
||||
|
||||
## Pools
|
||||
|
||||
All your pools are displayed here:
|
||||
|
||||

|
||||
|
||||
You can also see missing patches in red.
|
||||
|
||||
> Did you know? Even a single XenServer host is inside a pool!
|
||||
@@ -62,9 +62,9 @@ In the "Settings" then "Plugins" view, expand the SAML plugin configuration. The
|
||||
|
||||
Save the configuration and then activate the plugin (button on top).
|
||||
|
||||
> Important: When registering your instance to your identity provider,
|
||||
> you must configure its callback URL to
|
||||
> `http://xo.example.net/signin/saml/callback`!
|
||||
:::warning
|
||||
When registering your instance to your identity provider, you must configure its callback URL to `http://xo.example.net/signin/saml/callback`!
|
||||
:::
|
||||
|
||||
### GitHub
|
||||
|
||||
@@ -132,7 +132,9 @@ ACLs are the permissions for your users or groups. The ACLs view can be accessed
|
||||
|
||||

|
||||
|
||||
> Pro tip: you can click to add multiple objects at the same time!
|
||||
:::tip
|
||||
You can click to add multiple objects at the same time!
|
||||
:::
|
||||
|
||||
Your ACL is now available in the right list:
|
||||
|
||||
@@ -204,7 +206,9 @@ To create a new set of resources to delegate, go to the "Self Service" section i
|
||||
|
||||
#### Create a set
|
||||
|
||||
> Only an admin can create a set of resources
|
||||
:::tip
|
||||
Only an admin can create a set of resources
|
||||
:::
|
||||
|
||||
To allow people to create VMs as they want, we need to give them a _part_ of your XenServer resources (disk space, CPUs, RAM). You can call this "general quotas" if you like. But you first need to decide which resources will be used.
|
||||
|
||||
@@ -220,7 +224,9 @@ In this example below, we'll create a set called **"sandbox"** with:
|
||||
|
||||
As you can see, only compatible hosts are shown and can be used for this resource set (hosts in another pool aren't shown). This way, you can be sure to have resources free for tasks other than self-service.
|
||||
|
||||
> Don't forget to add an ISO SR to allow your users to install VMs with CD if necessary
|
||||
:::tip
|
||||
Don't forget to add an ISO SR to allow your users to install VMs with CD if necessary
|
||||
:::
|
||||
|
||||
##### Quotas
|
||||
|
||||
@@ -230,7 +236,9 @@ Then, you can define quotas on this set:
|
||||
- max RAM
|
||||
- max disk usage
|
||||
|
||||
> Note: Snapshotting a VM within a self-service will _not_ use the quota from the resource set. The same rule applies for backups and replication.
|
||||
:::tip
|
||||
Snapshotting a VM within a self-service will _not_ use the quota from the resource set. The same rule applies for backups and replication.
|
||||
:::
|
||||
|
||||
When you click on create, you can see the resource set and remove or edit it:
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# Visualizations
|
||||
|
||||
Visualizations can help you to understand your XenServer infrastructure, as well as correlate events and detect bottlenecks.
|
||||
|
||||
### Dashboard
|
||||
|
||||
The dashboard view gathers information on all your connected pools/hosts.
|
||||
|
||||
[](https://xen-orchestra.com/blog/xen-orchestra-4-4/#dashboard).
|
||||
|
||||
> You can also update all your hosts (install missing patches) from this page.
|
||||
|
||||
### Parallel Coordinates
|
||||
|
||||
A Parallel Coordinates visualization helps to detect proportions in a hierarchical environment. In a XenServer environment, it's especially useful if you want to see useful information from a large amount of data.
|
||||
|
||||
[](https://xen-orchestra.com/blog/xen-orchestra-4-4/#sunburstvisualizationforvdiandramusage).
|
||||
@@ -1,85 +0,0 @@
|
||||
# VM creation
|
||||
|
||||
## Create a new VM
|
||||
|
||||
A new VM can be created via the "New" button in the main menu (bottom):
|
||||
|
||||

|
||||
|
||||
Or in the home view:
|
||||
|
||||

|
||||
|
||||
## Wizard
|
||||
|
||||
### Select your Pool
|
||||
|
||||
Because Xen Orchestra can be connected to multiple pools, you must select which one you want to create your VMs on:
|
||||
|
||||

|
||||
|
||||
On which **host** the VM will actually run on will depend of various settings (local SR or not, RAM available etc.)
|
||||
|
||||
### Infos category
|
||||
|
||||
#### Select your template
|
||||
|
||||
The next step is to select a template:
|
||||
|
||||

|
||||
|
||||
> What is a XenServer template? It can be 2 things: first an "empty" template, meaning it contains only the configuration for your future VM, such as example settings (minimum disk size, RAM and CPU, BIOS settings if HVM etc.) Or it could be a previous VM you converted into a template: in this case, creating a VM will clone the existing disks.
|
||||
|
||||
#### Name and description
|
||||
|
||||
These values can be changed anytime after your VM is created.
|
||||
|
||||
#### Multiple VMs
|
||||
|
||||
You can create multiple VMs at once by toggling the _Multiple VMs_ option. The `{name}` pattern is the "Name" field of the VM. By default, it will start with number 1 and increment up. You can change this via the "First index" field.
|
||||
|
||||
Click on the refresh icon to see the change:
|
||||
|
||||

|
||||
|
||||
### Performance
|
||||
|
||||
This is where you can configure VM performance options: number of vCPUs, RAM, CPU weight and cap.
|
||||
|
||||
#### CPU weight and cap
|
||||
|
||||
The default CPU weight is `256` which means it will be scheduled by Xen like any other VMs on the host it runs from. If you raise it, eg with `512`, CPUs on this VM will be scheduled with twice the priority as others. If you decrease it, with `64` for example, it will be scheduled with 4 times less priority.
|
||||
|
||||
What about cap? It's the maximum amount of CPUs a VM can consume, using a 100 base (1 vCPU: 100). Default is 0 and means no upper cap.
|
||||
|
||||
> Should I mess with these settings? In general: nope. Change this only if you are sure of what are you doing. More can be found here: https://wiki.xen.org/wiki/Credit_Scheduler
|
||||
|
||||
### Install settings
|
||||
|
||||
Depending of your template type (with existing disks or not, PV vs HVM) this panel can be changed.
|
||||
|
||||
#### HVM templates without existing disks
|
||||
|
||||
You can choose to boot from an ISO or using PXE:
|
||||
|
||||

|
||||
|
||||
#### PV templates
|
||||
|
||||
These templates will use PV configuration in order to boot: either from the right ISO or network URL. PV Args can be used to modify kernel parameters, but it's a very advanced setting you shouldn't play with.
|
||||
|
||||
#### Template with existing disks
|
||||
|
||||
Because there is already disks installed, you shouldn't have "Install settings" _per se_. But you can use our `config drive` setup if your template already has CloudInit installed!
|
||||
|
||||
Please refer to the [XenServer CloudInit section](cloudinit.md) for more.
|
||||
|
||||
### Interfaces
|
||||
|
||||
This is the network section of the VM configuration: in general, MAC field is kept empty (autogenerated from XenServer). We also select the management network by default, but you can change it to reflect your own network configuration.
|
||||
|
||||
### Disks
|
||||
|
||||
This section is for configuring new or existing disks (according to your selected template).
|
||||
|
||||
> Protip: avoid using large disks for your VMs. Want to store a lot of files? Use a network share for that (NFS, SMB) and keep using VMs with small system disks. It's far easier to maintain, migrate, backup and restore!
|
||||
@@ -1,35 +0,0 @@
|
||||
# VM import and export
|
||||
|
||||
Xen Orchestra can import and export VM's in XVA format (XenServer format) or import OVA files (OVF1 format).
|
||||
|
||||
> We support OVA import from VirtualBox. Feel free to report issues with OVA from other virtualization platforms.
|
||||
|
||||
## Import
|
||||
|
||||
### XVA files
|
||||
|
||||
To import an XVA file, just go to the New/Import menu:
|
||||
|
||||

|
||||
|
||||
Select the target pool and SR where the VM will be imported. Then, drag and drop your file and click on the import button.
|
||||
|
||||
### OVA files
|
||||
|
||||
OVA files contains extra info that you need to check before importing, like name, etc.
|
||||
|
||||

|
||||
|
||||
When you are OK with these settings, just click on the "Import" button.
|
||||
|
||||
## Export
|
||||
|
||||
> Exported VMs are in XVA format
|
||||
|
||||
Just access the page for the VM that you want to export, and click on the "Export" button in the toolbar. You'll instantly download a compressed XVA file.
|
||||
|
||||
It works even if the VM is running, because we'll automatically export a snapshot of this VM.
|
||||
|
||||
### Snapshot export
|
||||
|
||||
In the VM "Snapshots" tab, you can also export a snapshot like you export a VM.
|
||||
@@ -1,78 +0,0 @@
|
||||
# VM management
|
||||
|
||||
## Live Editing
|
||||
|
||||
Any object with a dotted underline can be edited with a mouse click: VM title, description, CPU and memory.
|
||||
|
||||

|
||||
|
||||
In the advanced tab, you have extra options:
|
||||
|
||||

|
||||
|
||||
### XenServer limitations
|
||||
|
||||
- Each VM has a maximum vCPU number. This value can't be changed while the VM is running. You can reduce the number of vCPUs, but you can't assign more than the set max. In XO, while your VM is halted, set the max vCPUs you would need, then boot it. Now you can reduce it and then expand it later to this maximum.
|
||||
- The same limitation applies to static RAM.
|
||||
|
||||
You can learn more about XenServer [resource management on the Citrix Website](https://docs.citrix.com/de-de/xencenter/6-5/xs-xc-vms-configuring/xs-xc-vms-memory/xs-xc-dmc-about.html).
|
||||
|
||||
## VDI live migration
|
||||
|
||||
Thanks to Xen Storage Motion, it's easy to move a VM disk from one storage location to another, while the VM is running! This feature can help you migrate from your local storage to a SAN, or just upgrade your SAN without any downtime.
|
||||
|
||||
To do so: Access the Xen Orchestra page for your running VM, then enter the Disk tab. Long click on the current SR of the disk, and a drop down menu will be displayed with all compatible destinations. Just select one, that's all: the migration will start live!
|
||||
|
||||

|
||||
|
||||
### Offline VDI migration
|
||||
|
||||
Even though it's not currently supported in XenServer, we can do it in Xen Orchestra. It's exactly the same process as a running VM.
|
||||
|
||||
## VM recovery
|
||||
|
||||
In the advanced tab, use the "Recovery Start" button:
|
||||
|
||||

|
||||
|
||||
This button will allow you to boot directly from the CD drive, ignoring your current disks. Note that it works for all virtualization modes: HVM or PV.
|
||||
|
||||
## Auto power VM
|
||||
|
||||
Activating "Auto Power on" for a VM will also configure the pool accordingly. If your host is rebooted, the VM will be started right after the host is up.
|
||||
|
||||
## VM high availability (HA)
|
||||
|
||||
If you pool supports HA (must have shared storage), you can activate "HA". Read our blog post for more details on [VM high availability with XenServer](https://xen-orchestra.com/blog/xenserver-and-vm-high-availability/).
|
||||
|
||||
### Docker management
|
||||
|
||||
> Please [read the dedicated section](docker_support.md) to install a Docker Ready VM.
|
||||
|
||||
### VM CPU priority
|
||||
|
||||
You can change the CPU Weight in the VM advanced view. The values are:
|
||||
|
||||
- Default
|
||||
- Quarter (64)
|
||||
- Half (128)
|
||||
- Normal (256)
|
||||
- Double (512)
|
||||
|
||||
By default, each VM has a weight of 256.
|
||||
|
||||
If one VM has for example, "Double", it will have double the priority on the Xen scheduler. [Read more on the official Citrix XenServer documentation](http://support.citrix.com/article/CTX117960).
|
||||
|
||||
### VM Copy
|
||||
|
||||
VM copy allows you to make an export and an import via streaming. You can target any SR in your whole XenServer infrastructure (even across different pools!)
|
||||
|
||||
### Snapshot management
|
||||
|
||||
You can create a snapshot with one click. It will be named automatically. After the snapshot is created, you can either:
|
||||
|
||||
- export it on your computer
|
||||
- revert your VM to this snapshot (it will restart the VM)
|
||||
- delete this snapshot
|
||||
|
||||
> By default, XOA will try to make a snapshot with quiesce. If the VM does not support it, it will fallback to the default snapshot system.
|
||||
@@ -1,76 +0,0 @@
|
||||
# Web hooks
|
||||
|
||||
⚠ This feature is experimental!
|
||||
|
||||
## Configuration
|
||||
|
||||
The plugin "web-hooks" needs to be installed and loaded for this feature to work.
|
||||
|
||||
You can trigger an HTTP POST request to a URL when a Xen Orchestra API method is called.
|
||||
|
||||
- Go to Settings > Plugins > Web hooks
|
||||
- Add new hooks
|
||||
- For each hook, configure:
|
||||
- Method: the XO API method that will trigger the HTTP request when called
|
||||
- Type:
|
||||
- pre: the request will be sent when the method is called
|
||||
- post: the request will be sent after the method action is completed
|
||||
- pre/post: both
|
||||
- URL: the full URL which the requests will be sent to
|
||||
- Save the plugin configuration
|
||||
|
||||
From now on, a request will be sent to the corresponding URLs when a configured method is called by an XO client.
|
||||
|
||||
## Request content
|
||||
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Content-Type: application/json
|
||||
```
|
||||
|
||||
The request's body is a JSON string representing an object with the following properties:
|
||||
|
||||
- `type`: `"pre"` or `"post"`
|
||||
- `callId`: unique ID for this call to help match a pre-call and a post-call
|
||||
- `userId`: unique internal ID of the user who performed the call
|
||||
- `userName`: login/e-mail address of the user who performed the call
|
||||
- `method`: name of the method that was called (e.g. `"vm.start"`)
|
||||
- `params`: call parameters (object)
|
||||
- `timestamp`: epoch timestamp of the beginning ("pre") or end ("post") of the call in ms
|
||||
- `duration`: duration of the call in ms ("post" hooks only)
|
||||
- `result`: call result on success ("post" hooks only)
|
||||
- `error`: call result on error ("post" hooks only)
|
||||
|
||||
## Request handling
|
||||
|
||||
_Quick Node.js example of how you may want to handle the requests_
|
||||
|
||||
```js
|
||||
const http = require('http')
|
||||
const { exec } = require('child_process')
|
||||
|
||||
http
|
||||
.createServer((req, res) => {
|
||||
let body = ''
|
||||
req.on('data', chunk => {
|
||||
body += chunk
|
||||
})
|
||||
req.on('end', () => handleHook(body))
|
||||
res.end()
|
||||
})
|
||||
.listen(3000)
|
||||
|
||||
const handleHook = data => {
|
||||
const { method, params, type, result, error, timestamp } = JSON.parse(data)
|
||||
|
||||
// Log it
|
||||
console.log(
|
||||
`${new Date(
|
||||
timestamp
|
||||
).toISOString()} [${method}|${type}] ${params} → ${result || error}`
|
||||
)
|
||||
|
||||
// Run scripts
|
||||
exec(`./hook-scripts/${method}-${type}.sh`)
|
||||
}
|
||||
```
|
||||
107
docs/xo-cli.md
107
docs/xo-cli.md
@@ -1,107 +0,0 @@
|
||||
# xo-cli
|
||||
|
||||
This is another client of `xo-server` - this time in command line form.
|
||||
|
||||
Thanks to introspection, `xo-cli` will detect all the available features exposed in the `xo-server` API.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
> xo-cli --help
|
||||
Usage:
|
||||
|
||||
xo-cli --register <XO-Server URL> <username> [<password>]
|
||||
Registers the XO instance to use.
|
||||
|
||||
xo-cli --unregister
|
||||
Remove stored credentials.
|
||||
|
||||
xo-cli --list-commands [--json] [<pattern>]...
|
||||
Returns the list of available commands on the current XO instance.
|
||||
|
||||
The patterns can be used to filter on command names.
|
||||
|
||||
xo-cli --list-objects [--<property>]… [<property>=<value>]...
|
||||
Returns a list of XO objects.
|
||||
|
||||
--<property>
|
||||
Restricts displayed properties to those listed.
|
||||
|
||||
<property>=<value>
|
||||
Restricted displayed objects to those matching the patterns.
|
||||
|
||||
xo-cli <command> [<name>=<value>]...
|
||||
Executes a command on the current XO instance.
|
||||
|
||||
```
|
||||
|
||||
#### Register your XO instance
|
||||
|
||||
```
|
||||
> xo-cli --register http://xo.my-company.net admin@admin.net admin
|
||||
Successfully logged with admin@admin.net
|
||||
```
|
||||
|
||||
Note: only a token will be saved in the configuration file.
|
||||
|
||||
#### List available objects
|
||||
|
||||
Prints all objects:
|
||||
|
||||
```
|
||||
> xo-cli --list-objects
|
||||
```
|
||||
|
||||
It is possible to filter on object properties, for instance to print
|
||||
all VM templates:
|
||||
|
||||
```
|
||||
> xo-cli --list-objects type=VM-template
|
||||
```
|
||||
|
||||
#### List available commands
|
||||
|
||||
```
|
||||
> xo-cli --list-commands
|
||||
```
|
||||
|
||||
Commands can be filtered using patterns:
|
||||
|
||||
```
|
||||
> xo-cli --list-commands '{user,group}.*'
|
||||
```
|
||||
|
||||
#### Execute a command
|
||||
|
||||
The same syntax is used for all commands: `xo-cli <command> <param name>=<value>...`
|
||||
|
||||
E.g., adding a new server:
|
||||
|
||||
```
|
||||
> xo-cli server.add host=my.server.net username=root password=secret-password
|
||||
42
|
||||
```
|
||||
|
||||
The return value is the identifier of this new server in XO.
|
||||
|
||||
Parameters (except `true` and `false` which are correctly parsed as
|
||||
booleans) are assumed to be strings. For other types, you may use JSON
|
||||
encoding by prefixing with `json:`:
|
||||
|
||||
```
|
||||
> xo-cli foo.bar baz='json:[1, 2, 3]'
|
||||
```
|
||||
|
||||
##### VM export
|
||||
|
||||
```
|
||||
> xo-cli vm.export vm=a01667e0-8e29-49fc-a550-17be4226783c @=vm.xva
|
||||
```
|
||||
|
||||
##### VM import
|
||||
|
||||
```
|
||||
> xo-cli vm.import sr=60a6939e-8b0a-4352-9954-5bde44bcdf7d @=vm.xva
|
||||
```
|
||||
|
||||
> Note: `xo-cli` only supports the import of XVA files. It will not import OVA files. To import OVA images, you must use the XOA web UI.
|
||||
@@ -1,85 +0,0 @@
|
||||
# xo-server
|
||||
|
||||
XO-Server is the core of Xen Orchestra. Its central role opens a lot of possibilities versus other solutions - let's see why.
|
||||
|
||||
### Daemon mode
|
||||
|
||||
As a daemon, XO-Server is always up. Because of this, it can listen and record every event occurring on your entire Xen infrastructure. Connections are always open and it can cache information before serving it to another client (CLI, Web or anything else).
|
||||
|
||||
### Central point
|
||||
|
||||
Contrary to XenCenter, each Xen Orchestra's client is connected to one XO-Server, and not all the Xen servers. With a traditional architecture:
|
||||
|
||||

|
||||
|
||||
You can see how we avoid a lot of resource and bandwidth waste with a central point:
|
||||
|
||||

|
||||
|
||||
### Events
|
||||
|
||||
Legacy interfaces use the "pull" model, requesting data every "x" seconds:
|
||||
|
||||

|
||||
|
||||
It's **not scalable** and **slow**.
|
||||
|
||||
Previously with XO < 3.4, we used events in the following way:
|
||||
|
||||

|
||||
|
||||
But the interface was still lagging behind the server. With XO 3.4 and beyond, we now have a full event system, allowing instant display of what's happening on your infrastructure:
|
||||
|
||||

|
||||
|
||||
### A proxy for your hosts
|
||||
|
||||
XO-Server will act as a proxy for all your clients. This opens a lot of possibilities!
|
||||
|
||||
#### Console proxy
|
||||
|
||||
A good example is the console: you can now expose your consoles even if your clients are outside the network!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### VM streaming
|
||||
|
||||
Another possibility is to stream a VM from one host to another.
|
||||
|
||||
To do that previously, you needed to export your VM somewhere, then re-import it:
|
||||
|
||||

|
||||
|
||||
Thanks to our architecture, it's now far easier:
|
||||
|
||||

|
||||
|
||||
#### Patching on the fly
|
||||
|
||||
To install a patch manually, it requires a lot of steps: find, download, extract and apply the patch, sequentially.
|
||||
|
||||
"xo-server" can do all these steps at once:
|
||||
|
||||
1. automatically download the patch from Citrix servers
|
||||
2. unzip it and upload it on the fly to your host
|
||||
3. apply it as soon it's done
|
||||
|
||||
### Pluggable
|
||||
|
||||
It's really easy to connect other modules to XO-server, and extend or adapt the solution to your needs (see XO-web and XO-cli for real examples).
|
||||
|
||||
#### ACLs
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### API
|
||||
|
||||
An API is available to communicate directly with XO-Server. This part will be explained later.
|
||||
|
||||
### NodeJS under the hood
|
||||
|
||||
[NodeJS](https://en.wikipedia.org/wiki/Nodejs) is a software platform for scalable server-side and networking applications. It's famous for its efficiency, scalability and its asynchronous capabilities. Exactly what we need! Thus, XO-server is written in JavaScript.
|
||||
@@ -1,13 +0,0 @@
|
||||
# xo-web
|
||||
|
||||
This is probably the first part of Xen Orchestra you'll see. The Web interface allows you to interact with your virtual infrastructure. As a module of XO-Web it facilitates everyday Xen administrator work, but also provides a solution to delegate parts of your infrastructure to other people.
|
||||
|
||||

|
||||
|
||||
[Read the features section](https://vates.gitbooks.io/xen-orchestra/content/features.html) to discover what you can do in XO-web.
|
||||
|
||||
### ReactJS
|
||||
|
||||
We stay consistent from the back-end to the front-end with one main language: [ReactJS](https://reactjs.org/)
|
||||
|
||||

|
||||
148
docs/xosan.md
148
docs/xosan.md
@@ -87,8 +87,148 @@ On "top" of there 2 types, you can also decide to spread all operations to multi
|
||||
|
||||
Here is those 2 types:
|
||||
|
||||
- [Replicated](xosan_replicated.md)
|
||||
- [Disperse](xosan_disperse.md)
|
||||
- Replicated
|
||||
- Disperse
|
||||
|
||||
### Disperse type
|
||||
|
||||
Data are **chunked and dispersed** on multiple nodes. There is a kind of "parity" data allowing to lost one or mode nodes ("like" RAID5 or RAID6).
|
||||
|
||||
Pros:
|
||||
|
||||
- good capacity (perfect for **HDD storage**)
|
||||
- simple to setup
|
||||
- simple to maintain
|
||||
- various level of protection
|
||||
|
||||
Cons:
|
||||
|
||||
- not all configrations possible (3, 5, 6 nodes and more)
|
||||
- limited performances on SSDs (replication is better in this case)
|
||||
|
||||
![pictore disperse principle]()
|
||||
|
||||
#### Disperse 3
|
||||
|
||||
This is similar to **RAID5**: there is an [algorithm](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) that will generate a kind of parity, being able to continue to work even if 1 node is down. If you reintroduce the node, it will be "healed" automatically.
|
||||
|
||||

|
||||
|
||||
If you lose one node, your data are still here. This mode will give you **66% of your total disk space**.
|
||||
|
||||
#### Disperse 5
|
||||
|
||||
Same than 3, like **RAID5**, you can lose 1 node without service interruption.
|
||||
|
||||

|
||||
|
||||
In this case, you'll be able to use up to **80%** of your total storage capacity!
|
||||
|
||||
#### Disperse 6
|
||||
|
||||
It's very similar to **RAID6**. You can lose up to 2 nodes, it will continue to work in read and write.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### Growing a disperse XOSAN
|
||||
|
||||
You can grow a replicated XOSAN by adding extra disperse volumes, in other words a new disperse will be like in RAID 0 with the old one. It's a **distributed-disperse** type. Some examples:
|
||||
|
||||
- To grow a disperse 3, you need 3 new nodes. You'll add the total capacity of each disperse to make a distributed-disperse on 2x3 dispersed nodes.
|
||||
- To grow a disperse 6, you need 6 new nodes.
|
||||
|
||||

|
||||
|
||||
### Replicated type
|
||||
|
||||
Data are replicated from a node to another.
|
||||
|
||||
Pros:
|
||||
|
||||
- fast (**must be used for SSDs**)
|
||||
- relatively flexible
|
||||
|
||||
Cons:
|
||||
|
||||
- lower capacity (so higher cost, better for SSDs)
|
||||
- a bit more complex to maintain in distributed-replicated (see "RAID 10 like")
|
||||
|
||||
#### 2-way replication
|
||||
|
||||
This type is pretty simple to understand: everything written on one node is mirrored to another one. It's very similar to **RAID 1**.
|
||||
|
||||

|
||||
|
||||
If you lose one node, your data are still here. This mode will give you **50% of your total disk space** (e.g with 2x nodes of 100GiB, you'll have only 100GiB of space).
|
||||
|
||||
#### 3-way replication
|
||||
|
||||
Same than 2-way, but data is replicated on 3 nodes in total.
|
||||
|
||||

|
||||
|
||||
2 nodes can be destroyed without losing your data. This mode will give you **33% of your total disk space** (e.g with 3x nodes of 100GiB, you'll have only 100GiB of space).
|
||||
|
||||
#### Building a "RAID 10" like
|
||||
|
||||
If you have more than 2 or 3 nodes, it could be interesting to **distribute** data on multiple replicated nodes. This is called "**distributed-replicated**" type. Here is an example with 6 nodes:
|
||||
|
||||

|
||||
|
||||
It's very similar to **RAID 10**. In this example, you'll have 300GiB of data usable.
|
||||
|
||||
> This is the mode you'll use in a more than 3 nodes setup.
|
||||
|
||||
#### Examples
|
||||
|
||||
Here is some examples depending of the number of XenServer hosts.
|
||||
|
||||
##### 2 hosts
|
||||
|
||||
This is a kind of special mode. On a 2 nodes setup, one node must know what's happening if it can't contact the other node. This is called a **split brain** scenario. To avoid data loss, it goes on read only. But there is a way to overcome this, with a special node, called **the arbiter**. It will only require an extra VM using only few disk space.
|
||||
|
||||
Thanks to this arbiter, you'll have 3 nodes running on 2 XenServer hosts:
|
||||
|
||||
- if the host with 1 node is down, the other host will continue to provide a working XOSAN
|
||||
- if the host with 2 nodes (1 normal and 1 arbiter) id down, the other node will go into read only mode, to avoid split brain scenario.
|
||||
|
||||
This way, in all cases, you are protected.
|
||||
|
||||
##### 3 hosts
|
||||
|
||||
The easiest way is to use 3-way replication. You can lose completely 2 hosts, it will continue to work on the survivor!
|
||||
|
||||
##### 4 hosts
|
||||
|
||||
The usual deal is to create a "group" of 2 replicated nodes (2x2). In a picture:
|
||||
|
||||

|
||||
|
||||
##### 5 hosts
|
||||
|
||||
There is no way to use the local disks of 5 nodes in a replicated type. So you'll use 4 hosts in XOSAN, and the 5th would be also able to use the shared XOSAN SR, without participating directly to it.
|
||||
|
||||
##### 6 hosts
|
||||
|
||||
You have 2 choices:
|
||||
|
||||
1. 2-way replication on 3 replicated nodes (2x3)
|
||||
2. 3-way replication on 2 triplicated nodes (3x2)
|
||||
|
||||
There is more fault tolerance on mode 2, but less space usable. It's up to you!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### Growing a replicated XOSAN
|
||||
|
||||
You can grow a replicated XOSAN by adding pairs, in other words "RAID 1"-like mirrors to the existing setup, like you would adds mirrored disks in "RAID 10" setup. Examples:
|
||||
|
||||
- on a 2 hosts setup, going for 4 hosts by adding 2 mirrored nodes
|
||||
- on a 3 hosts setup using 3-way replication, by adding 3 mirrored nodes
|
||||
|
||||
### Which mode to choose
|
||||
|
||||
@@ -196,4 +336,6 @@ Access the XOSAN menu and click on the "new" button. By default, your XOSAN will
|
||||
|
||||

|
||||
|
||||
> _You will always have the opportunity to upgrade an existing XOSAN cluster which is in trial version to a standard XOSAN license._
|
||||
:::tip
|
||||
You will always have the opportunity to upgrade an existing XOSAN cluster which is in trial version to a standard XOSAN license.
|
||||
:::
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
# XOSAN creation guide
|
||||
|
||||
## Prerequisites
|
||||
|
||||
XOSAN will need a pool with:
|
||||
|
||||
- XenServer 7 or higher
|
||||
- Local LVM SR with at lease 15GiB of free space on **each** host
|
||||
- 2 GiB of free RAM on each host for the XOSAN VM
|
||||
- A working connection with the updater (same way as the XO trial)
|
||||
- Our XOSAN pack installed on each hosts (it's automatically deployed during the first XOSAN install)
|
||||
|
||||
> The pack will install user-space packages and add a new SR type: "xosan". Their will be no other modification. The tool stack has to be restarted to be able to deal with XOSAN (no VM or service interruption). It's also fully automated in the XOSAN install process.
|
||||
|
||||
### Optional
|
||||
|
||||
- An extra/dedicated physical network for storage to deliver high performances
|
||||
- 10G networks will deliver higher throughput
|
||||
|
||||
## Creation
|
||||
|
||||
After the completion of all the requirements, you can install XOSAN itself.
|
||||
|
||||
1. Go in your XOSAN panel in Xen Orchestra.
|
||||
|
||||

|
||||
|
||||
2. Click on `new` and select the pool on which you want to create a shared cluster. Click on `install it now` to install the XOSAN package on every hosts in the pool.
|
||||
|
||||

|
||||
|
||||
3. Select the PIF on which you want to create the XOSAN network.
|
||||
|
||||
4. Select all the SR you want to use in your shared cluster.
|
||||
|
||||
> Note: you can only select on SR on each host. If you select SR with different size, the size of the cluster will be limited by the size of the smallest SR selected. We recommend you to use the same type of SR (SSD/HDD) and with the same size to avoid space loss
|
||||
|
||||

|
||||
|
||||
5. Select the mode you want to use for your cluster: disperse or replicate.
|
||||
|
||||
> We do not recommend the disperse mode for now. See [XOSAN types](https://xen-orchestra.com/docs/xosan_types.html) for additional information about modes.
|
||||
|
||||

|
||||
|
||||
### Advanced options
|
||||
|
||||
With the advanced option, you can:
|
||||
|
||||
- use a VLAN
|
||||
|
||||
> If you want to use a VLAN, don't forget to configure your switch as well!
|
||||
|
||||
- use a custom IP network
|
||||
|
||||
- change the total size you want for your shared storage
|
||||
|
||||
- increase the memory allocated to XOSAN
|
||||
> 2GiB is the minimum to allocate to XOSAN. You will get better result with 4GiB and if you have a lot of memory available, 8GiB is the best.
|
||||
|
||||

|
||||
|
||||
Once you are ready, you can click on `Create`. XOSAN will automatically deploy itself and create the virtual shared storage you have selected.
|
||||
|
||||
> The process can take a few minutes to complete.
|
||||
|
||||

|
||||
@@ -1,50 +0,0 @@
|
||||
## Disperse type
|
||||
|
||||
Data are **chunked and dispersed** on multiple nodes. There is a kind of "parity" data allowing to lost one or mode nodes ("like" RAID5 or RAID6).
|
||||
|
||||
Pros:
|
||||
|
||||
- good capacity (perfect for **HDD storage**)
|
||||
- simple to setup
|
||||
- simple to maintain
|
||||
- various level of protection
|
||||
|
||||
Cons:
|
||||
|
||||
- not all configrations possible (3, 5, 6 nodes and more)
|
||||
- limited performances on SSDs (replication is better in this case)
|
||||
|
||||
![pictore disperse principle]()
|
||||
|
||||
### Disperse 3
|
||||
|
||||
This is similar to **RAID5**: there is an [algorithm](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) that will generate a kind of parity, being able to continue to work even if 1 node is down. If you reintroduce the node, it will be "healed" automatically.
|
||||
|
||||

|
||||
|
||||
If you lose one node, your data are still here. This mode will give you **66% of your total disk space**.
|
||||
|
||||
### Disperse 5
|
||||
|
||||
Same than 3, like **RAID5**, you can lose 1 node without service interruption.
|
||||
|
||||

|
||||
|
||||
In this case, you'll be able to use up to **80%** of your total storage capacity!
|
||||
|
||||
### Disperse 6
|
||||
|
||||
It's very similar to **RAID6**. You can lose up to 2 nodes, it will continue to work in read and write.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Growing a disperse XOSAN
|
||||
|
||||
You can grow a replicated XOSAN by adding extra disperse volumes, in other words a new disperse will be like in RAID 0 with the old one. It's a **distributed-disperse** type. Some examples:
|
||||
|
||||
- To grow a disperse 3, you need 3 new nodes. You'll add the total capacity of each disperse to make a distributed-disperse on 2x3 dispersed nodes.
|
||||
- To grow a disperse 6, you need 6 new nodes.
|
||||
|
||||

|
||||
@@ -1,88 +0,0 @@
|
||||
## Replicated type
|
||||
|
||||
Data are replicated from a node to another.
|
||||
|
||||
Pros:
|
||||
|
||||
- fast (**must be used for SSDs**)
|
||||
- relatively flexible
|
||||
|
||||
Cons:
|
||||
|
||||
- lower capacity (so higher cost, better for SSDs)
|
||||
- a bit more complex to maintain in distributed-replicated (see "RAID 10 like")
|
||||
|
||||
### 2-way replication
|
||||
|
||||
This type is pretty simple to understand: everything written on one node is mirrored to another one. It's very similar to **RAID 1**.
|
||||
|
||||

|
||||
|
||||
If you lose one node, your data are still here. This mode will give you **50% of your total disk space** (e.g with 2x nodes of 100GiB, you'll have only 100GiB of space).
|
||||
|
||||
### 3-way replication
|
||||
|
||||
Same than 2-way, but data is replicated on 3 nodes in total.
|
||||
|
||||

|
||||
|
||||
2 nodes can be destroyed without losing your data. This mode will give you **33% of your total disk space** (e.g with 3x nodes of 100GiB, you'll have only 100GiB of space).
|
||||
|
||||
### Building a "RAID 10" like
|
||||
|
||||
If you have more than 2 or 3 nodes, it could be interesting to **distribute** data on multiple replicated nodes. This is called "**distributed-replicated**" type. Here is an example with 6 nodes:
|
||||
|
||||

|
||||
|
||||
It's very similar to **RAID 10**. In this example, you'll have 300GiB of data usable.
|
||||
|
||||
> This is the mode you'll use in a more than 3 nodes setup.
|
||||
|
||||
### Examples
|
||||
|
||||
Here is some examples depending of the number of XenServer hosts.
|
||||
|
||||
#### 2 hosts
|
||||
|
||||
This is a kind of special mode. On a 2 nodes setup, one node must know what's happening if it can't contact the other node. This is called a **split brain** scenario. To avoid data loss, it goes on read only. But there is a way to overcome this, with a special node, called **the arbiter**. It will only require an extra VM using only few disk space.
|
||||
|
||||
Thanks to this arbiter, you'll have 3 nodes running on 2 XenServer hosts:
|
||||
|
||||
- if the host with 1 node is down, the other host will continue to provide a working XOSAN
|
||||
- if the host with 2 nodes (1 normal and 1 arbiter) id down, the other node will go into read only mode, to avoid split brain scenario.
|
||||
|
||||
This way, in all cases, you are protected.
|
||||
|
||||
#### 3 hosts
|
||||
|
||||
The easiest way is to use 3-way replication. You can lose completely 2 hosts, it will continue to work on the survivor!
|
||||
|
||||
#### 4 hosts
|
||||
|
||||
The usual deal is to create a "group" of 2 replicated nodes (2x2). In a picture:
|
||||
|
||||

|
||||
|
||||
#### 5 hosts
|
||||
|
||||
There is no way to use the local disks of 5 nodes in a replicated type. So you'll use 4 hosts in XOSAN, and the 5th would be also able to use the shared XOSAN SR, without participating directly to it.
|
||||
|
||||
#### 6 hosts
|
||||
|
||||
You have 2 choices:
|
||||
|
||||
1. 2-way replication on 3 replicated nodes (2x3)
|
||||
2. 3-way replication on 2 triplicated nodes (3x2)
|
||||
|
||||
There is more fault tolerance on mode 2, but less space usable. It's up to you!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Growing a replicated XOSAN
|
||||
|
||||
You can grow a replicated XOSAN by adding pairs, in other words "RAID 1"-like mirrors to the existing setup, like you would adds mirrored disks in "RAID 10" setup. Examples:
|
||||
|
||||
- on a 2 hosts setup, going for 4 hosts by adding 2 mirrored nodes
|
||||
- on a 3 hosts setup using 3-way replication, by adding 3 mirrored nodes
|
||||
@@ -1,41 +0,0 @@
|
||||
# XOSAN Requirements
|
||||
|
||||
In order to work, XOSAN need a minimal set of requirements.
|
||||
|
||||
## Storage
|
||||
|
||||
XOSAN can be deployed on an existing **Local LVM storage**, that XenServer configure by default during its installation. You need 10GiB for XOSAN VM (one on each host) and the rest for XOSAN data, eg all the space left.
|
||||
|
||||
However, if you have unused disks on your host, you can also create yourself a local LVM storage while using Xen Orchestra:
|
||||
|
||||
- Go on the "New" menu entry, then select "Storage"
|
||||
- Select the host having the disk you want to use for XOSAN
|
||||
- Select "Local LVM" and enter the path of this disk (e.g: `/dev/sdf`)
|
||||
|
||||
> You can discover disks names by issuing `fdisk -l` command on your XenServer host.
|
||||
|
||||
> **Recommended hardware:** we don't have specific hardware recommendation regarding hard disks. It could be directly a disk or even a disk exposed via a hardware RAID. Note that RAID mode will influence global speed of XOSAN.
|
||||
|
||||
## Network
|
||||
|
||||
XOSAN will use the network card you choose at creation. For better performances, a dedicated storage network should be used.
|
||||
|
||||
> **Recommended hardware:** 1 Gbit/s network card is the minmum to have decent performances. However, a **10 Gbits/s** network is preferable, especially for a setup using SSDs or more than 2 nodes.
|
||||
|
||||
## RAM
|
||||
|
||||
Each XOSAN VM will use 2GiB of RAM. It could be increased (sweet spot seems to be around 4GiB), but it's also workload and infrastructure related. If you don't have a lot of RAM, keep it to 2GiB. If RAM is not an issue, 4GiB is better.
|
||||
|
||||
## CPU
|
||||
|
||||
Each XOSAN VM deployed will use 2x vCPUs. This setting should be enough for all cases.
|
||||
|
||||
# Examples
|
||||
|
||||
For a 6 nodes setup, XOSAN will use in total:
|
||||
|
||||
- 12 vCPUs (usage is in general pretty low)
|
||||
- 12 GiB RAM
|
||||
- All Local LVM disk space
|
||||
|
||||

|
||||
@@ -1,25 +0,0 @@
|
||||
XOSAN is a 100% software defined solution for XenServer hyperconvergence. You can unlock a free 50GiB cluster to test the solution in your infrastructure and discover all the benefits you can get by using XOSAN.
|
||||
|
||||
## Step 1
|
||||
|
||||
You will need to be registered on our website in order to use Xen Orchestra. If you are not yet registered, [here is the way](https://xen-orchestra.com/#!/signup)
|
||||
|
||||
SSH in your XenServer and use the command line `curl -sS https://xoa.io/deploy | bash` - it will deploy Xen Orchestra Appliance on your XenServer infrastructure which is required to use XOSAN.
|
||||
|
||||
> Note: You can also download the XVA file and follow [these instructions](https://xen-orchestra.com/docs/xoa.html#the-alternative).
|
||||
|
||||
## Step 2
|
||||
|
||||
Register your XOA appliance
|
||||
|
||||
> _If you are not familiar with Xen Orchestra, note that you can also activate a 15 days Premium trial for XOA. More informations [here](https://xen-orchestra.com/#!/trial)_
|
||||
|
||||

|
||||
|
||||
## Step 3
|
||||
|
||||
Access the XOSAN menu and click on the "new" button. By default, your XOSAN will be a trial license, limited to 50GiB of space.
|
||||
|
||||

|
||||
|
||||
> _You will always have the opportunity to upgrade an existing XOSAN cluster which is in trial version to a standard XOSAN license._
|
||||
@@ -1,28 +0,0 @@
|
||||
# XOSAN types
|
||||
|
||||
There is 2 modes for creating an XOSAN storage. They are different and the choice is done forever. You can't **switch from a mode to another** when XOSAN is created, except by removing and re-creating it.
|
||||
|
||||
That's why it's **very important to understand pros and cons** of each type.
|
||||
|
||||
> On "top" of there 2 types, you can also decide to spread all operations to multiple number of volumes. This is called **distributed** mode. It's very similar to _RAID 0_, which can be placed on top of a _RAID 1_ for example. We'll talk about it in the end of this guide.
|
||||
|
||||
Here is those 2 types:
|
||||
|
||||
- [Replicated](xosan_replicated.md)
|
||||
- [Disperse](xosan_disperse.md)
|
||||
|
||||
## Which mode to choose
|
||||
|
||||
In the vast majority of cases, **replicated is better**, because:
|
||||
|
||||
- it's almost ALWAYS faster
|
||||
- it's easier to manage
|
||||
- it's easier to grow
|
||||
|
||||
The only downside is that replicated will "waste" more space.
|
||||
|
||||
Using disperse makes sense only if:
|
||||
|
||||
- you have big HDDs and you want use the space at most
|
||||
- you don't use database (or don't care about performances)
|
||||
- you store big files and you don't need ultra fast data access
|
||||
Reference in New Issue
Block a user