Not logged in : Login

About: VirtEC2AMIElasticBlockStorageConfig     Goto   Sponge   Distinct   Permalink

An Entity of Type : atom:Entry, within Data Space : www.openlinksw.com associated with source document(s)
QRcode icon
http://www.openlinksw.com/describe/?url=http%3A%2F%2Fwww.openlinksw.com%2Fdataspace%2Fdav%2Fwiki%2FMain%2FVirtEC2AMIElasticBlockStorageConfig

AttributesValues
has container
Date Created
maker
topic
described by
seeAlso
Date Modified
link
id
  • fc7873d0f3ba501c208c946abde8b2fc
  • fc7873d0f3ba501c208c946abde8b2fc
content
  • %VOSWARNING% ---+ Using AWS Elastic Block Storage %TOC% ---++ What is AWS Elastic Block Storage? Amazon Elastic Block Storage (Amazon EBS) is a new type of storage designed specifically for Amazon EC2 instances. Amazon EBS allows you to create volumes that can be mounted as devices by EC2 instances; your AMI sees an EBS volume as a raw unformatted hard drive device. These can then be managed through the AWS Management Console, with snapshots taken to preserve the state at a given point in time, etc. ---++ Typical Usage Scenarios ---+++ Preconfigured Databases With EBS it is possible to ship whole instances (dump/restore images of virtuoso.db database files) of databases. OpenLink currently provide a few such preconfigured databases. See specific installation instructions for: * [[VirtEC2AMIDBpediaInstall][DBpedia]] * [[VirtEC2AMINeuroCommonsInstall][NeuroCommons]] * [[VirtEC2AMIBio2rdfInstall][Bio2RDF]] * [[VirtEC2AMIMusicBrainzInstall][MusicBrainz]] ---+++ Managing Virtuoso Storage ---++++ Prerequisites * Ensure you have downloaded your ssh keypair, with which to access your AMI instance. * Some Unix/Linux knowledge is assumed. ---++++ Creating larger databases 1 Start by logging into your [[https://console.aws.amazon.com/][Amazon AWS Management Console]]. From here you should see the dashboard overview with an instance running: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-1-dashboard.png" />%BR%%BR% 1 From the left menu, select *Volumes* to view any existing EBS volumes you might have created. In this case, we have no pre-existing volumes: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-2-volumes.png" />%BR%%BR% 1 Click *create* and fill in a size (here 1Gb) and an availability zone. Note that this must match the availability zone of the instance to which you attach it: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-3-create-volume.png" />%BR%%BR% 1 After a short while, the new EBS volume will be created and appear in the management console accordingly: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-4-volume-created.png" />%BR%%BR% 1 If you click *attach,* a dialog will pop-up asking to which instance the new volume should be attached. Choose the relevant one and select a device-name for the volume to use within the AMI. Here we choose <code>/dev/sdf</code> (a pseudo-SCSI drive name): %BR%%BR%<img src="%ATTACHURLPATH%/ebs-7-attach-it-somewhere.png" />%BR%%BR% 1 If not already connected, ssh into the AMI as root using your key identity and check for the appearance of the new drive: <verbatim> zsh% ssh -i MyKeyPair.pem root@ec2-67-202-58-58.compute-1.amazonaws.com [root@domU-12-31-39-03-BE-04 ~]# ls -ltr /dev/[hs]d* brw-r----- 1 root disk 8, 3 2009-01-09 07:48 /dev/sda3 brw-r----- 1 root disk 8, 1 2009-01-09 07:48 /dev/sda1 brw-r----- 1 root disk 8, 2 2009-01-09 07:48 /dev/sda2 brw-r----- 1 root disk 8, 80 2009-01-16 11:50 /dev/sdf </verbatim> 1 Should you wish, you may partition the new block-storage device at this point using <code>fdisk</code> or <code>cfdisk</code> or similar. Here we create an ext3 filesystem using the whole device: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# mkfs.ext3 -F /dev/sdf mke2fs 1.40.8 (13-Mar-2008) Warning: 256-byte inodes not usable on older systems Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. </verbatim> 1 For you to work with the new filesystem, the system has to "mount" it. * This can be done manually with the <code>mount</code> command, here becoming visible as the directory <code>/opt/virtuoso/data-store/</code>: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# mount -t ext3 /dev/sdf /opt/virtuoso/data-store </verbatim> * You can also add a line in <code>/etc/fstab</code>, to make the filesystem come up and be automatically mounted when you reboot or restart the AMI. As above, we are using the directory <code>/opt/virtuoso/data-store/</code> as the mount point: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# cat /etc/fstab /dev/sda1 / ext3 defaults 1 1 /dev/sda2 /mnt ext3 defaults 1 1 /dev/sda3 swap swap defaults 0 0 /dev/sdf /opt/virtuoso/data-store ext3 defaults,noatime 0 0 [root@domU-12-31-39-03-BE-04 ~]# mount </verbatim> 1 To migrate the Virtuoso database directory across to this new EBS volume, first, stop the running Virtuoso instance: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# cd /opt/virtuoso/ [root@domU-12-31-39-03-BE-04 virtuoso]# . ./virtuoso-environment.sh [root@domU-12-31-39-03-BE-04 virtuoso]# virtuoso-stop.sh Shutting down Virtuoso instance in [database] </verbatim> 1 The Virtuoso installation is based on the Personal Edition layout so the <code>virtuoso-start.sh</code> and <code>virtuoso-stop.sh</code> commands work on all subdirectories containing an ini-file by default. 1 Now that the <code>data-store/</code> directory is mounted, copy the database files across: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# cp -v database/* data-store/ 'database/php.ini' -> 'data-store/php.ini' 'database/virtuoso' -> 'data-store/virtuoso' 'database/virtuoso.db' -> 'data-store/virtuoso.db' 'database/virtuoso.ini' -> 'data-store/virtuoso.ini' 'database/virtuoso.log' -> 'data-store/virtuoso.log' 'database/virtuoso.pxa' -> 'data-store/virtuoso.pxa' 'database/virtuoso-temp.db' -> 'data-store/virtuoso-temp.db' 'database/virtuoso.trx' -> 'data-store/virtuoso.trx' [root@domU-12-31-39-03-BE-04 virtuoso]# </verbatim> 1 Then restart Virtuoso using the <code>data-store</code> directory: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# virtuoso-start.sh data-store/ Starting Virtuoso instance in [data-store/] </verbatim> 1 You can tail the server log file to watch its progress: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# tail -f data-store/virtuoso.log 12:00:51 Issued by OpenLink Software 12:00:51 This license will expire on Fri Jan 1 00:00:00 2010 GMT 12:00:51 Database version 3016 12:00:51 SQL Optimizer enabled (max 1000 layouts) 12:00:53 Compiler unit is timed at 0.001264 msec 12:00:55 Roll forward started 12:00:55 Roll forward complete 12:00:56 Checkpoint made, log reused 12:00:56 HTTP/WebDAV server online at 80 12:00:56 Server online at 1111 (pid 14099) </verbatim> 1 The Virtuoso EC2 AMI instance is now ready for use, and accessible at <code>http://your-ec2-instance-cname/</code>. ---++++ Striping If your database instance is very large and/or you have a large number of concurrent users causing access to random parts of the database simultaneously, it makes sense to distribute the storage across files on two or more devices using [[http://docs.openlinksw.com/virtuoso/dbadm.html#ini_Striping][striping]]. 1 Follow through the above, to create as many EBS storage volumes as you need, and create a filesystem and mount each of them somewhere under <code>/opt/virtuoso/</code>. 1 From your <code>ssh</code> login session, modify the <code>database/virtuoso.ini</code> file. First, in the <code>[Database]</code> section, enable <code>Striping</code> overall: <verbatim> [Database] ... Striping = 1 MaxCheckpointRemap = 2000000 </verbatim> 1 Then, towards the bottom of the file, enter the files to use on EBS devices in the <code>[Striping]</code> section: <verbatim> [Striping] ... Segment1 = 60000, /opt/virtuoso/data-space1>/virt-seg1.db = q1, /opt/virtuoso/data-space2>/virt-seg1-str2.db = q2, /opt/virtuoso/data-space3>/virt-seg1-str3.db = q3 </verbatim> 1 Each database segment file is assigned a separate background IO thread (the <b><code>=q</code></b> clause). *Note:* All files on the same physical device should have the same <code>q</code> value; i.e., multiple stripes on a single EBS volume should have the same <code>q</code> value. Further information on [[http://docs.openlinksw.com/virtuoso/ptune.html#IOQS][tuning Virtuoso]] is available in our documentation. ---+++ Creating a Database Snapshot It is often helpful to be able to preserve the state of a filesystem at a point in time, either in order to restore to it later or to run a backup or similar. With the Amazon AWS Management Console, creating a new snapshot is a matter of two clicks. 1 Start at the console's *Volumes* view: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-9-volumes-create-snapshot.png" />%BR%%BR% 1 Click on *create snapshot* and select the volume of which you wish to make a copy: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-11-create-from-snapshots-tab.png" />%BR%%BR% 1 After a short delay, the Volumes view will show the snapshot completed: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-12-got-snapshot.png" />%BR%%BR% 1 If required, the snapshot permissions can be changed from the default of *private* to public by right clicking on the snapshot and selecting the *public* radio button option, enabling it to then be accessed by the public. 1 You restore a snapshot by using it as a source from which to create a new volume: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-13-create-volume-from-snapshot.png" />%BR%%BR% 1 Continue attaching it to an existing AMI instance as previously: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-15-attach-restored-snapshot-volume.png" />%BR%%BR% ---++ Related * [[VirtEBSBackedBYOLAMI][EBS-backed BYOL ("Bring Your Own License") Virtuoso EC2 AMI]]
  • %VOSWARNING% ---+ Using AWS Elastic Block Storage %TOC% ---++ What is AWS Elastic Block Storage? Amazon Elastic Block Storage (Amazon EBS) is a new type of storage designed specifically for Amazon EC2 instances. Amazon EBS allows you to create volumes that can be mounted as devices by EC2 instances; your AMI sees an EBS volume as a raw unformatted hard drive device. These can then be managed through the AWS Management Console, with snapshots taken to preserve the state at a given point in time, etc. ---++ Typical Usage Scenarios ---+++ Preconfigured Databases With EBS it is possible to ship whole instances (dump/restore images of virtuoso.db database files) of databases. OpenLink currently provide a few such preconfigured databases. See specific installation instructions for: * [[VirtEC2AMIDBpediaInstall][DBpedia]] * [[VirtEC2AMINeuroCommonsInstall][NeuroCommons]] * [[VirtEC2AMIBio2rdfInstall][Bio2RDF]] * [[VirtEC2AMIMusicBrainzInstall][MusicBrainz]] ---+++ Managing Virtuoso Storage ---++++ Prerequisites * Ensure you have downloaded your ssh keypair, with which to access your AMI instance. * Some Unix/Linux knowledge is assumed. ---++++ Creating larger databases 1 Start by logging into your [[https://console.aws.amazon.com/][Amazon AWS Management Console]]. From here you should see the dashboard overview with an instance running: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-1-dashboard.png" />%BR%%BR% 1 From the left menu, select *Volumes* to view any existing EBS volumes you might have created. In this case, we have no pre-existing volumes: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-2-volumes.png" />%BR%%BR% 1 Click *create* and fill in a size (here 1Gb) and an availability zone. Note that this must match the availability zone of the instance to which you attach it: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-3-create-volume.png" />%BR%%BR% 1 After a short while, the new EBS volume will be created and appear in the management console accordingly: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-4-volume-created.png" />%BR%%BR% 1 If you click *attach,* a dialog will pop-up asking to which instance the new volume should be attached. Choose the relevant one and select a device-name for the volume to use within the AMI. Here we choose <code>/dev/sdf</code> (a pseudo-SCSI drive name): %BR%%BR%<img src="%ATTACHURLPATH%/ebs-7-attach-it-somewhere.png" />%BR%%BR% 1 If not already connected, ssh into the AMI as root using your key identity and check for the appearance of the new drive: <verbatim> zsh% ssh -i MyKeyPair.pem root@ec2-67-202-58-58.compute-1.amazonaws.com [root@domU-12-31-39-03-BE-04 ~]# ls -ltr /dev/[hs]d* brw-r----- 1 root disk 8, 3 2009-01-09 07:48 /dev/sda3 brw-r----- 1 root disk 8, 1 2009-01-09 07:48 /dev/sda1 brw-r----- 1 root disk 8, 2 2009-01-09 07:48 /dev/sda2 brw-r----- 1 root disk 8, 80 2009-01-16 11:50 /dev/sdf </verbatim> 1 Should you wish, you may partition the new block-storage device at this point using <code>fdisk</code> or <code>cfdisk</code> or similar. Here we create an ext3 filesystem using the whole device: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# mkfs.ext3 -F /dev/sdf mke2fs 1.40.8 (13-Mar-2008) Warning: 256-byte inodes not usable on older systems Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. </verbatim> 1 For you to work with the new filesystem, the system has to "mount" it. * This can be done manually with the <code>mount</code> command, here becoming visible as the directory <code>/opt/virtuoso/data-store/</code>: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# mount -t ext3 /dev/sdf /opt/virtuoso/data-store </verbatim> * You can also add a line in <code>/etc/fstab</code>, to make the filesystem come up and be automatically mounted when you reboot or restart the AMI. As above, we are using the directory <code>/opt/virtuoso/data-store/</code> as the mount point: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# cat /etc/fstab /dev/sda1 / ext3 defaults 1 1 /dev/sda2 /mnt ext3 defaults 1 1 /dev/sda3 swap swap defaults 0 0 /dev/sdf /opt/virtuoso/data-store ext3 defaults,noatime 0 0 [root@domU-12-31-39-03-BE-04 ~]# mount </verbatim> 1 To migrate the Virtuoso database directory across to this new EBS volume, first, stop the running Virtuoso instance: <verbatim> [root@domU-12-31-39-03-BE-04 ~]# cd /opt/virtuoso/ [root@domU-12-31-39-03-BE-04 virtuoso]# . ./virtuoso-environment.sh [root@domU-12-31-39-03-BE-04 virtuoso]# virtuoso-stop.sh Shutting down Virtuoso instance in [database] </verbatim> 1 The Virtuoso installation is based on the Personal Edition layout so the <code>virtuoso-start.sh</code> and <code>virtuoso-stop.sh</code> commands work on all subdirectories containing an ini-file by default. 1 Now that the <code>data-store/</code> directory is mounted, copy the database files across: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# cp -v database/* data-store/ 'database/php.ini' -> 'data-store/php.ini' 'database/virtuoso' -> 'data-store/virtuoso' 'database/virtuoso.db' -> 'data-store/virtuoso.db' 'database/virtuoso.ini' -> 'data-store/virtuoso.ini' 'database/virtuoso.log' -> 'data-store/virtuoso.log' 'database/virtuoso.pxa' -> 'data-store/virtuoso.pxa' 'database/virtuoso-temp.db' -> 'data-store/virtuoso-temp.db' 'database/virtuoso.trx' -> 'data-store/virtuoso.trx' [root@domU-12-31-39-03-BE-04 virtuoso]# </verbatim> 1 Then restart Virtuoso using the <code>data-store</code> directory: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# virtuoso-start.sh data-store/ Starting Virtuoso instance in [data-store/] </verbatim> 1 You can tail the server log file to watch its progress: <verbatim> [root@domU-12-31-39-03-BE-04 virtuoso]# tail -f data-store/virtuoso.log 12:00:51 Issued by OpenLink Software 12:00:51 This license will expire on Fri Jan 1 00:00:00 2010 GMT 12:00:51 Database version 3016 12:00:51 SQL Optimizer enabled (max 1000 layouts) 12:00:53 Compiler unit is timed at 0.001264 msec 12:00:55 Roll forward started 12:00:55 Roll forward complete 12:00:56 Checkpoint made, log reused 12:00:56 HTTP/WebDAV server online at 80 12:00:56 Server online at 1111 (pid 14099) </verbatim> 1 The Virtuoso EC2 AMI instance is now ready for use, and accessible at <code>http://your-ec2-instance-cname/</code>. ---++++ Striping If your database instance is very large and/or you have a large number of concurrent users causing access to random parts of the database simultaneously, it makes sense to distribute the storage across files on two or more devices using [[http://docs.openlinksw.com/virtuoso/dbadm.html#ini_Striping][striping]]. 1 Follow through the above, to create as many EBS storage volumes as you need, and create a filesystem and mount each of them somewhere under <code>/opt/virtuoso/</code>. 1 From your <code>ssh</code> login session, modify the <code>database/virtuoso.ini</code> file. First, in the <code>[Database]</code> section, enable <code>Striping</code> overall: <verbatim> [Database] ... Striping = 1 MaxCheckpointRemap = 2000000 </verbatim> 1 Then, towards the bottom of the file, enter the files to use on EBS devices in the <code>[Striping]</code> section: <verbatim> [Striping] ... Segment1 = 60000, /opt/virtuoso/data-space1>/virt-seg1.db = q1, /opt/virtuoso/data-space2>/virt-seg1-str2.db = q2, /opt/virtuoso/data-space3>/virt-seg1-str3.db = q3 </verbatim> 1 Each database segment file is assigned a separate background IO thread (the <b><code>=q</code></b> clause). *Note:* All files on the same physical device should have the same <code>q</code> value; i.e., multiple stripes on a single EBS volume should have the same <code>q</code> value. Further information on [[http://docs.openlinksw.com/virtuoso/ptune.html#IOQS][tuning Virtuoso]] is available in our documentation. ---+++ Creating a Database Snapshot It is often helpful to be able to preserve the state of a filesystem at a point in time, either in order to restore to it later or to run a backup or similar. With the Amazon AWS Management Console, creating a new snapshot is a matter of two clicks. 1 Start at the console's *Volumes* view: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-9-volumes-create-snapshot.png" />%BR%%BR% 1 Click on *create snapshot* and select the volume of which you wish to make a copy: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-11-create-from-snapshots-tab.png" />%BR%%BR% 1 After a short delay, the Volumes view will show the snapshot completed: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-12-got-snapshot.png" />%BR%%BR% 1 If required, the snapshot permissions can be changed from the default of *private* to public by right clicking on the snapshot and selecting the *public* radio button option, enabling it to then be accessed by the public. 1 You restore a snapshot by using it as a source from which to create a new volume: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-13-create-volume-from-snapshot.png" />%BR%%BR% 1 Continue attaching it to an existing AMI instance as previously: %BR%%BR%<img src="%ATTACHURLPATH%/ebs-15-attach-restored-snapshot-volume.png" />%BR%%BR% ---++ Related * [[VirtEBSBackedBYOLAMI][EBS-backed BYOL ("Bring Your Own License") Virtuoso EC2 AMI]]
Title
  • VirtEC2AMIElasticBlockStorageConfig
  • VirtEC2AMIElasticBlockStorageConfig
attachment
Faceted Search & Find service v1.17_git63 as of Apr 23 2021


Alternative Linked Data Documents: iSPARQL | ODE     Content Formats:       RDF       ODATA       Microdata      About   
This material is Open Knowledge   W3C Semantic Web Technology [RDF Data] Valid XHTML + RDFa
OpenLink Virtuoso version 08.03.3322 as of Jun 3 2021, on Linux (x86_64-generic-linux-glibc25), Single-Server Edition (30 GB total memory)
Data on this page belongs to its respective rights holders.
Virtuoso Faceted Browser Copyright © 2009-2021 OpenLink Software