Editing Virtuozzo Storage

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
'''Virtuozzo Storage''' is a highly-available distributed storage (virtual SAN) with built-in replication and disaster recovery.
+
= Parallels Cloud Storage (Pstorage) =
  
Virtuozzo Storage provides a storage virtualization platform on top of commodity hardware with locally attached hard drives and enables the unification of storage into a cluster in scenarios like virtualization with the help of virtual machines (VMs) and/or Containers ([[CT]]s). Pstorage ensures a fast live migration of VMs and CTs across hardware nodes, without the need to copy VM/CT data, and high availability as the storage becomes available remotely.
+
Parallels Storage (Pstorage) is a highly-available distributed storage (virtual SAN) with built-in replication and disaster recovery. Pstorage provides a storage virtualization platform on top of commodity hardware with locally attached hard drives and enables the unification of storage into a cluster in scenarios like virtualization with the help of virtual machines (VMs) and/or Containers (CTs). Pstorage ensures a fast live migration of VMs and CTs across hardware nodes, without the need to copy VM/CT data, and high availability as the storage becomes available remotely.
  
== Features ==
+
The main Pstorage features are listed below:
<br clear="both">
 
[[File:Parallels_Cloud_Storage_is_a_software_defined_storage.png|300px|right|link=http://www.youtube.com/watch?v=6oEzW9w-1rg|Virtuozzo Storage is a software defined storage]]
 
The main Virtuozzo Storage features are listed below:
 
  
 
* No special hardware requirements. Commodity hardware (SATA/SAS drives, 1Gbit+ Ethernet) can be used to create a storage.
 
* No special hardware requirements. Commodity hardware (SATA/SAS drives, 1Gbit+ Ethernet) can be used to create a storage.
 
* Strong consistency semantics. This makes Pstorage suitable for iSCSI, VMs and CTs running on top of it (unlike object storage such as Amazon S3 or Swift).
 
* Strong consistency semantics. This makes Pstorage suitable for iSCSI, VMs and CTs running on top of it (unlike object storage such as Amazon S3 or Swift).
* Usable for Containers or exportable as iSCSI, NFS, S3 object storage
 
 
* Built-in replication.
 
* Built-in replication.
 
* Automatic disaster recovery on hard drive or node failures.
 
* Automatic disaster recovery on hard drive or node failures.
Line 20: Line 16:
 
* More uniform hardware performance and capacity utilization across the nodes, so overutilized nodes benefit from idle ones.
 
* More uniform hardware performance and capacity utilization across the nodes, so overutilized nodes benefit from idle ones.
 
* High performance - comparable to SAN.
 
* High performance - comparable to SAN.
 +
  
 
See a brief [http://www.youtube.com/watch?v=6oEzW9w-1rg video on YouTube].
 
See a brief [http://www.youtube.com/watch?v=6oEzW9w-1rg video on YouTube].
<br clear="both">
 
 
== Pstorage for OpenVZ limitations ==
 
 
{{Warning|
 
* Virtuozzo Storage is available as a TECHNOLOGY PREVIEW ONLY for OpenVZ users and can't be licensed for production.
 
* To unlock for running in production, you should upgrade to a full [[Virtuozzo]] product (see below).
 
* Maximum capacity limited for usage in technology preview mode is 100 GB of logical (usable by containers) disk space.
 
* After hitting this limit, writers can get blocked w/o errors expecting for a limit to be extended, so please avoid hitting the limit (it's not a bug :) ).
 
}}
 
  
=== Components ===
+
==OpenVZ limitations==
 +
<span style="color:#FF0000">Parallels Cloud Storage is available as a TECHNOLOGY PREVIEW ONLY for OpenVZ users and can't be licensed for production.<br>To unlock for running in production you should upgrade to a full Parallels Cloud Server product (see below).<br>Maximum capacity limited for usage in technology preview mode is 100GB of logical (Containers usable) disk space.<br>After hitting this limit writers can get blocked w/o errors expecting for a limit to be extended, so please avoid hitting the limit (it's not a bug :) ).</span>
  
[[File:Parallels_Cloud_Storage_components.png|650px|top|Virtuozzo Storage Components]]
+
==Pstorage components==
 
+
Any Pstorage includes three components:
Any Virtuozzo Storage includes three components:
 
  
 
* Metadata server (MDS). MDSs manage metadata, like file names, and keep control over how files are split into chunks and where the chunks are stored. They also track versions of chunks and ensure that the cluster has enough replicas. An MDS can be run in multiple instances to provide high availability. Besides, MDSs keep a global log of important events that happen in the cluster.
 
* Metadata server (MDS). MDSs manage metadata, like file names, and keep control over how files are split into chunks and where the chunks are stored. They also track versions of chunks and ensure that the cluster has enough replicas. An MDS can be run in multiple instances to provide high availability. Besides, MDSs keep a global log of important events that happen in the cluster.
 
 
* Chunk server (CS). A CS is a service responsible for storing real user data chunks and providing access to these data. A Pstorage cluster must have multiple instances of CSs for high availability.
 
* Chunk server (CS). A CS is a service responsible for storing real user data chunks and providing access to these data. A Pstorage cluster must have multiple instances of CSs for high availability.
 
+
* Clients. Clients access a Pstorage cluster by communicating with MDSs and CSs. Parallels Containers and virtual machines can be run natively, i.e. directly from the Pstorage cluster. An additional Pstorage client -  can be used to mount Pstorage as a conventional file system (though Pstorage is not POSIX-compliant). Besides, Pstorage files can be mounted as a block device using the "ploop" feature and formatted as ext4 file system for other needs.
* Clients. Clients access a Virtuozzo Storage cluster by communicating with MDSs and CSs. Virtuozzo Containers and virtual machines can be run natively, i.e. directly from the Virtuozzo Storage cluster. An additional Virtuozzo Storage client -  can be used to mount Virtuozzo Storage as a conventional file system (though Pstorage is not POSIX-compliant). Besides, Pstorage files can be mounted as a block device using the "ploop" feature and formatted as ext4 file system for other needs.
 
  
 
A recommended cluster setup includes from 3 to 5 MDS instances (allowing you to survive the loss of 1 or 2 of MDSs, respectively) and multiple CSs providing storage capacity.
 
A recommended cluster setup includes from 3 to 5 MDS instances (allowing you to survive the loss of 1 or 2 of MDSs, respectively) and multiple CSs providing storage capacity.
  
== Setup ==
 
 
This HOWTO explains how to setup Virtuozzo Storage cluster and run OpenVZ containers stored there. Please note, that it's just a brief HOWTO for quick and easy evaluation of Virtuozzo Storage (configuring only 1x MDS and CS service) and is not a real manual. We highly recommend to consult [http://download.parallels.com/doc/pcs/pdf/Parallels_Cloud_Storage.pdf Pstorage manual] and man pages (such as pstorage, pstorage-make-cs, pstorage-make-mds etc.) as it contain a lot of important details on types of SSD drives supported, what are the recommended configurations, how to configure big clusters with failure domains and so on.
 
 
=== Installing Virtuozzo Storage software ===
 
  
In order to install Pstorage RPM packages, log in as root to all the machines planned to be added to the cluster and perform the following actions.
+
=Pstorage setup HOWTO=
 +
Below HOWTO explains how to setup Parallels Cloud Storage (Pstorage) cluster and run OpenVZ containers stored there. Please note, that it's just a brief HOWTO for quick and easy evaluation of Parallels Cloud Storage (configuring only 1x MDS and CS service) and is not a real manual. We highly recommend to consult [http://download.parallels.com/doc/pcs/pdf/Parallels_Cloud_Storage.pdf Pstorage manual] and man pages (such as pstorage, pstorage-make-cs, pstorage-make-mds etc.) as it contain a lot of important details on types of SSD drives supported, what are the recommended configurations, how to configure big clusters with failure domains and so on.
  
Set up pstorage yum repository:
+
==Installing Parallels Cloud Storage software==
  
cat << EOF > /etc/yum.repos.d/pstorage.repo
+
In order to install Pstorage RPM packages log in as root to all the machines planned to be added to the cluster and perform the following actions.
[openvz-pstorage]
 
name=Virtuozzo Storage for OpenVZ
 
baseurl=http://download.openvz.org/pstorage/current
 
enabled=1
 
gpgcheck=0
 
EOF
 
  
Install needed packages:
+
Download and install the following RPM packages: pstorage-ctl, pstorage-libs-shared, pstorage-metadata-server, pstorage-chunk-server and pstorage-client. These packages can be downloaded from http://download.openvz.org/pstorage:
  
  yum install pstorage-metadata-server pstorage-chunk-server pstorage-client
+
wget http://download.openvz.org/pstorage/*
 +
  yum install pstorage-ctl pstorage-libs-shared pstorage-metadata-server pstorage-chunk-server pstorage-client
  
=== Creating a cluster ===
+
==Creating a cluster==
  
 
Every Pstorage cluster has a unique cluster name used for remote service discovery and during authorization.
 
Every Pstorage cluster has a unique cluster name used for remote service discovery and during authorization.
 
So choose a name for the cluster that will uniquely identify it among other clusters in your network and avoid reusing it on cluster recreate. A name may contain the characters a-z, A-Z, 0-9, dash (-), and underscore (_). Here we will use 'test_cluster' as a cluster name.
 
So choose a name for the cluster that will uniquely identify it among other clusters in your network and avoid reusing it on cluster recreate. A name may contain the characters a-z, A-Z, 0-9, dash (-), and underscore (_). Here we will use 'test_cluster' as a cluster name.
  
==== Create metadata servers (MDS) ====
+
===Create metadata servers (MDS)===
  
 
Log in to the computers you want to configure as a metadata server as root.
 
Log in to the computers you want to configure as a metadata server as root.
Line 82: Line 58:
 
  pstorage -c test_cluster make-mds -I -a 10.30.100.101 -r /pstorage/test_cluster-mds -p
 
  pstorage -c test_cluster make-mds -I -a 10.30.100.101 -r /pstorage/test_cluster-mds -p
  
This command creates new Virtuozzo Storage cluster and metadata server and configures the IP address of ''10.30.100.101'' for communication with this server (replace ''10.30.100.101'' with IP address of your own MDS server). MDS will store its data at location specified by '''-r''' option. The command will also ask you to enter the password for authentication in your cluster.
+
This command creates new Parallels Cloud Storage cluster and metadata server and configures the IP address of ''10.30.100.101'' for communication with this server (replace ''10.30.100.101'' with IP address of your own MDS server). MDS will store its data at location specified by '''-r''' option. The command will also ask you to enter the password for authentication in your cluster.
  
 
After you have created the MDS server, start the MDS management service ('''pstorage-mdsd''') and configure it to start automatically when the server boots:
 
After you have created the MDS server, start the MDS management service ('''pstorage-mdsd''') and configure it to start automatically when the server boots:
Line 89: Line 65:
 
  chkconfig pstorage-mdsd on
 
  chkconfig pstorage-mdsd on
  
To create a 2nd and subsequent MDS services on other nodes, do the following:
+
 
 +
To create 2nd and subsequent MDS services on other nodes do:
  
 
1. Login to the node as root.
 
1. Login to the node as root.
Line 102: Line 79:
 
  pstorage -c test_cluster make-mds -a 10.30.100.102 -r /pstorage/test_cluster-mds
 
  pstorage -c test_cluster make-mds -a 10.30.100.102 -r /pstorage/test_cluster-mds
  
==== Create a chunk server (CS) ====
+
===Create chunk server (CS)===
  
 
Log in to the computer you want to configure as a chunk server as root.
 
Log in to the computer you want to configure as a chunk server as root.
Line 112: Line 89:
 
The command will ask you the password that you specified when setting up the first MDS server.
 
The command will ask you the password that you specified when setting up the first MDS server.
  
Create a CS:
+
Create CS:
 
 
 
  pstorage -c test_cluster make-cs -r /pstorage/test_cluster-cs
 
  pstorage -c test_cluster make-cs -r /pstorage/test_cluster-cs
  
Line 122: Line 98:
 
  chkconfig pstorage-csd on
 
  chkconfig pstorage-csd on
  
==== Setting up a client ====
+
===Setting up a client===
  
 
Log in to the computer you want to act as a client as root.
 
Log in to the computer you want to act as a client as root.
Line 133: Line 109:
 
The command will ask you the password that you specified when setting up the first MDS server.
 
The command will ask you the password that you specified when setting up the first MDS server.
  
Create the directory to mount the Virtuozzo Storage cluster to and then mount it as a conventional file system:
+
Create the directory to mount the Parallels Cloud Storage cluster to and then mount it as a conventional file system:
  
 
  mkdir -p /pcs
 
  mkdir -p /pcs
Line 142: Line 118:
 
Now you can access your data from all the client machines and ready to run containers!
 
Now you can access your data from all the client machines and ready to run containers!
  
==== Create a container running in the cluster ====
+
===Create a container running in the cluster===
  
 
Running a container over Pstrage is no different from any other local file system, so below example is just for the reference.
 
Running a container over Pstrage is no different from any other local file system, so below example is just for the reference.
Log in to the computer running OpenVZ and that you have configured to act as a client for the Virtuozzo Storage cluster.
+
Log in to the computer running OpenVZ and that you have configured to act as a client for the Parallels Cloud Storage cluster.
  
 
Load OpenVZ ploop kernel modules if they aren't loaded yet:
 
Load OpenVZ ploop kernel modules if they aren't loaded yet:
Line 155: Line 131:
  
 
Create a ploop-based container with CTID=101 (put your own template name below):
 
Create a ploop-based container with CTID=101 (put your own template name below):
  vzctl create 101 --layout ploop --ostemplate centos-6-x86_64 --private /pcs/containers/101
+
  vzctl create 101 --layout ploop --ostemplate centos-6-x86_64 --private /pcs/containers/
 
 
Now container with CTID=101 is ready for use and can be started on '''any''' Pstorage client node (note, however, that you need to register container first if want to run on node different from creator one):
 
  
 +
Now container with CTID=101 is ready for use and can be started on any Pstorage client node:
 
  vzctl start 101
 
  vzctl start 101
  
 
In order to quickly relocate the container to another node (w/o data migration), just stop and unregister it on source node, then register and start on destination.
 
In order to quickly relocate the container to another node (w/o data migration), just stop and unregister it on source node, then register and start on destination.
  
== Upgrading to Virtuozzo ==
+
==Upgrading to Parallels Cloud Server==
 
+
What is [http://www.parallels.com/products/pcs/ Parallels Cloud Server]? Parallels Cloud Server is a unique virtualization server platform combining hypervisor & containers virtualization together with innovative storage virtualization [http://www.parallels.com/fileadmin/parallels/documents/hosting-cloud-enablement/pcs/Production_Datasheets/ParCloudServer6_DataSheet_EN_Ltr_111312.pdf].
'''[http://www.odin.com/products/virtuozzo/ Virtuozzo]''' is a unique virtualization server platform combining both hypervisor and container-based virtualization together with innovative storage virtualization.
 
 
 
Please request more information on upgrading to Virtuozzo at the [http://www.odin.com/products/virtuozzo/ product page] (look for '''Request Information''' button).
 
 
 
== External links ==
 
  
* [http://www.odin.com/fileadmin/media/hcap/pcs/documents/ParCloudServer6_DataSheet_EN_Ltr_111312.pdf Virtuozzo product datasheet]
+
Please request more information on upgrading to Parallels Cloud Server on a [http://www.parallels.com/products/pcs/ product page] (see '''Request Information''' button).
* [http://www.odin.com/fileadmin/media/hcap/pcs/documents/ParCloudStorage_DataSheet_EN_Ltr_02262013.pdf Parallels Cloud Storage product datasheet]
 
* [http://download.parallels.com/doc/pcs/pdf/Parallels_Cloud_Storage_Administrators_Guide.pdf Parallels Cloud Storage Administrator's Guide]
 
* [http://www.odin.com/fileadmin/media/hcap/pcs/documents/PCloudStorage_Performance_Results_WP_EN_Ltr_02192013_web.pdf Pstorage performance whitepaper]
 
* [http://www.youtube.com/watch?v=6oEzW9w-1rg Pstorage introduction video]
 
  
[[Category: Storage]]
+
==Pstorage Links & Documentation==
 +
* Parallels Cloud Server [http://www.parallels.com/fileadmin/parallels/documents/hosting-cloud-enablement/pcs/Production_Datasheets/ParCloudServer6_DataSheet_EN_Ltr_111312.pdf product datasheet].
 +
* Parallels Cloud Storage [http://www.parallels.com/fileadmin/parallels/documents/hosting-cloud-enablement/pcs/Production_Datasheets/ParCloudStorage_DataSheet_EN_Ltr_02262013.pdf product datascheet].
 +
* For more information on setting up pstorage cluster please refer to the Parallels Cloud Storage documentation [http://download.parallels.com/doc/pcs/pdf/Parallels_Cloud_Storage.pdf].
 +
* Pstroage performance whitepaper [http://www.parallels.com/fileadmin/parallels/documents/hosting-cloud-enablement/pcs/Production_Whitepapers/PCloudStorage_Performance_Results_WP_EN_Ltr_02192013_web.pdf].
 +
* YouTube introduction video [http://www.youtube.com/watch?v=6oEzW9w-1rg]

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: