OIOFS Node Installation
Tip
oio-fs is part of our paid plans.
Get in touch with the team or visit the page describing our plans.
Requirements
Licence
- A login and a password provided by OpenIO Support
Hardware
- Storage drive: A storage device for cache
Operating system
- Centos 7
- Ubuntu 16.04 (Server)
- Ubuntu 18.04 (Server)
System
- Root privileges are required (using sudo).
- SELinux or AppArmor are disabled (managed at deployment).
- The system must be up to date.
# RedHat sudo yum update -y sudo reboot
# Ubuntu sudo apt update -y sudo apt upgrade -y sudo reboot
Network
- This node connected to the same OIOSDS’s lan.
SDS
- The conscience IP address.
- The namespace used.
- The redis sentinels addresses and the redis cluster name.
Setup
You only need to perform this setup on one of the nodes in the cluster (or your laptop).
- Install Ansible (official guide).
- Install
git
.
# RedHat sudo yum install git -y
# Ubuntu sudo apt install git -y
- Clone the OpenIO ansible playbook deployment repository.
git clone https://github.com/open-io/ansible-playbook-openio-deployment.git --branch 18.10 openio && cd openio/products/oiofs
Architecture
This playbook will deploy an oiofs mount connected to a SDS cluster as shown below:
+---------+ | | | +---------+ +---------+ | | | | | | | | +---------+ | | | | | | | | Provide file-oriented access | | | | | | | | | | | | | | | | <---------------------------------------------> | | | | | | | | | | | | | | | | on an object storage backend | | +---------+ | | | | | | | | | | +---------+ | +---------+ OpenIO SDS | | OpenIO FS (N-nodes) +---------+
Configuration
Inventory
Fill the inventory according to your environment:
Edit the
inventory.ini
file and adapt the IP addresses and SSH user (sample here: inventory).[oiofs] node_oiofs ansible_host=10.0.0.1 ansible_user=root # Change it with the IP of the server ...
You can check that everything is configured correctly using this command:
ansible all -i inventory.ini -bv -m ping
Credentials
You can set your credentials in the group_vars/oiofs.yml file.
---
# Login provided by OPENIO
openio_oiofs_customer_login: foo
# Password provided by OPENIO
openio_oiofs_customer_password: bar
...
SDS informations
You can set all your SDS information in the group_vars/oiofs.yml file.
By default, an ecd
and an oioproxy
are deployed on the target node and binded to the default IP address.
---
# Conscience SDS
openio_sds_conscience_address: 172.17.0.4
# Proxy SDS (deployed on oiofs nodes)
openio_sds_oioproxy_address: "{{ ansible_default_ipv4.address }}"
# Erasure Coding Daemon (deployed on oiofs nodes)
openio_sds_ecd_address: "{{ ansible_default_ipv4.address }}"
# Redis Cluster SDS
openio_sds_sentinels_name: "{{ openio_sds_namespace }}-master-1"
openio_sds_sentinels_addresses:
- 172.17.0.2:6012
- 172.17.0.3:6012
- 172.17.0.4:6012
...
Installation
Run these commands:
To download and install requirements:
./requirements_install.sh
To deploy:
ansible-playbook -i inventory.ini main.yml
Post-install Checks
The node is configured and the filesystem is mounted.
Run these commands on the node: gridinit_cmd status
and df -h
.
Sample output:
root@node1:/# gridinit_cmd status
KEY STATUS PID GROUP
OPENIO-ecd-0 UP 8383 OPENIO,ecd,0
OPENIO-oiofs-mnt_oiofs_MY_CONTAINER_MY_ACCOUNT UP 10503 OPENIO,oiofs,mnt_oiofs_MY_CONTAINER_MY_ACCOUNT
OPENIO-oioproxy-1 UP 9148 OPENIO,oioproxy,1
root@node1:/# df -h
Filesystem Size Used Avail Use% Mounted on
[...]
oiofs-fuse 16E 0 16E 0% /mnt/oiofs-MY_CONTAINER-MY_ACCOUNT
Customizing your deployment
Manage mounts
All mounts are defined in the group_vars/oiofs.yml file.
---
# List of oiofs mounts
oiofs_mountpoints:
- path: /mnt/oiofs-OPENIO-MY_CONTAINER-MY_ACCOUNT
namespace: OPENIO
account: MY_ACCOUNT
container: MY_CONTAINER
retry_delay: 1000
sds_retry_delay: 1000
fuse_max_retries: 200
max_flush_thread: "{{ ansible_processor_vcpus / 2 | int }}"
redis_sentinel_servers: "{{ openio_sds_sentinels_addresses }}"
redis_sentinel_name: "{{ openio_sds_sentinels_name }}"
ecd_host: "{{ openio_sds_ecd_address }}"
ecd_port: 6017
oioproxy_host: "{{ openio_sds_oioproxy_address }}"
oioproxy_port: 6006
cache_directory: "/mnt/oiofs-cache-OPENIO-MY_CONTAINER-MY_ACCOUNT"
state: present
...