About a year ago, I came across an article
“50 tools for automating cloud infrastructure” which described the tools for working with virtualization and flashed a tool called Quadstor. And recently, finally got around to this wonderful software, and now I want to tell a little about it, what it is and what it is eaten with!
Quadstor is storage-based virtualization based on iSCSI.
quadstor.comAnd so that he can:- Fiber Channel, iSCSI or local disk virtual disk support.
- Thin Disks (Thin Provisioning)
- Data deduplication
- High Availability
- VAAI Support (Hardware Acceleration)
- Cluster support for Windows server 2012, Hyper-V, VMware
- ZFS support
- And the most important thing is that it is free (well, support for money).
- The size of the virtual disk to 64TB.
Quadstor runs on Linux and supports RHEL / CentOS, SLES and Debian.
The most interesting pieces are HA (High Availability), high availability (synchronous mirroring), it can be: Active-Active, Active-Pasive. As well as support for
ZFS , which is very convenient if you use a regular PC with multiple disks and without hardware RAID.
Installing and configuring Quadstor is simple and does not require "dancing with tambourines."
And now I will describe the installation and configuration of Quadstor using the example of OS CentOS 7.
At the same time on the server a single disk or partition must be unformatted and not marked (raw).
')
Quadstor installation
Install packages for convenience and work:
yum update && yum upgrade yum install epel-release yum install mc wget unzip bash-completion screen htop logwatch net-tools
Install the packages necessary for QUADStor to work:
yum install httpd gcc perl kernel-devel sg3_utils iotop sysstat lsscsi yum install fence-agents
Next, disable selinux. Using vi nano or mc, open the file / etc / selinux / config
and set SELINUX = disabled. We do reboot. Download QUADStor distribution. At the moment, the latest version is 3.2.11, and install:
wget http://www.quadstor.com/virtentdub3z/quadstor-virt-3.2.11-rhel.x86_64.rpm rpm -i quadstor-virt-3.2.11-rhel.x86_64.rpm
If everything went well, the installation process passes without errors, and if there is not enough package, then during the installation process there will be errors and the installer will indicate which packages are missing.
QUADStor has a web interface and uses apache for this. It does not need to be specifically configured, just install it in autoload and install ServerName. Go to / etc / httpd / conf / and open the httpd.conf file. Find the lines that start with ServerName and remove the sign (#) from the comment and change:
ServerName localhost:80
If you want to set up authentication / authorization (SSL) for the QUADStor web interface, this is easy to do with the Apache web server. And this setting can be easily found on the Internet or on the
QUADStor website.
We start the quadstor and apache service and include them in autoload.
systemctl start httpd systemctl start quadstor chkconfig httpd on chkconfig quadstor on
If you leave firewallD (CentOS 7) enabled, then you need to register the ports:
firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-port=25/tcp firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --permanent --add-port=8090/tcp firewall-cmd --permanent --add-port=8091/tcp firewall-cmd --permanent --add-port=860/tcp firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --permanent --add-port=3261/tcp firewall-cmd --permanent --add-port=9950/tcp firewall-cmd --permanent --add-port=9951/tcp firewall-cmd --permanent --add-port=9952/tcp firewall-cmd --permanent --add-port=9953/tcp firewall-cmd --permanent --add-port=9954/tcp firewall-cmd --permanent --add-port=9955/tcp firewall-cmd --permanent --add-port=9956/tcp firewall-cmd --reload firewall-cmd --permanent --list-all
QUADStor Web Interface
Using the browser, go to the server at the ip address http: // <address of the QUADStor>
The web interface is very simple and contains only 4 menu items:
1. SystemThe point in which general information is: server name, QUADStor version, server status, restart button of the service and the system as a whole, as well as there is a button that allows you to generate a log of the QUADStor operation and save it to your PC.
2. Physical StorageList of disks that can be added to the general pool of disks, as well as global statistics of disks: size, use of de-duplication, compression, etc.
3. Storage PoolsAt this point we create a disk pool and give it a name, as well as the inclusion of logging and deduplication.
4. Virtual DisksAt this point, almost the basic settings of virtual disks are concentrated: create virtual disks and include them in the disk pool, enable / disable compression, deduplication, verification, as well as the High Availability setting and iSCSI settings.
To create a virtual disk, first you need to create a disk pool. Go to the menu item "Storage Pools", click "Add Pool".

Give the name of the disk pool (for example, HA) and tick the boxes next to “Enable Dedupe Metadata” and “Enable Logs” and click the “Submit” button.

Next, go to the "Physical Storage" and on a free disk click the link "Add".

Select the name of the pool to which we want to bind a physical disk. Put the checkboxes “Log Disk” (Enable log) and “HA Disk” (Enable HA).
“Enable Compression” - enable data compression. You can turn it on if you want to save space, but compression requires a powerful processor and a lot of RAM (min 4GB). If there is a weak PC or server, then write / read will slow down.

The last step is to create a virtual disk.
Go to the "Virtual Disks" and click "Add Vdisk". Set the name of the virtual disk (any - for example: HAVDisk). Set the size of the disk in GB (but not more than the size of the physical disk). Specify the pool in which we want to create a virtual disk. And click "Submit".

If you use only one node, the disk creation process is finished and now it can be connected to any iSCSI server.
Configure QUADStor High Availability
HA (High Availability) requires two physical or virtual servers with two network interfaces; some network interfaces look at a public or public network, while others are only linked together for synchronization.
To configure the HA cluster, we make two nodes according to the instructions above. We set up a separate network for the nodes so that there is synchronization.
Node1
Name: vm-qs1
lan1 - 10.5.113.207 - Shared Network (public network)
lan2 - 192.168.0.1 - internal network (jumper between nodes)Node2
Name: vm-qs2
lan1 - 10.5.113.208 - Shared Network (public network)
lan2 - 192.168.0.2 - internal network (jumper between nodes)At the addresses 10.5.113.207 and 10.5.113.208 will be connected to the server via iscsi. At addresses 192.168.0.1 and 192.168.0.2, synchronization of nodes is enabled.
To enable synchronization, on each node we create the file /quadstor/etc/ndrecv.conf - we write in this file RecvAddr = 192.168.0.1 # For node1
echo "RecvAddr=192.168.0.1" > /quadstor/etc/ndrecv.conf
RecvAddr = 192.168.0.2 # For node2
echo "RecvAddr=192.168.0.2" > /quadstor/etc/ndrecv.conf
This means that we enable synchronization by ip address on the node. Next, restart the quadstor service.
systemctl stop quadstor systemctl start quadstor
Now, using the browser, we go to one of the nodes (for example, vm-qs1) at 10.5.113.207 and create a virtual disk (as described above), and on the second node (ip-10.5.113.208) we create only “Storage Pools” and “Physical Storage. " All actions (names and settings) must exactly match the first node. Creating a virtual disk on the second node is not necessary. It is created automatically when mirroring is configured. After that, on the first node, go to “Virtual Disks” and on the virtual disk click the “Modify” link.

And before us open all the settings of the virtual disk. We can turn on / off: deduplication, compression and verification. And we can also set up a login and password for the iSCSI client. And most importantly, specify the second node for mirroring.
In the line “Mirror IP Address” we indicate the IP address of the second node 192.168.0.2 (IP address for synchronization) and click “Submit”. If everything is successful then we will see “Mirror Address”, “Source Address”, “Curent Role” and “Status” in the line.

On the second node in “Virtual Disks” a virtual disk will be created automatically. Click the “Modify” link and there are the same settings as on the first node, but only vice versa.

HA mirroring is configured and the disk can now be connected to servers at 10.5.113.207 and 10.5.113.208. The client will need to configure the iSCSI multipath (support for multipath drives).
Now it remains to make another important setting. The fact is that if one of the nodes "falls", then the entire virtual disk on the client will fall off. To prevent this from happening, you need to enable "ignore mirror drop" on the nodes. First we go to the first node (vm-qs1) via ssh and give the command (as root)
/quadstor/bin/qmirrorcheck -a -t ignore -r 192.168.0.2
Then we go to the second node (vm-qs2) via ssh and give the command (as root)
/quadstor/bin/qmirrorcheck -a -t ignore -r 192.168.0.1
Now, the nodes will not control the “fall” of each other, and if one of the nodes “falls”, the second will not turn off, but will take over the initiative of the virtual disk itself.
To see the mode of operation, you can give a command.
/quadstor/bin/qsync -l

As soon as the "fallen" node is restored, data synchronization will begin and this can be seen with the help of the command
/quadstor/bin/qsync -l
That's probably all. In the next post I will try to compare the speed of Quadstor HA and StarWind HA.