breaking news

sx Object Storage installation and configuration

June 1st, 2016 | by Shree H. Niraula
sx Object Storage installation and configuration


Skylable SX , a complete private cloud framework. With Skylable SX you can create flexible, reliable and secure storage solutions, which can be accessed from all popular platforms.



Skylable SX is tested on all popular UNIX platforms, including Linux, FreeBSD, and OS X. We try to support as many platforms as possible, if you have troubles installing, compiling or running our software on your platform please let us know.



The default setup described in this manual requires 2GB of RAM available for each node. SX can also be installed on machines with lower resources, such as embedded ARM devices, but that requires advanced configuration not covered by the manual.



The binary packages are available for all popular Linux distributions, and this is the easiest and recommended way to install Skylable SX. Please visit for the up-to-date list of supported distributions and installation instructions.


Now installing sx object storage on Debian Operating System:

1. Install dependencies:

# apt-get update
# apt-get install sudo
# apt-get install unzip
# apt-get install wget
# apt-get install libssl-dev libcurl4-openssl-dev libz-dev

2. Add sx public key on your keyring:

# wget -qO - | sudo apt-key add -


3. Add the following line to the end of /etc/apt/sourse.list:

# deb jessie main
# deb-src jessie main
# deb jessie main
# deb-src jessie main


4. Install sx packages:

# apt-get update
# apt-get install libssl-dev libcurl4-openssl-dev libz-dev
# apt-get install sx


SX by default operates on the port 443 or 80, which needs to be available on a given IP address. (You can add more nodes to the cluster at any time)  You can build just a single-node SX cluster, however for data safety reasons it is recommended to create at least two nodes.



Please make sure that clocks are properly synchronized on all nodes by running NTP.



SX doesn’t pre-allocate the disk space — you will need to monitor the nodes to make sure they have enough physical space available for SX operations.



Setting up the first node initializes the cluster and makes SX ready to use.   The sxsetup  tool presented below performs an automated configuration of the SX server, which includes creating a local  data storage, SSL certificate, and default admin account. You will only need to answer a few basic questions!


In the example we assume the IP address of the first node is, the name of the cluster is, and SX was installed from a binary package. In many some cases (ex. the path to SX storage). We assume the default values, but you may want to customize them.

5. Creating the first node with cluster:

# sxsetup

When the script finishes successfully, the node is already functional. Please notice the admin key listed at the end of the summary: it will be needed for both adding more nodes and accessing the cluster. You can always retrieve the admin key with the following command:

# sxsetup --info

6. Adding more nodes to the cluster

Follow these steps to add a new node to the cluster:

Run sxsetup --info on one of the nodes of the cluster

Collect the following information:

1. Cluster name (note: my cluster name=

2. Admin key

3. One of the IP addresses from the list of nodes

Install SX using a binary package or source code


Run sxsetup and provide the collected information. Below. We assume the new node is and its size is 250 GB.


The node successfully joined the cluster — at the end of the summary you can see the current list of nodes in the cluster. Repeat the same steps to add more nodes to the cluster.



During cluster deployment a default admin account gets created and initialized. For security reasons, the account uses a randomly generated key instead of a password.  You should be able to access the cluster from any node using sx:// profile. In order to manage the cluster remotely or from another system account, you need to initialize access to the cluster using sxinit.


7. Create New User:

Use sxacl useradd to add new users to the cluster:

# sxacl useradd user1 sx://
# sxacl useradd user2 sx://
# sxacl useradd user3 sx://

8. Listing Users:

Use sxacl userlist to show all the users of cluster:

# sxacl userlist sx://

Key and Password Management

SX uses special authentication keys, which are either randomly generated or based on passwords. It is possible to obtain the existing key or issue a new one for any user in the cluster. To retrieve the current authentication key for user ‘user1’ run:

# sxacl usergetkey admin sx://

9. Removing a User from cluster:

Use sxacl userdel to delete user from the cluster:

# sxacl userdel user3 sx://


Volumes are logical partitions of the SX storage, which are of specific size and accessible by a particular group of users. The volumes can be used in connection with client side filters to perform additional operations, such as compression or encryption. Only cluster administrators can create and remove volumes.


10. Creating a plane volume:

Below we create a basic volume of size 50 GB owned by the user ‘user1’ and fully replicated on three nodes.

# sxvol create -o user1 -r 3 -s 50G sx://


Create a basic volume of 10 GB owned by user2 and and replicated on single node.

# sxvol create -o user1 -r 2 -s 10G sx://


Create a basic volume of 15 GB owned by user3 with email address and and replicated on two nodes:

# sxvol create -o -r 1 -s 10G sx://

11. Listing all volumes:

To get a list of all volumes in the cluster run sxls with the cluster argument as an administrator.  When the same command is run by a normal user, it will list all volumes, to which the user has access.

 # sxls -lH sx://

Managing volume permissions:

Cluster administrators and volume owners can grant or revoke access to the volumes to other users. The owner can also grant another user the manager privilege, which allows to manage the volume permissions. To list the current access control list for the volume vol2:


12. Show vol2 Permissions:

# sxacl volshow sx://


To grant read and write access to user ‘user2’ run:

# sxacl volperm --grant=read,write user2 sx://


User ‘user2’ can now upload, download and remove files from the volume but cannot make any changes to the volume settings (this is restricted to admins, managers and owners).

13. Revoke volume Permissions:

To revoke write access from user ‘user2’ from vol2 run:

# sxacl volperm --revoke=write user2 sx://


14. To resize volume:

To resize the volume vol2 to 15 GB run:

#sxvol modify --size 15G  sx://

To Delete volume:

Before delete volume delete all data under volume

# sxrm -r  sx://
# sxvol remove sx://


Using sxinit one can configure access for multiple users and clusters. The access profiles have the format of sx://[username@]cluster_name. When the username is omitted, sxinit will ask for it and sx://cluster_name will be the default profile for a given cluster.

For example: sx://


15. Adding Profiles to the cluster

To add an access profile for the user ‘user1’ and the local cluster ( which are already created in following command:

# sxinit -l -A @user1 sx://

Provide username and password of users


16. Listing Access Profiles

To list all configured access profiles run:

# sxacl userlist sx://

Share This