<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.lunanode.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.lunanode.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Favyen+Bastani</id>
		<title>Luna Node - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.lunanode.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Favyen+Bastani"/>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Special:Contributions/Favyen_Bastani"/>
		<updated>2026-06-02T22:13:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.5</generator>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2023-12-27T16:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node General-Purpose and Memory-Optimized virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
Compute-Optimized virtual machines are assigned dedicated CPU cores.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 100% CPU utilization for every 1.0 CPU-Points specified in the plan (for example, s.half includes 0.2 CPU-Points, and a baseline performance of 20% CPU utilization)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account in the same region with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs in the same region with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of the two available cores over 30 days on a s.1 VM, which has 0.4 plan cpu-points. Your VM will need an additional 0.6 burst points for every five-minute interval in the month, on top of the 0.4 baseline performance included in the plan. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2023-01-08T21:01:27Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 164.90.140.121 / 2604:a880:800:10::a73:1 (New York)&lt;br /&gt;
* 161.35.81.251 / 2a03:b0c0:2:d0::ed8:f001 (Amsterdam)&lt;br /&gt;
* 24.199.97.144 / 2604:a880:4:1d0::73e:6000 (San Francisco)&lt;br /&gt;
* 46.101.19.128 / 2a03:b0c0:1:d0::1091:d001 (London)&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Application_Templates</id>
		<title>Application Templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Application_Templates"/>
				<updated>2022-04-22T17:37:39Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Application templates allow you to quickly spin up a ubuntu virtual machine with preinstalled software.&lt;br /&gt;
&lt;br /&gt;
We have templates for:&lt;br /&gt;
&lt;br /&gt;
* LAMP stack - Apache, MySQL, PHP&lt;br /&gt;
* LEMP stack - nginx, MySQL, PHP&lt;br /&gt;
* [https://gitlab.com/ GitLab] - web management of git repositories&lt;br /&gt;
* [https://owncloud.org/ OwnCloud] - file synchronization and sharing platform&lt;br /&gt;
* [https://wordpress.com/ WordPress] - blog software&lt;br /&gt;
* [http://dokku.viewdocs.io/dokku/ Dokku] - single-server git-push-to-deploy PaaS&lt;br /&gt;
&lt;br /&gt;
All templates use Ubuntu 20.04 64-bit.&lt;br /&gt;
&lt;br /&gt;
After the VM is provisioned, you will receive an e-mail with details on how to proceed. In general, any login information will be written to /home/ubuntu/application.txt.&lt;br /&gt;
&lt;br /&gt;
== LAMP and LEMP ==&lt;br /&gt;
&lt;br /&gt;
These templates come with basic webserver and database installed. For PHP, mod_php is used for Apache and php5-fpm for nginx.&lt;br /&gt;
&lt;br /&gt;
The web root directory and MySQL root password can be found in /home/ubuntu/application.txt.&lt;br /&gt;
&lt;br /&gt;
We include a script /opt/ssl.py that will set up your webserver to support SSL, and to automatically obtain and renew SSL certificates via Let's Encrypt. To use it, pass the domains that will be served to the script, e.g. &amp;lt;tt&amp;gt;/opt/ssl.py example.com www.example.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== GitLab ==&lt;br /&gt;
&lt;br /&gt;
GitLab is a git repository management tool that includes features such as pull requests, issue tracking, and wikis.&lt;br /&gt;
&lt;br /&gt;
After the VM is provisioned, go to http://[VM external IP]/ and enter a password. You will then be prompted to login; the username is &amp;quot;root&amp;quot;, and the password is what you just entered.&lt;br /&gt;
&lt;br /&gt;
== OwnCloud ==&lt;br /&gt;
&lt;br /&gt;
After the VM is provisioned, go to http://[VM external IP]/ and enter the initial account information.&lt;br /&gt;
&lt;br /&gt;
The MySQL login details for both the root database user and the OwnCloud database can be found in /home/ubuntu/application.txt. OwnCloud will be configured to automatically detect the MySQL database, so you do not ordinarily need to use this.&lt;br /&gt;
&lt;br /&gt;
We include a script /opt/ssl.py that will set up your webserver to support SSL, and to automatically obtain and renew SSL certificates via Let's Encrypt. To use it, pass the domains that will be served to the script, e.g. &amp;lt;tt&amp;gt;/opt/ssl.py example.com www.example.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== WordPress ==&lt;br /&gt;
&lt;br /&gt;
After the VM is provisioned, go to http://[VM external IP]/ and enter the initial account information and other configuration details.&lt;br /&gt;
&lt;br /&gt;
The MySQL login details for both the root database user and the WordPress database can be found in /home/ubuntu/application.txt. WordPress will be configured to automatically detect the MySQL database, so you do not ordinarily need to use this.&lt;br /&gt;
&lt;br /&gt;
We include a script /opt/ssl.py that will set up your webserver to support SSL, and to automatically obtain and renew SSL certificates via Let's Encrypt. To use it, pass the domains that will be served to the script, e.g. &amp;lt;tt&amp;gt;/opt/ssl.py example.com www.example.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Dokku ==&lt;br /&gt;
&lt;br /&gt;
If you selected an SSH key when provisioning the VM, then Dokku will already be set up with the key. Otherwise, go to http://[VM external IP]/ to configure Dokku.&lt;br /&gt;
&lt;br /&gt;
You can modify the hostname used by Dokku later by editing /home/dokku/HOSTNAME.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Frequently_asked_questions</id>
		<title>Frequently asked questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Frequently_asked_questions"/>
				<updated>2021-02-24T20:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* I cannot login as root! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cannot connect with SSH to newly booted VM ===&lt;br /&gt;
&lt;br /&gt;
The provisioning and booting process may take as long as five minutes in some cases, depending on the specific operating system you are selecting. You can monitor progress over VNC by hitting the VNC Connection button. Once booted, you will be able to authenticate via SSH using the username and password displayed on the virtual machine page (or SSH key if you specified one).&lt;br /&gt;
&lt;br /&gt;
Note that if you selected an image marked &amp;quot;ISO&amp;quot; when provisioning the VM, you will have to install the operating system via VNC. If you simply want a ready-made VM up and running, you should select an image marked &amp;quot;template&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
=== I cannot ping my IP address 172.20.8.187 ===&lt;br /&gt;
&lt;br /&gt;
The IP address starting with 172 is the private IP address for your VM. Go to your VM details page and look for the &amp;quot;external IP address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Do you support IPv6? ===&lt;br /&gt;
&lt;br /&gt;
Yes! We support IPv6 in Toronto. Virtual machines are automatically assigned an IPv6 address via SLAAC. User-created virtual networks receive a /64 IPv6 allocation, and virtual machines created on such networks can use any address on the allocated subnet.&lt;br /&gt;
&lt;br /&gt;
=== How to resize my VM? ===&lt;br /&gt;
&lt;br /&gt;
To resize your VM, select the VM and use the Resize utility.&lt;br /&gt;
&lt;br /&gt;
Note that the resize will fail if you attempt to resize a local-storage-backed instance to a plan with a smaller disk size. Follow these steps to resize a VM down:&lt;br /&gt;
&lt;br /&gt;
* Take a snapshot of the VM&lt;br /&gt;
* Once the snapshot is ready (you can monitor the progress from the Images tab), go to the Volumes tab and create a volume from the snapshot with the old snapshot size&lt;br /&gt;
* Boot a new VM with &amp;quot;Ubuntu 14.04 64-bit&amp;quot; template, and attach the volume to the VM&lt;br /&gt;
* Assuming that the volume is attached at /dev/vdc, run &amp;lt;tt&amp;gt;resize2fs /dev/vdc1 10G&amp;lt;/tt&amp;gt; (replacing 10G with desired size in gigabytes; aim for as small a size as possible, so that the partition and disk will fit)&lt;br /&gt;
* Then, run fdisk /dev/vdc and re-create the partition; make sure the start sector is the same, and also make sure to set the bootable flag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# fdisk /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 37.6 GB, 37580963840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 573440 cylinders, total 73400320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000d8e94&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/vdc1   *        2048    73400319    36699136   83  Linux&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d 1&lt;br /&gt;
Selected partition 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Partition type:&lt;br /&gt;
   p   primary (0 primary, 0 extended, 4 free)&lt;br /&gt;
   e   extended&lt;br /&gt;
Select (default p): &lt;br /&gt;
Using default response p&lt;br /&gt;
Partition number (1-4, default 1): &lt;br /&gt;
Using default value 1&lt;br /&gt;
First sector (2048-73400319, default 2048): &lt;br /&gt;
Using default value 2048&lt;br /&gt;
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319): 33556479&lt;br /&gt;
&lt;br /&gt;
Command (m for help): a&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above, to calculate the last sector, you can try multiplying the default last sector by the fraction that you're resizing down; e.g. if resizing from 35 GB to 15 GB, multiply (73400319 / 35 * 14) (we use 14 instead of just 15 since the partition table and other elements take up some space; do make sure that the filesystem has been resized to less than this many GB in the &amp;lt;tt&amp;gt;resize2fs&amp;lt;/tt&amp;gt; command earlier).&lt;br /&gt;
&lt;br /&gt;
* Create a new volume with the desired size, and attach it to the same VM&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;fdisk /dev/vdd&amp;lt;/tt&amp;gt; to create identical partitions on the new volume&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;dd if=/dev/vdc1 of=/dev/vdd1 bs=64k&amp;lt;/tt&amp;gt; to copy data from the partition on the old volume to the partition on the new volume&lt;br /&gt;
* Detach both volumes from the VM, and delete the volume with old size&lt;br /&gt;
* Select the volume with new size from the Volumes tab, and convert it to an image&lt;br /&gt;
* Boot the new VM from the image&lt;br /&gt;
&lt;br /&gt;
=== Unable to attach volume to my Windows VM ===&lt;br /&gt;
&lt;br /&gt;
Volumes are best used with Linux virtual machines using the virtio driver. If you are using another operating system or ide driver, then you likely will need to shut down the VM before attaching or detaching volumes. You may also need to specify the attachment target as /dev/hdc or /dev/hdd or etc.&lt;br /&gt;
&lt;br /&gt;
=== What is the default username for virtual machines provisioned using the stock templates ===&lt;br /&gt;
The administrative username for template-based virtual machines are as the following:&lt;br /&gt;
*Ubuntu: ubuntu&lt;br /&gt;
*Debian: debian&lt;br /&gt;
*CentOS: cloud-user / centos&lt;br /&gt;
*Fedora: fedora&lt;br /&gt;
*CoreOS: core&lt;br /&gt;
&lt;br /&gt;
=== I cannot login as root! ===&lt;br /&gt;
&lt;br /&gt;
Virtual machines are configured by default to accept logins over SSH as an administrative user (e.g. &amp;quot;ubuntu&amp;quot; or &amp;quot;centos&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Once authenticated as the administrative user, you can execute &amp;lt;tt&amp;gt;sudo su -&amp;lt;/tt&amp;gt; to login as root.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can configure your VM so that you can directly login over SSH as root. To do so:&lt;br /&gt;
&lt;br /&gt;
# Login as the administrative user, then run &amp;lt;tt&amp;gt;sudo su -&amp;lt;/tt&amp;gt; to login as root&lt;br /&gt;
# Set a root user password: run &amp;lt;tt&amp;gt;passwd&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;service ssh restart; service sshd restart&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then logout and you should be able to authenicate via SSH directly as the root user with your newly set password.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use a [[Startup scripts|startup script]] so that the root password is set when the VM boots.&lt;br /&gt;
&lt;br /&gt;
Note: use an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] to authenticate.&lt;br /&gt;
&lt;br /&gt;
Please note that our services are unmanaged and you are responsible or the security of your VM; if your VM is taken over and used in denial of service attacks, spam, or other activities that violate our [https://dynamic.lunanode.com/terms terms of service], your account may be suspended depending on the circumstances.&lt;br /&gt;
&lt;br /&gt;
=== Is additional bandwidth usage billed hourly? ===&lt;br /&gt;
&lt;br /&gt;
Bandwidth is billed as a '''consumable resource''', i.e., you are charged for the amount that you use; it is not per-hour or per-month since there is no timespan. Bandwidth allocations from VM plans are allocated on a per-calendar-month basis. So, if you have an s.half VM and use 1500 GB bandwidth in a month (500 GB over the plan allocation), then you will be billed $0.003 for each additional GB ($1.50 total), and it does not matter how many hours it took you to use that 500 GB.&lt;br /&gt;
&lt;br /&gt;
=== My disk space is smaller than the plan disk ===&lt;br /&gt;
&lt;br /&gt;
Almost all of the templates will automatically resize the partition and filesystem the first time that the virtual machine boots. If you install from ISO, you can also choose the partitioning scheme.&lt;br /&gt;
&lt;br /&gt;
So, if you are having this problem where filesystem doesn't actually get resized, it likely means you are using the CentOS 6 template, which does not support automatic filesystem resizing. You can instead run the following commands to manually resize the partition/filesystem:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
fdisk /dev/vda&lt;br /&gt;
&amp;gt; u&lt;br /&gt;
(this will switch units to sector; it is important that you use sectors and not cylinders!)&lt;br /&gt;
&amp;gt; p&lt;br /&gt;
(this will print all of the partitions, we will refer to the data later)&lt;br /&gt;
&amp;gt; d 1&lt;br /&gt;
(this will display &amp;quot;Selected partition 1&amp;quot; and delete the first partition)&lt;br /&gt;
&amp;gt; n&lt;br /&gt;
(select &amp;quot;p&amp;quot; for primary partition)&lt;br /&gt;
(partition number should be 1, but make sure it matches the number displayed in print command)&lt;br /&gt;
(first sector should be 2048, but make sure it matches the &amp;quot;Start&amp;quot; column displayed in print command)&lt;br /&gt;
(and set last sector to the default value)&lt;br /&gt;
&amp;gt; a&lt;br /&gt;
(type &amp;quot;1&amp;quot; to make new first partition bootable)&lt;br /&gt;
&amp;gt; w&lt;br /&gt;
(this will write the new partitions and exit fdisk)&lt;br /&gt;
shutdown -r 0&lt;br /&gt;
(connect to VM after it reboots, if it has resized partition but not filesystem then run resize2fs)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: when creating the new partition, make sure that the first sector matches the sector displayed in print command (typically 2048). The default option that fdisk will provide is incorrect.&lt;br /&gt;
&lt;br /&gt;
=== The VNC connection doesn't work for me ===&lt;br /&gt;
&lt;br /&gt;
This is usually caused by a firewall on your computer, router, or at your ISP; or because of outdated browser software. If you are using the noVNC client, first try switching to another browser and see if it works there.&lt;br /&gt;
&lt;br /&gt;
If it still doesn't connect (e.g. you get &amp;quot;Connection Timeout&amp;quot; error), then you can try to use the VNC tunnel connection method so that you can use your own desktop VNC client instead of noVNC. To do this, go to the Account tab in the top right, scroll down to VNC Connection Method, and change to tunnel. Then, when you click the VNC button, you will be given VNC login details that you can plug into your desktop VNC client to connect to your virtual machine instance.&lt;br /&gt;
&lt;br /&gt;
Note: you may have to subtract 5900 from the port provided by the tunnel in some cases. So for example, if the panel says to connect to 167.114.159.49:6105, and that doesn't work, then also try connecting to 167.114.159.49:205.&lt;br /&gt;
&lt;br /&gt;
=== Can I shutdown my VMs to avoid being billed? ===&lt;br /&gt;
&lt;br /&gt;
You can use the Shelve functionality to deactivate your virtual machine. Once a VM is shelved, you will only be billed for the storage space, at $0.03/GB/mo, and assigned IP addresses, at $1/mo (both fees are charged hourly); the pricing change will be reflected in the billing section of the panel dashboard. You can reactivate the VM at any time by pressing Unshelve from the VM details.&lt;br /&gt;
&lt;br /&gt;
=== Why is my geo-location database showing the IP address in an incorrect location? ===&lt;br /&gt;
&lt;br /&gt;
We set standard Referral Whois (RWhois) records that indicate the exact location of all IP addresses that we operate. If your geo-location database does not show the correct location for our IP addresses, that means that the database provider is not checking our RWhois records. You would need to direct questions regarding the inaccuracy of their database to them. Please do not contact us with any questions about IP geo-location as we do not maintain these databases.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2019-04-11T17:05:48Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Paying for CPU Performance above the Baseline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node General-Purpose and Memory-Optimized virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
Compute-Optimized virtual machines are assigned dedicated CPU cores.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 100% CPU utilization for every 1.0 CPU-Points specified in the plan (for example, s.half includes 0.2 CPU-Points, and a baseline performance of 20% CPU utilization)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of the two available cores over 30 days on a s.1 VM, which has 0.4 plan cpu-points. Your VM will need an additional 0.6 burst points for every five-minute interval in the month, on top of the 0.4 baseline performance included in the plan. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/API</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/API"/>
				<updated>2018-12-17T23:15:53Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''For the latest API documentation, refer to https://www.lunanode.com/api/overview'''&lt;br /&gt;
&lt;br /&gt;
The Luna Node Dynamic API enables you to write software to automate VM management. This page details how the API can be accessed. Visit the [https://dynamic.lunanode.com/panel/api API tab] to manage your API keys.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each API token consists of an API ID and an API key. Both are needed for authentication of all API commands.&lt;br /&gt;
&lt;br /&gt;
API actions consist of a category label, action label, and a set of parameters. For example, to start a VM, the category label is &amp;quot;vm&amp;quot;, action label is &amp;quot;start&amp;quot;, and a &amp;quot;vm_id&amp;quot; parameter must be set. [[API#Action_list|See the full API action list.]]&lt;br /&gt;
&lt;br /&gt;
API requests are made over HTTPS. Once the server completes processing of your request, it will return a JSON-encoded response.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
We provide open source (under MIT License) [https://github.com/LunaNode/lndynamic-api PHP and Python libraries] for accessing the Luna Node Dynamic API. These libraries make interaction with the API easier, handling transaction from category, action, and parameters to the HTTPS request, and from the JSON-encoded response to a PHP associative array or Python dictionary. [https://github.com/LunaNode/lndynamic-api Get the libraries here.]&lt;br /&gt;
&lt;br /&gt;
Third party libraries are also available:&lt;br /&gt;
&lt;br /&gt;
* Golang: a [https://github.com/LunaNode/lobster/tree/master/vmi/lunanode Golang client API] is available as part of the Lobster project.&lt;br /&gt;
* C#: [https://github.com/rickparrish/lndapi rickparrish/lndapi] is a C# API wrapper.&lt;br /&gt;
* PHP: [https://github.com/sdavis1902/lunanode-api-php sdavis1902/lunanode-api-php]&lt;br /&gt;
* Ruby: [https://github.com/nomoon/lunanode nomoon/lunanode] Ruby Gem&lt;br /&gt;
&lt;br /&gt;
If you are using another programming language, you can view the API call [[API#Technical_details|technical details]] below. You may also find it easier to implement the [[API#Legacy_API|Legacy API]].&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
List your virtual machines:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once('lndynamic.php');&lt;br /&gt;
$api_id = 'YOUR API ID';&lt;br /&gt;
$api_key = 'YOUR API KEY';&lt;br /&gt;
$api = new LNDynamic($api_id, $api_key);&lt;br /&gt;
print_r($api-&amp;gt;request('vm', 'list'));&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;from lndynamic import LNDynamic&lt;br /&gt;
api_id = 'YOUR API ID'&lt;br /&gt;
api_key = 'YOUR API KEY'&lt;br /&gt;
api = LNDynamic(api_id, api_key)&lt;br /&gt;
print api.request('vm', 'list')&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recreate a VM with the same IP:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once('lndynamic.php');&lt;br /&gt;
$api_id = 'YOUR API ID';&lt;br /&gt;
$api_key = 'YOUR API KEY';&lt;br /&gt;
$target_vm_name = 'myvm';&lt;br /&gt;
$target_image_name = 'Ubuntu 14.04 64-bit (template)';&lt;br /&gt;
$api = new LNDynamic($api_id, $api_key);&lt;br /&gt;
&lt;br /&gt;
// find the target virtual machine ID&lt;br /&gt;
$vms = $api-&amp;gt;request('vm', 'list');&lt;br /&gt;
$target_vm_id = false;&lt;br /&gt;
&lt;br /&gt;
foreach($vms['vms'] as $vm) {&lt;br /&gt;
	if(strcasecmp($vm['name'], $target_vm_name) === 0) {&lt;br /&gt;
		$target_vm_id = $vm['vm_id'];&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//find the target image ID&lt;br /&gt;
$images = $api-&amp;gt;request('image', 'list');&lt;br /&gt;
$target_image_id = false;&lt;br /&gt;
&lt;br /&gt;
foreach($images['images'] as $image) {&lt;br /&gt;
	if(strcasecmp($image['name'], $target_image_name) === 0) {&lt;br /&gt;
		$target_image_id = $image['image_id'];&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($target_vm_id === false) {&lt;br /&gt;
	die('No VM found!');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($target_image_id === false) {&lt;br /&gt;
	die('No image found!');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// disassociate the IP address&lt;br /&gt;
$info = $api-&amp;gt;request('vm', 'info', array('vm_id' =&amp;gt; $target_vm_id));&lt;br /&gt;
if(empty($info['info']['ip'])) {&lt;br /&gt;
	die('VM does not have IP!');&lt;br /&gt;
}&lt;br /&gt;
$api-&amp;gt;request('vm', 'floatingip-delete', array('vm_id' =&amp;gt; $target_vm_id, 'keep' =&amp;gt; 'yes'));&lt;br /&gt;
$api-&amp;gt;request('vm', 'delete', array('vm_id' =&amp;gt; $target_vm_id));&lt;br /&gt;
$api-&amp;gt;request('vm', 'create', array('hostname' =&amp;gt; $info['info']['hostname'], 'plan_id' =&amp;gt; $info['extra']['plan_id'], 'image_id' =&amp;gt; $target_image_id, 'ip' =&amp;gt; $info['info']['ip']));&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical details ===&lt;br /&gt;
&lt;br /&gt;
A request can be made given an API ID, API key, category, action, and parameters. The steps are described below. See the code of [https://github.com/LunaNode/lndynamic-api provided API libraries] for more details.&lt;br /&gt;
&lt;br /&gt;
* Create request array by taking parameters and adding &amp;quot;api_id&amp;quot; =&amp;gt; API ID and &amp;quot;api_partialkey&amp;quot; =&amp;gt; first 64 characters of API key.&lt;br /&gt;
* JSON-encode the request array to get a '''raw request message'''.&lt;br /&gt;
* The '''nonce''' is the current UTC time in seconds since epoch (in PHP, &amp;lt;code&amp;gt;$nonce = time();&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The handler path is &amp;quot;{category}/{action}/&amp;quot;&lt;br /&gt;
* The target URL is https://dynamic.lunanode.com/api/{handler_path}&lt;br /&gt;
* Calculate the signature as SHA512-HMAC(&amp;quot;{handler path}|{raw request message}|{nonce}&amp;quot;), using the API key as the HMAC key; here, we are signing the string formed from concatenating handler path, raw request message, and nonce delimited by pipe (|) characters&lt;br /&gt;
* Submit POST request to target URL with these form keys:&lt;br /&gt;
** '''req''': the raw request message&lt;br /&gt;
** '''signature''': the hex-digest output of the SHA512-HMAC&lt;br /&gt;
** '''nonce''': the nonce value&lt;br /&gt;
* The server's response will be a JSON-encoded associative array.&lt;br /&gt;
&lt;br /&gt;
=== Legacy API ===&lt;br /&gt;
&lt;br /&gt;
The legacy API uses simple GET and POST requests for each API action. All API actions are submitted via https://dynamic.lunanode.com/api&lt;br /&gt;
&lt;br /&gt;
For example, to get the info for a virtual machine with hostname &amp;quot;hostname.example.tld&amp;quot;, you can use the following API actions (find the ID for the hostname, then get the info from the ID):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://dynamic.lunanode.com/api?api_id=YOUR_API_ID&amp;amp;api_key=YOUR_API_KEY&amp;amp;category=vm&amp;amp;action=list&lt;br /&gt;
https://dynamic.lunanode.com/api?api_id=YOUR_API_ID&amp;amp;api_key=YOUR_API_KEY&amp;amp;category=vm&amp;amp;action=info&amp;amp;vm_id=FOUND_VM_ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The legacy API isn't necessarily less secure than the newer API, as either way all API actions are encrypted under HTTPS; however, the new API does offer greater protection against timing attacks and hides the API key even if an attacker were able to successfully forge an SSL certificate. So, we encourage usage of the new API where it is not inconvenient, but we plan to maintain the legacy API indefinitely.&lt;br /&gt;
&lt;br /&gt;
== Action list ==&lt;br /&gt;
&lt;br /&gt;
This list serves as a reference for available API actions. See [[API Detail]] for additional details for some API operations.&lt;br /&gt;
&lt;br /&gt;
=== Virtual machine ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|start&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|stop&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|reboot&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|diskswap&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|info&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|delete&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|reimage&lt;br /&gt;
|vm_id, image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|resize&lt;br /&gt;
|vm_id, plan_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|rescue&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|vnc&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|floatingip-add&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string unattached floating IP address on your account), private_ip (string internal IP on VM)&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|floatingip-delete&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string floating IP attached to VM), keep ('yes' to keep floating IP on account; default 'no')&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|iplist&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|ip-add&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string unallocated IP in virtual network)&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|ip-delete&lt;br /&gt;
|vm_id, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|securitygroup-add&lt;br /&gt;
|vm_id, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|securitygroup-remove&lt;br /&gt;
|vm_id, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|create&lt;br /&gt;
|hostname, plan_id, image_id&lt;br /&gt;
|region (default 'toronto'), ip (a floating IP on your account), net_id, securitygroups, scripts, volume_id, volume_virtio, key_id, set_password, affinity_group&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|snapshot&lt;br /&gt;
|vm_id, name (e.g. 'mysnapshot')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|shelve&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|unshelve&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|rename&lt;br /&gt;
|vm_id, hostname&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: for create command, net_id is a network ID number, securitygroups is a comma-separated list of security group ID numbers, scripts is a comma-separated list of script ID numbers, volume_id is the ID number of an unattached volume that the new VM should be booted from (if volume_id is set, image_id is not required), and affinity_group is an affinity group UUID. Also, if volume_id is set, then the driver is ide if volume_virtio is not set, or virtio of volume_virtio is set (value of volume_virtio is ignored). Finally, key_id is an [https://dynamic.lunanode.com/panel/key SSH keypair ID], and set_password can be set if you want the system to add a startup script to set a randomly generated password (this is ignored if key_id is set; also, the system will set password by default for official templates).&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
&lt;br /&gt;
API calls relating to DNS are listed below (see next section for Legacy DNS).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-add&lt;br /&gt;
|name (e.g. 'example.com'), ttl&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-remove&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-list&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-add&lt;br /&gt;
|zone_id, name, data, ttl, type&lt;br /&gt;
|policy, weight, region, regiongroup, country, continent, global, latitude, longitude, aux, monitor_id, orig_record_id&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-remove&lt;br /&gt;
|zone_id, record_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here are details for parameters to the '''record-add''' action:&lt;br /&gt;
&lt;br /&gt;
* '''name''': e.g. 'blah' or 'blah.example.com.' for 'blah.example.com.'&lt;br /&gt;
* '''data''': the record contents, e.g. '1.2.3.4' for an A record or 'other.example.org.' for a CNAME/MX record&lt;br /&gt;
* '''ttl''': time-to-live, e.g. 3600&lt;br /&gt;
* '''type''': one of 'A', 'AAAA', 'CNAME', 'ALIAS', 'MX', 'NS', 'TXT', 'SPF', 'SRV'&lt;br /&gt;
* '''policy (optional)''': geo-targeting policy, 'none' for no geo-targeting, 'latlong' to route to record with closest latitude/longitude to the user's location, and 'region' for hierarchical region-based routing&lt;br /&gt;
* '''weight (optional)''': the record weight (this is used for load balancing or non-round-robin DNS failover)&lt;br /&gt;
* '''region, regiongroup, country, continent, global (optional)''': parameters for hierarchical region-based routing, see the UI for details (set global to 'no' to disable for global group)&lt;br /&gt;
* '''latitude, longitude (optional)''': latitude/longitude for 'latlong' policy&lt;br /&gt;
* '''aux (optional)''': priority for certain record types, such as MX and SRV&lt;br /&gt;
* '''monitor_id (optional)''': the ID of a monitor check (see monitor.check-list action), this record will be disabled if the check fails&lt;br /&gt;
* '''orig_record_id (optional)''': update an existing record with the specified ID instead of creating a new record&lt;br /&gt;
&lt;br /&gt;
=== Legacy DNS ===&lt;br /&gt;
&lt;br /&gt;
API calls relating to Legacy DNS are listed below. Valid DNS record types are 'A', 'AAAA', 'CNAME', 'HINFO', 'MX', 'NAPTR', 'NS', 'PTR', 'RP', 'SRV', and 'TXT'.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|set&lt;br /&gt;
|ip, hostname&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-add&lt;br /&gt;
|origin (e.g., 'example.tld.')&lt;br /&gt;
|ttl&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-remove&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-list&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-add&lt;br /&gt;
|zone_id, name (e.g., 'www'), data (e.g., '1.2.3.4'), ttl, type&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-remove&lt;br /&gt;
|record_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-add&lt;br /&gt;
|name, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-update&lt;br /&gt;
|dyn_id, name, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-remove&lt;br /&gt;
|dyn_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Image ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|region (will show images across all regions by default)&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|delete&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|details&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|replicate&lt;br /&gt;
|image_id, region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|fetch&lt;br /&gt;
|region, name, location, format ('iso' or 'qcow2')&lt;br /&gt;
|virtio&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|retrieve&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|rename&lt;br /&gt;
|image_id, name&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
image.fetch fetches an image from an external source. image.retrieve sends the contents of an existing image as the response body.&lt;br /&gt;
&lt;br /&gt;
=== Volume ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|list&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|create&lt;br /&gt;
|region, label (e.g. 'myvolume'), size (in GB)&lt;br /&gt;
|image, snapshot_id&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|delete&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|attach&lt;br /&gt;
|region, volume_id, vm_id, target (e.g. 'auto' or '/dev/vdc')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|detach&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|info&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|extend&lt;br /&gt;
|region, volume_id, size (in GB)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-create&lt;br /&gt;
|region, volume_id, label&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-delete&lt;br /&gt;
|region, snapshot_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-list&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-replicate&lt;br /&gt;
|region, snapshot_id, image_name (e.g. 'myimage'), dst_region (e.g. 'toronto')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|rename&lt;br /&gt;
|volume_id, name&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For volume creation, if image parameter (which should be an image ID) and snapshot_id parameter are not set, then an empty volume will be created. If both are set, an error will be returned.&lt;br /&gt;
&lt;br /&gt;
=== Floating IP ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|add&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|delete&lt;br /&gt;
|region, ip&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Virtual Network ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|region&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|create&lt;br /&gt;
|region, name, subnet (e.g. '192.168.30' for 192.168.30.0/24), dns (e.g. '8.8.8.8,8.8.4.4')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|delete&lt;br /&gt;
|region, net_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load Balancer ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|list&lt;br /&gt;
|region&lt;br /&gt;
|net_id&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|create&lt;br /&gt;
|region, net_id, name, method ('ROUND_ROBIN', 'LEAST_CONNECTIONS', or 'SOURCE_IP'), protocol ('HTTP', 'HTTPS', or 'TCP'), connection_limit (-1 for unlimited), port&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|delete&lt;br /&gt;
|region, lb_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|info&lt;br /&gt;
|region, lb_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|member_add&lt;br /&gt;
|region, lb_id, ip, port&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|member_remove&lt;br /&gt;
|region, lb_id, member_id (see lb/info output)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|associate&lt;br /&gt;
|region, lb_id, ip&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plan and region ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|plan&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|region&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Server monitoring ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-types&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-add&lt;br /&gt;
|name, type, fail_count, success_count, check_interval, (also any parameters needed from check-types)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-remove&lt;br /&gt;
|check_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-add&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-remove&lt;br /&gt;
|type ('email', 'sms_twilio', or 'http'), rel (e-mail address, phone number, or URL)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-list&lt;br /&gt;
|check_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-add&lt;br /&gt;
|check_id, contact_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-remove&lt;br /&gt;
|alert_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Security groups ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|create&lt;br /&gt;
|region, name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|delete&lt;br /&gt;
|region, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rename&lt;br /&gt;
|region, group_id, name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-list&lt;br /&gt;
|region, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-insert&lt;br /&gt;
|region, group_id, direction ('ingress' or 'egress'), type (4 or 6), protocol ('*', 'tcp', 'udp', or 'icmp'), remote_type ('cidr' or 'group'), remote_value (CIDR or group ID)&lt;br /&gt;
|port_min, port_max, label&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-delete&lt;br /&gt;
|region, group_id, rule_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Startup scripts ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|get&lt;br /&gt;
|script_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|create&lt;br /&gt;
|name, content&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|update&lt;br /&gt;
|script_id, name, content&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|delete&lt;br /&gt;
|script_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Billing ===&lt;br /&gt;
&lt;br /&gt;
You can check your credit balance from the API.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|billing&lt;br /&gt;
|credit&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-mail ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|usage&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-add&lt;br /&gt;
|name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-remove&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-dkim-set&lt;br /&gt;
|domain_id, selector, private_key&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-dkim-unset&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-list&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-add&lt;br /&gt;
|domain_id, username, password&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-set-password&lt;br /&gt;
|domain_id, user_id, password&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-remove&lt;br /&gt;
|domain_id, user_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-list&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-add&lt;br /&gt;
|domain_id, name, target&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-remove&lt;br /&gt;
|domain_id, alias_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-12-08T03:28:22Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
* [[Hosted E-mail]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-11-30T17:45:16Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Managed Support]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
* [[Hosted E-mail]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-11-30T17:45:10Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info.php General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Managed Support]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
* [[Hosted E-mail]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Frequently_asked_questions</id>
		<title>Frequently asked questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Frequently_asked_questions"/>
				<updated>2018-08-10T20:57:14Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Is additional bandwidth usage billed hourly? What about CPU usage for flexible plans? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cannot connect with SSH to newly booted VM ===&lt;br /&gt;
&lt;br /&gt;
The provisioning and booting process may take as long as five minutes in some cases, depending on the specific operating system you are selecting. You can monitor progress over VNC by hitting the VNC Connection button. Once booted, you will be able to authenticate via SSH using the username and password displayed on the virtual machine page (or SSH key if you specified one).&lt;br /&gt;
&lt;br /&gt;
Note that if you selected an image marked &amp;quot;ISO&amp;quot; when provisioning the VM, you will have to install the operating system via VNC. If you simply want a ready-made VM up and running, you should select an image marked &amp;quot;template&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
=== I cannot ping my IP address 172.20.8.187 ===&lt;br /&gt;
&lt;br /&gt;
The IP address starting with 172 is the private IP address for your VM. Go to your VM details page and look for the &amp;quot;external IP address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Do you support IPv6? ===&lt;br /&gt;
&lt;br /&gt;
Yes! We support IPv6 in Toronto. Virtual machines are automatically assigned an IPv6 address via SLAAC. User-created virtual networks receive a /64 IPv6 allocation, and virtual machines created on such networks can use any address on the allocated subnet.&lt;br /&gt;
&lt;br /&gt;
=== How to resize my VM? ===&lt;br /&gt;
&lt;br /&gt;
To resize your VM, select the VM and use the Resize utility.&lt;br /&gt;
&lt;br /&gt;
Note that the resize will fail if you attempt to resize a local-storage-backed instance to a plan with a smaller disk size. Follow these steps to resize a VM down:&lt;br /&gt;
&lt;br /&gt;
* Take a snapshot of the VM&lt;br /&gt;
* Once the snapshot is ready (you can monitor the progress from the Images tab), go to the Volumes tab and create a volume from the snapshot with the old snapshot size&lt;br /&gt;
* Boot a new VM with &amp;quot;Ubuntu 14.04 64-bit&amp;quot; template, and attach the volume to the VM&lt;br /&gt;
* Assuming that the volume is attached at /dev/vdc, run &amp;lt;tt&amp;gt;resize2fs /dev/vdc1 10G&amp;lt;/tt&amp;gt; (replacing 10G with desired size in gigabytes; aim for as small a size as possible, so that the partition and disk will fit)&lt;br /&gt;
* Then, run fdisk /dev/vdc and re-create the partition; make sure the start sector is the same, and also make sure to set the bootable flag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# fdisk /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 37.6 GB, 37580963840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 573440 cylinders, total 73400320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000d8e94&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/vdc1   *        2048    73400319    36699136   83  Linux&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d 1&lt;br /&gt;
Selected partition 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Partition type:&lt;br /&gt;
   p   primary (0 primary, 0 extended, 4 free)&lt;br /&gt;
   e   extended&lt;br /&gt;
Select (default p): &lt;br /&gt;
Using default response p&lt;br /&gt;
Partition number (1-4, default 1): &lt;br /&gt;
Using default value 1&lt;br /&gt;
First sector (2048-73400319, default 2048): &lt;br /&gt;
Using default value 2048&lt;br /&gt;
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319): 33556479&lt;br /&gt;
&lt;br /&gt;
Command (m for help): a&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above, to calculate the last sector, you can try multiplying the default last sector by the fraction that you're resizing down; e.g. if resizing from 35 GB to 15 GB, multiply (73400319 / 35 * 14) (we use 14 instead of just 15 since the partition table and other elements take up some space; do make sure that the filesystem has been resized to less than this many GB in the &amp;lt;tt&amp;gt;resize2fs&amp;lt;/tt&amp;gt; command earlier).&lt;br /&gt;
&lt;br /&gt;
* Create a new volume with the desired size, and attach it to the same VM&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;fdisk /dev/vdd&amp;lt;/tt&amp;gt; to create identical partitions on the new volume&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;dd if=/dev/vdc1 of=/dev/vdd1 bs=64k&amp;lt;/tt&amp;gt; to copy data from the partition on the old volume to the partition on the new volume&lt;br /&gt;
* Detach both volumes from the VM, and delete the volume with old size&lt;br /&gt;
* Select the volume with new size from the Volumes tab, and convert it to an image&lt;br /&gt;
* Boot the new VM from the image&lt;br /&gt;
&lt;br /&gt;
=== Unable to attach volume to my Windows VM ===&lt;br /&gt;
&lt;br /&gt;
Volumes are best used with Linux virtual machines using the virtio driver. If you are using another operating system or ide driver, then you likely will need to shut down the VM before attaching or detaching volumes. You may also need to specify the attachment target as /dev/hdc or /dev/hdd or etc.&lt;br /&gt;
&lt;br /&gt;
=== What is the default username for virtual machines provisioned using the stock templates ===&lt;br /&gt;
The administrative username for template-based virtual machines are as the following:&lt;br /&gt;
*Ubuntu: ubuntu&lt;br /&gt;
*Debian: debian&lt;br /&gt;
*CentOS: cloud-user / centos&lt;br /&gt;
*Fedora: fedora&lt;br /&gt;
*CoreOS: core&lt;br /&gt;
&lt;br /&gt;
=== I cannot login as root! ===&lt;br /&gt;
&lt;br /&gt;
As stated in the &amp;quot;VM provisioned successfully&amp;quot; email, template-based virtual machines are configured to accept connections with the administrative user. The password is displayed on the virtual machine details page. For security reasons, the VM does not accept root login by default.&lt;br /&gt;
&lt;br /&gt;
Once authenticated as the administrative user, you can execute &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt; to login as root.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can of course set a root password. First, login as root by authenticating with the administrative user and running &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt;. Then, run &amp;lt;tt&amp;gt;passwd&amp;lt;/tt&amp;gt; to set a root user password. Finally, edit the SSH configuration:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config&lt;br /&gt;
service ssh restart; service sshd restart&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then logout and you should be able to authenicate via SSH directly as the root user with your newly set password.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use a [[Startup scripts|startup script]] so that the root password is set when the VM boots.&lt;br /&gt;
&lt;br /&gt;
Note: use an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] to authenticate.&lt;br /&gt;
&lt;br /&gt;
Please note that our services are unmanaged and you are responsible or the security of your VM; if your VM is taken over and used in denial of service attacks, spam, or other activities that violate our [https://dynamic.lunanode.com/terms terms of service], your account may be suspended depending on the circumstances.&lt;br /&gt;
&lt;br /&gt;
=== Is additional bandwidth usage billed hourly? ===&lt;br /&gt;
&lt;br /&gt;
Bandwidth is billed as a '''consumable resource''', i.e., you are charged for the amount that you use; it is not per-hour or per-month since there is no timespan. Bandwidth allocations from VM plans are allocated on a per-calendar-month basis. So, if you have an s.half VM and use 1500 GB bandwidth in a month (500 GB over the plan allocation), then you will be billed $0.003 for each additional GB ($1.50 total), and it does not matter how many hours it took you to use that 500 GB.&lt;br /&gt;
&lt;br /&gt;
=== My disk space is smaller than the plan disk ===&lt;br /&gt;
&lt;br /&gt;
Almost all of the templates will automatically resize the partition and filesystem the first time that the virtual machine boots. If you install from ISO, you can also choose the partitioning scheme.&lt;br /&gt;
&lt;br /&gt;
So, if you are having this problem where filesystem doesn't actually get resized, it likely means you are using the CentOS 6 template, which does not support automatic filesystem resizing. You can instead run the following commands to manually resize the partition/filesystem:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
fdisk /dev/vda&lt;br /&gt;
&amp;gt; u&lt;br /&gt;
(this will switch units to sector; it is important that you use sectors and not cylinders!)&lt;br /&gt;
&amp;gt; p&lt;br /&gt;
(this will print all of the partitions, we will refer to the data later)&lt;br /&gt;
&amp;gt; d 1&lt;br /&gt;
(this will display &amp;quot;Selected partition 1&amp;quot; and delete the first partition)&lt;br /&gt;
&amp;gt; n&lt;br /&gt;
(select &amp;quot;p&amp;quot; for primary partition)&lt;br /&gt;
(partition number should be 1, but make sure it matches the number displayed in print command)&lt;br /&gt;
(first sector should be 2048, but make sure it matches the &amp;quot;Start&amp;quot; column displayed in print command)&lt;br /&gt;
(and set last sector to the default value)&lt;br /&gt;
&amp;gt; a&lt;br /&gt;
(type &amp;quot;1&amp;quot; to make new first partition bootable)&lt;br /&gt;
&amp;gt; w&lt;br /&gt;
(this will write the new partitions and exit fdisk)&lt;br /&gt;
shutdown -r 0&lt;br /&gt;
(connect to VM after it reboots, if it has resized partition but not filesystem then run resize2fs)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: when creating the new partition, make sure that the first sector matches the sector displayed in print command (typically 2048). The default option that fdisk will provide is incorrect.&lt;br /&gt;
&lt;br /&gt;
=== The VNC connection doesn't work for me ===&lt;br /&gt;
&lt;br /&gt;
This is usually caused by a firewall on your computer, router, or at your ISP; or because of outdated browser software. If you are using the noVNC client, first try switching to another browser and see if it works there.&lt;br /&gt;
&lt;br /&gt;
If it still doesn't connect (e.g. you get &amp;quot;Connection Timeout&amp;quot; error), then you can try to use the VNC tunnel connection method so that you can use your own desktop VNC client instead of noVNC. To do this, go to the Account tab in the top right, scroll down to VNC Connection Method, and change to tunnel. Then, when you click the VNC button, you will be given VNC login details that you can plug into your desktop VNC client to connect to your virtual machine instance.&lt;br /&gt;
&lt;br /&gt;
Note: you may have to subtract 5900 from the port provided by the tunnel in some cases. So for example, if the panel says to connect to 167.114.159.49:6105, and that doesn't work, then also try connecting to 167.114.159.49:205.&lt;br /&gt;
&lt;br /&gt;
=== Can I shutdown my VMs to avoid being billed? ===&lt;br /&gt;
&lt;br /&gt;
You can use the Shelve functionality to deactivate your virtual machine. Once a VM is shelved, you will only be billed for the storage space, at $0.03/GB/mo, and assigned IP addresses, at $1/mo (both fees are charged hourly); the pricing change will be reflected in the billing section of the panel dashboard. You can reactivate the VM at any time by pressing Unshelve from the VM details.&lt;br /&gt;
&lt;br /&gt;
=== Why is my geo-location database showing the IP address in an incorrect location? ===&lt;br /&gt;
&lt;br /&gt;
We set standard Referral Whois (RWhois) records that indicate the exact location of all IP addresses that we operate. If your geo-location database does not show the correct location for our IP addresses, that means that the database provider is not checking our RWhois records. You would need to direct questions regarding the inaccuracy of their database to them. Please do not contact us with any questions about IP geo-location as we do not maintain these databases.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Frequently_asked_questions</id>
		<title>Frequently asked questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Frequently_asked_questions"/>
				<updated>2018-08-10T20:53:01Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* How to purchase the Special XYZ plan? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cannot connect with SSH to newly booted VM ===&lt;br /&gt;
&lt;br /&gt;
The provisioning and booting process may take as long as five minutes in some cases, depending on the specific operating system you are selecting. You can monitor progress over VNC by hitting the VNC Connection button. Once booted, you will be able to authenticate via SSH using the username and password displayed on the virtual machine page (or SSH key if you specified one).&lt;br /&gt;
&lt;br /&gt;
Note that if you selected an image marked &amp;quot;ISO&amp;quot; when provisioning the VM, you will have to install the operating system via VNC. If you simply want a ready-made VM up and running, you should select an image marked &amp;quot;template&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
=== I cannot ping my IP address 172.20.8.187 ===&lt;br /&gt;
&lt;br /&gt;
The IP address starting with 172 is the private IP address for your VM. Go to your VM details page and look for the &amp;quot;external IP address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Do you support IPv6? ===&lt;br /&gt;
&lt;br /&gt;
Yes! We support IPv6 in Toronto. Virtual machines are automatically assigned an IPv6 address via SLAAC. User-created virtual networks receive a /64 IPv6 allocation, and virtual machines created on such networks can use any address on the allocated subnet.&lt;br /&gt;
&lt;br /&gt;
=== How to resize my VM? ===&lt;br /&gt;
&lt;br /&gt;
To resize your VM, select the VM and use the Resize utility.&lt;br /&gt;
&lt;br /&gt;
Note that the resize will fail if you attempt to resize a local-storage-backed instance to a plan with a smaller disk size. Follow these steps to resize a VM down:&lt;br /&gt;
&lt;br /&gt;
* Take a snapshot of the VM&lt;br /&gt;
* Once the snapshot is ready (you can monitor the progress from the Images tab), go to the Volumes tab and create a volume from the snapshot with the old snapshot size&lt;br /&gt;
* Boot a new VM with &amp;quot;Ubuntu 14.04 64-bit&amp;quot; template, and attach the volume to the VM&lt;br /&gt;
* Assuming that the volume is attached at /dev/vdc, run &amp;lt;tt&amp;gt;resize2fs /dev/vdc1 10G&amp;lt;/tt&amp;gt; (replacing 10G with desired size in gigabytes; aim for as small a size as possible, so that the partition and disk will fit)&lt;br /&gt;
* Then, run fdisk /dev/vdc and re-create the partition; make sure the start sector is the same, and also make sure to set the bootable flag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# fdisk /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 37.6 GB, 37580963840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 573440 cylinders, total 73400320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000d8e94&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/vdc1   *        2048    73400319    36699136   83  Linux&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d 1&lt;br /&gt;
Selected partition 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Partition type:&lt;br /&gt;
   p   primary (0 primary, 0 extended, 4 free)&lt;br /&gt;
   e   extended&lt;br /&gt;
Select (default p): &lt;br /&gt;
Using default response p&lt;br /&gt;
Partition number (1-4, default 1): &lt;br /&gt;
Using default value 1&lt;br /&gt;
First sector (2048-73400319, default 2048): &lt;br /&gt;
Using default value 2048&lt;br /&gt;
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319): 33556479&lt;br /&gt;
&lt;br /&gt;
Command (m for help): a&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above, to calculate the last sector, you can try multiplying the default last sector by the fraction that you're resizing down; e.g. if resizing from 35 GB to 15 GB, multiply (73400319 / 35 * 14) (we use 14 instead of just 15 since the partition table and other elements take up some space; do make sure that the filesystem has been resized to less than this many GB in the &amp;lt;tt&amp;gt;resize2fs&amp;lt;/tt&amp;gt; command earlier).&lt;br /&gt;
&lt;br /&gt;
* Create a new volume with the desired size, and attach it to the same VM&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;fdisk /dev/vdd&amp;lt;/tt&amp;gt; to create identical partitions on the new volume&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;dd if=/dev/vdc1 of=/dev/vdd1 bs=64k&amp;lt;/tt&amp;gt; to copy data from the partition on the old volume to the partition on the new volume&lt;br /&gt;
* Detach both volumes from the VM, and delete the volume with old size&lt;br /&gt;
* Select the volume with new size from the Volumes tab, and convert it to an image&lt;br /&gt;
* Boot the new VM from the image&lt;br /&gt;
&lt;br /&gt;
=== Unable to attach volume to my Windows VM ===&lt;br /&gt;
&lt;br /&gt;
Volumes are best used with Linux virtual machines using the virtio driver. If you are using another operating system or ide driver, then you likely will need to shut down the VM before attaching or detaching volumes. You may also need to specify the attachment target as /dev/hdc or /dev/hdd or etc.&lt;br /&gt;
&lt;br /&gt;
=== What is the default username for virtual machines provisioned using the stock templates ===&lt;br /&gt;
The administrative username for template-based virtual machines are as the following:&lt;br /&gt;
*Ubuntu: ubuntu&lt;br /&gt;
*Debian: debian&lt;br /&gt;
*CentOS: cloud-user / centos&lt;br /&gt;
*Fedora: fedora&lt;br /&gt;
*CoreOS: core&lt;br /&gt;
&lt;br /&gt;
=== I cannot login as root! ===&lt;br /&gt;
&lt;br /&gt;
As stated in the &amp;quot;VM provisioned successfully&amp;quot; email, template-based virtual machines are configured to accept connections with the administrative user. The password is displayed on the virtual machine details page. For security reasons, the VM does not accept root login by default.&lt;br /&gt;
&lt;br /&gt;
Once authenticated as the administrative user, you can execute &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt; to login as root.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can of course set a root password. First, login as root by authenticating with the administrative user and running &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt;. Then, run &amp;lt;tt&amp;gt;passwd&amp;lt;/tt&amp;gt; to set a root user password. Finally, edit the SSH configuration:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config&lt;br /&gt;
service ssh restart; service sshd restart&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then logout and you should be able to authenicate via SSH directly as the root user with your newly set password.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use a [[Startup scripts|startup script]] so that the root password is set when the VM boots.&lt;br /&gt;
&lt;br /&gt;
Note: use an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] to authenticate.&lt;br /&gt;
&lt;br /&gt;
Please note that our services are unmanaged and you are responsible or the security of your VM; if your VM is taken over and used in denial of service attacks, spam, or other activities that violate our [https://dynamic.lunanode.com/terms terms of service], your account may be suspended depending on the circumstances.&lt;br /&gt;
&lt;br /&gt;
=== Is additional bandwidth usage billed hourly? What about CPU usage for flexible plans? ===&lt;br /&gt;
&lt;br /&gt;
Both bandwidth and CPU are billed as '''consumable resources''', i.e., you are charged for the amount that you use. For example, if you use 5 GB bandwidth, then you will be billed $0.003 for each GB, and it does not matter how long it takes you to use that 5 GB. Similarly, for CPU usage, if you use 10 CPU-core-hours (e.g. 5% of a CPU core for 200 hours, or 100% of a CPU core for 10 hours) then you will be billed $0.22, and again it doesn't matter what timespan you use it over.&lt;br /&gt;
&lt;br /&gt;
So, the question of whether we bill &amp;quot;hourly&amp;quot; versus &amp;quot;monthly&amp;quot; doesn't make sense for flexible resources (including additional bandwidth on all plans, as well as bandwidth / CPU for flexible plans). For fixed resources (memory, disk size, etc.), though, we do bill hourly.&lt;br /&gt;
&lt;br /&gt;
If you are still confused, this is probably because you are used to monthly providers that may charge for additional CPU core or additional 1 TB bandwidth for the next month. The reason that monthly providers do this is because they don't expect you to use the full allocation, and if you only use 500 GB additional bandwidth then they save 500 GB on their end. However, in our case, we charge for resources '''as they are being consumed''' instead of in advance, so hourly versus monthly no longer matters, and you only need to pay for what you use.&lt;br /&gt;
&lt;br /&gt;
=== My disk space is smaller than the plan disk ===&lt;br /&gt;
&lt;br /&gt;
Almost all of the templates will automatically resize the partition and filesystem the first time that the virtual machine boots. If you install from ISO, you can also choose the partitioning scheme.&lt;br /&gt;
&lt;br /&gt;
So, if you are having this problem where filesystem doesn't actually get resized, it likely means you are using the CentOS 6 template, which does not support automatic filesystem resizing. You can instead run the following commands to manually resize the partition/filesystem:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
fdisk /dev/vda&lt;br /&gt;
&amp;gt; u&lt;br /&gt;
(this will switch units to sector; it is important that you use sectors and not cylinders!)&lt;br /&gt;
&amp;gt; p&lt;br /&gt;
(this will print all of the partitions, we will refer to the data later)&lt;br /&gt;
&amp;gt; d 1&lt;br /&gt;
(this will display &amp;quot;Selected partition 1&amp;quot; and delete the first partition)&lt;br /&gt;
&amp;gt; n&lt;br /&gt;
(select &amp;quot;p&amp;quot; for primary partition)&lt;br /&gt;
(partition number should be 1, but make sure it matches the number displayed in print command)&lt;br /&gt;
(first sector should be 2048, but make sure it matches the &amp;quot;Start&amp;quot; column displayed in print command)&lt;br /&gt;
(and set last sector to the default value)&lt;br /&gt;
&amp;gt; a&lt;br /&gt;
(type &amp;quot;1&amp;quot; to make new first partition bootable)&lt;br /&gt;
&amp;gt; w&lt;br /&gt;
(this will write the new partitions and exit fdisk)&lt;br /&gt;
shutdown -r 0&lt;br /&gt;
(connect to VM after it reboots, if it has resized partition but not filesystem then run resize2fs)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: when creating the new partition, make sure that the first sector matches the sector displayed in print command (typically 2048). The default option that fdisk will provide is incorrect.&lt;br /&gt;
&lt;br /&gt;
=== The VNC connection doesn't work for me ===&lt;br /&gt;
&lt;br /&gt;
This is usually caused by a firewall on your computer, router, or at your ISP; or because of outdated browser software. If you are using the noVNC client, first try switching to another browser and see if it works there.&lt;br /&gt;
&lt;br /&gt;
If it still doesn't connect (e.g. you get &amp;quot;Connection Timeout&amp;quot; error), then you can try to use the VNC tunnel connection method so that you can use your own desktop VNC client instead of noVNC. To do this, go to the Account tab in the top right, scroll down to VNC Connection Method, and change to tunnel. Then, when you click the VNC button, you will be given VNC login details that you can plug into your desktop VNC client to connect to your virtual machine instance.&lt;br /&gt;
&lt;br /&gt;
Note: you may have to subtract 5900 from the port provided by the tunnel in some cases. So for example, if the panel says to connect to 167.114.159.49:6105, and that doesn't work, then also try connecting to 167.114.159.49:205.&lt;br /&gt;
&lt;br /&gt;
=== Can I shutdown my VMs to avoid being billed? ===&lt;br /&gt;
&lt;br /&gt;
You can use the Shelve functionality to deactivate your virtual machine. Once a VM is shelved, you will only be billed for the storage space, at $0.03/GB/mo, and assigned IP addresses, at $1/mo (both fees are charged hourly); the pricing change will be reflected in the billing section of the panel dashboard. You can reactivate the VM at any time by pressing Unshelve from the VM details.&lt;br /&gt;
&lt;br /&gt;
=== Why is my geo-location database showing the IP address in an incorrect location? ===&lt;br /&gt;
&lt;br /&gt;
We set standard Referral Whois (RWhois) records that indicate the exact location of all IP addresses that we operate. If your geo-location database does not show the correct location for our IP addresses, that means that the database provider is not checking our RWhois records. You would need to direct questions regarding the inaccuracy of their database to them. Please do not contact us with any questions about IP geo-location as we do not maintain these databases.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Frequently_asked_questions</id>
		<title>Frequently asked questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Frequently_asked_questions"/>
				<updated>2018-08-10T20:52:56Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* My account request was denied */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cannot connect with SSH to newly booted VM ===&lt;br /&gt;
&lt;br /&gt;
The provisioning and booting process may take as long as five minutes in some cases, depending on the specific operating system you are selecting. You can monitor progress over VNC by hitting the VNC Connection button. Once booted, you will be able to authenticate via SSH using the username and password displayed on the virtual machine page (or SSH key if you specified one).&lt;br /&gt;
&lt;br /&gt;
Note that if you selected an image marked &amp;quot;ISO&amp;quot; when provisioning the VM, you will have to install the operating system via VNC. If you simply want a ready-made VM up and running, you should select an image marked &amp;quot;template&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
=== I cannot ping my IP address 172.20.8.187 ===&lt;br /&gt;
&lt;br /&gt;
The IP address starting with 172 is the private IP address for your VM. Go to your VM details page and look for the &amp;quot;external IP address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== How to purchase the Special XYZ plan? ===&lt;br /&gt;
&lt;br /&gt;
First, check https://dynamic.lunanode.com/info to make sure it is still in stock. If so, you can [https://dynamic.lunanode.com/register register an account] and then go to the Create VM sidebar option to create the VM of your desired special plan. Note that special plans are only available for a limited time.&lt;br /&gt;
&lt;br /&gt;
=== Do you support IPv6? ===&lt;br /&gt;
&lt;br /&gt;
Yes! We support IPv6 in Toronto. Virtual machines are automatically assigned an IPv6 address via SLAAC. User-created virtual networks receive a /64 IPv6 allocation, and virtual machines created on such networks can use any address on the allocated subnet.&lt;br /&gt;
&lt;br /&gt;
=== How to resize my VM? ===&lt;br /&gt;
&lt;br /&gt;
To resize your VM, select the VM and use the Resize utility.&lt;br /&gt;
&lt;br /&gt;
Note that the resize will fail if you attempt to resize a local-storage-backed instance to a plan with a smaller disk size. Follow these steps to resize a VM down:&lt;br /&gt;
&lt;br /&gt;
* Take a snapshot of the VM&lt;br /&gt;
* Once the snapshot is ready (you can monitor the progress from the Images tab), go to the Volumes tab and create a volume from the snapshot with the old snapshot size&lt;br /&gt;
* Boot a new VM with &amp;quot;Ubuntu 14.04 64-bit&amp;quot; template, and attach the volume to the VM&lt;br /&gt;
* Assuming that the volume is attached at /dev/vdc, run &amp;lt;tt&amp;gt;resize2fs /dev/vdc1 10G&amp;lt;/tt&amp;gt; (replacing 10G with desired size in gigabytes; aim for as small a size as possible, so that the partition and disk will fit)&lt;br /&gt;
* Then, run fdisk /dev/vdc and re-create the partition; make sure the start sector is the same, and also make sure to set the bootable flag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# fdisk /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 37.6 GB, 37580963840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 573440 cylinders, total 73400320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000d8e94&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/vdc1   *        2048    73400319    36699136   83  Linux&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d 1&lt;br /&gt;
Selected partition 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Partition type:&lt;br /&gt;
   p   primary (0 primary, 0 extended, 4 free)&lt;br /&gt;
   e   extended&lt;br /&gt;
Select (default p): &lt;br /&gt;
Using default response p&lt;br /&gt;
Partition number (1-4, default 1): &lt;br /&gt;
Using default value 1&lt;br /&gt;
First sector (2048-73400319, default 2048): &lt;br /&gt;
Using default value 2048&lt;br /&gt;
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319): 33556479&lt;br /&gt;
&lt;br /&gt;
Command (m for help): a&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above, to calculate the last sector, you can try multiplying the default last sector by the fraction that you're resizing down; e.g. if resizing from 35 GB to 15 GB, multiply (73400319 / 35 * 14) (we use 14 instead of just 15 since the partition table and other elements take up some space; do make sure that the filesystem has been resized to less than this many GB in the &amp;lt;tt&amp;gt;resize2fs&amp;lt;/tt&amp;gt; command earlier).&lt;br /&gt;
&lt;br /&gt;
* Create a new volume with the desired size, and attach it to the same VM&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;fdisk /dev/vdd&amp;lt;/tt&amp;gt; to create identical partitions on the new volume&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;dd if=/dev/vdc1 of=/dev/vdd1 bs=64k&amp;lt;/tt&amp;gt; to copy data from the partition on the old volume to the partition on the new volume&lt;br /&gt;
* Detach both volumes from the VM, and delete the volume with old size&lt;br /&gt;
* Select the volume with new size from the Volumes tab, and convert it to an image&lt;br /&gt;
* Boot the new VM from the image&lt;br /&gt;
&lt;br /&gt;
=== Unable to attach volume to my Windows VM ===&lt;br /&gt;
&lt;br /&gt;
Volumes are best used with Linux virtual machines using the virtio driver. If you are using another operating system or ide driver, then you likely will need to shut down the VM before attaching or detaching volumes. You may also need to specify the attachment target as /dev/hdc or /dev/hdd or etc.&lt;br /&gt;
&lt;br /&gt;
=== What is the default username for virtual machines provisioned using the stock templates ===&lt;br /&gt;
The administrative username for template-based virtual machines are as the following:&lt;br /&gt;
*Ubuntu: ubuntu&lt;br /&gt;
*Debian: debian&lt;br /&gt;
*CentOS: cloud-user / centos&lt;br /&gt;
*Fedora: fedora&lt;br /&gt;
*CoreOS: core&lt;br /&gt;
&lt;br /&gt;
=== I cannot login as root! ===&lt;br /&gt;
&lt;br /&gt;
As stated in the &amp;quot;VM provisioned successfully&amp;quot; email, template-based virtual machines are configured to accept connections with the administrative user. The password is displayed on the virtual machine details page. For security reasons, the VM does not accept root login by default.&lt;br /&gt;
&lt;br /&gt;
Once authenticated as the administrative user, you can execute &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt; to login as root.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can of course set a root password. First, login as root by authenticating with the administrative user and running &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt;. Then, run &amp;lt;tt&amp;gt;passwd&amp;lt;/tt&amp;gt; to set a root user password. Finally, edit the SSH configuration:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config&lt;br /&gt;
service ssh restart; service sshd restart&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then logout and you should be able to authenicate via SSH directly as the root user with your newly set password.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use a [[Startup scripts|startup script]] so that the root password is set when the VM boots.&lt;br /&gt;
&lt;br /&gt;
Note: use an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] to authenticate.&lt;br /&gt;
&lt;br /&gt;
Please note that our services are unmanaged and you are responsible or the security of your VM; if your VM is taken over and used in denial of service attacks, spam, or other activities that violate our [https://dynamic.lunanode.com/terms terms of service], your account may be suspended depending on the circumstances.&lt;br /&gt;
&lt;br /&gt;
=== Is additional bandwidth usage billed hourly? What about CPU usage for flexible plans? ===&lt;br /&gt;
&lt;br /&gt;
Both bandwidth and CPU are billed as '''consumable resources''', i.e., you are charged for the amount that you use. For example, if you use 5 GB bandwidth, then you will be billed $0.003 for each GB, and it does not matter how long it takes you to use that 5 GB. Similarly, for CPU usage, if you use 10 CPU-core-hours (e.g. 5% of a CPU core for 200 hours, or 100% of a CPU core for 10 hours) then you will be billed $0.22, and again it doesn't matter what timespan you use it over.&lt;br /&gt;
&lt;br /&gt;
So, the question of whether we bill &amp;quot;hourly&amp;quot; versus &amp;quot;monthly&amp;quot; doesn't make sense for flexible resources (including additional bandwidth on all plans, as well as bandwidth / CPU for flexible plans). For fixed resources (memory, disk size, etc.), though, we do bill hourly.&lt;br /&gt;
&lt;br /&gt;
If you are still confused, this is probably because you are used to monthly providers that may charge for additional CPU core or additional 1 TB bandwidth for the next month. The reason that monthly providers do this is because they don't expect you to use the full allocation, and if you only use 500 GB additional bandwidth then they save 500 GB on their end. However, in our case, we charge for resources '''as they are being consumed''' instead of in advance, so hourly versus monthly no longer matters, and you only need to pay for what you use.&lt;br /&gt;
&lt;br /&gt;
=== My disk space is smaller than the plan disk ===&lt;br /&gt;
&lt;br /&gt;
Almost all of the templates will automatically resize the partition and filesystem the first time that the virtual machine boots. If you install from ISO, you can also choose the partitioning scheme.&lt;br /&gt;
&lt;br /&gt;
So, if you are having this problem where filesystem doesn't actually get resized, it likely means you are using the CentOS 6 template, which does not support automatic filesystem resizing. You can instead run the following commands to manually resize the partition/filesystem:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
fdisk /dev/vda&lt;br /&gt;
&amp;gt; u&lt;br /&gt;
(this will switch units to sector; it is important that you use sectors and not cylinders!)&lt;br /&gt;
&amp;gt; p&lt;br /&gt;
(this will print all of the partitions, we will refer to the data later)&lt;br /&gt;
&amp;gt; d 1&lt;br /&gt;
(this will display &amp;quot;Selected partition 1&amp;quot; and delete the first partition)&lt;br /&gt;
&amp;gt; n&lt;br /&gt;
(select &amp;quot;p&amp;quot; for primary partition)&lt;br /&gt;
(partition number should be 1, but make sure it matches the number displayed in print command)&lt;br /&gt;
(first sector should be 2048, but make sure it matches the &amp;quot;Start&amp;quot; column displayed in print command)&lt;br /&gt;
(and set last sector to the default value)&lt;br /&gt;
&amp;gt; a&lt;br /&gt;
(type &amp;quot;1&amp;quot; to make new first partition bootable)&lt;br /&gt;
&amp;gt; w&lt;br /&gt;
(this will write the new partitions and exit fdisk)&lt;br /&gt;
shutdown -r 0&lt;br /&gt;
(connect to VM after it reboots, if it has resized partition but not filesystem then run resize2fs)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: when creating the new partition, make sure that the first sector matches the sector displayed in print command (typically 2048). The default option that fdisk will provide is incorrect.&lt;br /&gt;
&lt;br /&gt;
=== The VNC connection doesn't work for me ===&lt;br /&gt;
&lt;br /&gt;
This is usually caused by a firewall on your computer, router, or at your ISP; or because of outdated browser software. If you are using the noVNC client, first try switching to another browser and see if it works there.&lt;br /&gt;
&lt;br /&gt;
If it still doesn't connect (e.g. you get &amp;quot;Connection Timeout&amp;quot; error), then you can try to use the VNC tunnel connection method so that you can use your own desktop VNC client instead of noVNC. To do this, go to the Account tab in the top right, scroll down to VNC Connection Method, and change to tunnel. Then, when you click the VNC button, you will be given VNC login details that you can plug into your desktop VNC client to connect to your virtual machine instance.&lt;br /&gt;
&lt;br /&gt;
Note: you may have to subtract 5900 from the port provided by the tunnel in some cases. So for example, if the panel says to connect to 167.114.159.49:6105, and that doesn't work, then also try connecting to 167.114.159.49:205.&lt;br /&gt;
&lt;br /&gt;
=== Can I shutdown my VMs to avoid being billed? ===&lt;br /&gt;
&lt;br /&gt;
You can use the Shelve functionality to deactivate your virtual machine. Once a VM is shelved, you will only be billed for the storage space, at $0.03/GB/mo, and assigned IP addresses, at $1/mo (both fees are charged hourly); the pricing change will be reflected in the billing section of the panel dashboard. You can reactivate the VM at any time by pressing Unshelve from the VM details.&lt;br /&gt;
&lt;br /&gt;
=== Why is my geo-location database showing the IP address in an incorrect location? ===&lt;br /&gt;
&lt;br /&gt;
We set standard Referral Whois (RWhois) records that indicate the exact location of all IP addresses that we operate. If your geo-location database does not show the correct location for our IP addresses, that means that the database provider is not checking our RWhois records. You would need to direct questions regarding the inaccuracy of their database to them. Please do not contact us with any questions about IP geo-location as we do not maintain these databases.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Managed_Support</id>
		<title>Managed Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Managed_Support"/>
				<updated>2018-08-10T20:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While our services are unmanaged, we provide managed support at '''$100.00/hour (billed in 15-minute increments, with one-hour minimum)'''. Our experienced staff is able to assist in a diverse set of areas, including server software configuration and optimization (e.g. web/mail/DNS servers, control panels, game servers), penetration testing and security breanch investigation, distributed system setup (e.g. GlusterFS/MooseFS/CephFS, front-end web server redundancy, replicated mail server), and backup implementation and recovery.&lt;br /&gt;
&lt;br /&gt;
You can open a managed ticket on the '''Support tab''', by selecting the &amp;quot;Managed Support&amp;quot; category. After receiving your ticket, we will assess the complexity of your request and reply with a time estimate for the task; upon your confirmation, we will complete the request, and management time will be charged to your account credit.&lt;br /&gt;
&lt;br /&gt;
We are also able to automatically intervene on your server if a service fails -- contact [mailto:sales@lunanode.com sales@lunanode.com] for more information.&lt;br /&gt;
&lt;br /&gt;
== Providing Access ==&lt;br /&gt;
&lt;br /&gt;
For most kinds of managed support, we will need access to your server. The preferred way to do this is to add our SSH key to your authorized keys file, and let us know what user account to authenticate as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/YL5kEqOHxWmSAneuhEkD6eEgbXh5ivE2XGQJaKvfWkaZ8n3fkPe/Um54Oaa0isSXKzslEEIvataysrk7QUgfsHfrNd/CayQmy+6xRj8sZjN92gHlA27rhJX007lG9O6VAVXBOtnlqdxbCh/MJkZWhLgJ5suoeNx1DIeUXjE3yw8jYbLBdDDW/zr+ewxJ9nxEtdz3TRnxoRST889ZzImS6Mz/7OxnibWzALyP0LXqM4WBmipdB/eRx1dQnIaWGgN+NTMlf0FGQCFmAT/veS75d+ZO310QdCz1dmOuW07+ECCnkqEmGUecv9Eli0DIw5Qa6w+ggEvaPJTJDEREcZ3r lunanode@lunanode&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or simply:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;curl https://lunanode.com/sshkey.txt &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can provide your password via the ticket, but this is not recommended.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Managed_Support</id>
		<title>Managed Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Managed_Support"/>
				<updated>2018-08-10T20:00:00Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While our services are unmanaged, we provide managed support at '''$100.00/hour (billed in 15-minute increments, with one-hour minimum)'''. Our experienced staff is able to assist in a diverse set of areas, including server software configuration and optimization (e.g. web/mail/DNS servers, control panels, game servers), penetration testing and security breanch investigation, distributed system setup (e.g. GlusterFS/MooseFS/CephFS, front-end web server redundancy, replicated mail server), and backup implementation and recovery.&lt;br /&gt;
&lt;br /&gt;
You can open a managed ticket on the '''Support tab''', by selecting the &amp;quot;Managed Support&amp;quot; category. After receiving your ticket, we will assess the complexity of your request and reply within thirty minutes with a time estimate for the task; upon your confirmation, we will complete the request, and management time will be charged to your account credit.&lt;br /&gt;
&lt;br /&gt;
We are also able to automatically intervene on your server if a service fails -- contact [mailto:sales@lunanode.com sales@lunanode.com] for more information.&lt;br /&gt;
&lt;br /&gt;
== Providing Access ==&lt;br /&gt;
&lt;br /&gt;
For most kinds of managed support, we will need access to your server. The preferred way to do this is to add our SSH key to your authorized keys file, and let us know what user account to authenticate as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/YL5kEqOHxWmSAneuhEkD6eEgbXh5ivE2XGQJaKvfWkaZ8n3fkPe/Um54Oaa0isSXKzslEEIvataysrk7QUgfsHfrNd/CayQmy+6xRj8sZjN92gHlA27rhJX007lG9O6VAVXBOtnlqdxbCh/MJkZWhLgJ5suoeNx1DIeUXjE3yw8jYbLBdDDW/zr+ewxJ9nxEtdz3TRnxoRST889ZzImS6Mz/7OxnibWzALyP0LXqM4WBmipdB/eRx1dQnIaWGgN+NTMlf0FGQCFmAT/veS75d+ZO310QdCz1dmOuW07+ECCnkqEmGUecv9Eli0DIw5Qa6w+ggEvaPJTJDEREcZ3r lunanode@lunanode&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or simply:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;curl https://lunanode.com/sshkey.txt &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can provide your password via the ticket, but this is not recommended.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-08-10T19:59:33Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info.php Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info.php General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Managed Support]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
* [[Hosted E-mail]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Flexible_plans</id>
		<title>Flexible plans</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Flexible_plans"/>
				<updated>2018-08-10T19:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: Replaced content with &amp;quot;Flexible plans are no longer supported. All VMs are now somewhat flexible, in the sense that you can pay on-demand for additional CPU performance. See Burstable Resource...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flexible plans are no longer supported. All VMs are now somewhat flexible, in the sense that you can pay on-demand for additional CPU performance. See [[Burstable Resources]], &amp;quot;Paying for CPU Performance above the Baseline&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-08-10T19:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info.php Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info.php General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Managed Support]]&lt;br /&gt;
* [[Flexible plans]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
* [[Hosted E-mail]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Hosted_E-mail</id>
		<title>Hosted E-mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Hosted_E-mail"/>
				<updated>2018-08-10T19:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: Created page with &amp;quot;Our hosted e-mail services allow you to easily set up e-mail on your domains; you can send and receive e-mail either via webmail or IMAPS/SMTPS.  We support multiple user acco...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our hosted e-mail services allow you to easily set up e-mail on your domains; you can send and receive e-mail either via webmail or IMAPS/SMTPS.&lt;br /&gt;
&lt;br /&gt;
We support multiple user accounts, e-mail aliases, DKIM, and more.&lt;br /&gt;
&lt;br /&gt;
We charge $0.2/mo per GB of storage used (rounded up to the nearest GB and billed hourly) and $0.1 per 1,000 e-mails sent. The first 5,000 e-mails each month and the first 1 GB of storage are free, assuming you use at least $3 credit on other services in the current calendar month. Note that e-mails forwarded to external accounts via aliases are counted as e-mails sent.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Hardware_specifications</id>
		<title>Hardware specifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Hardware_specifications"/>
				<updated>2018-08-10T17:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Toronto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The specifications below are for all SSD plans (e.g. s.half, m.1, c.1).&lt;br /&gt;
&lt;br /&gt;
== Toronto ==&lt;br /&gt;
&lt;br /&gt;
We use:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2690 v2 CPUs (older hypervisors have Xeon E5-2690 or Xeon E5-2670)&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
&lt;br /&gt;
== Montreal/Roubaix ==&lt;br /&gt;
&lt;br /&gt;
We use the same type of hardware in Montreal and Roubaix:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2660v3 CPUs&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
* OVH Anti-DDoS Pro DDoS mitigation system&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Hardware_specifications</id>
		<title>Hardware specifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Hardware_specifications"/>
				<updated>2018-08-10T17:32:48Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Toronto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The specifications below are for all SSD plans (e.g. s.half, m.1, c.1).&lt;br /&gt;
&lt;br /&gt;
== Toronto ==&lt;br /&gt;
&lt;br /&gt;
We use:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2690 v2 or Xeon E5-2690 or Xeon E5-2670 CPUs&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
&lt;br /&gt;
== Montreal/Roubaix ==&lt;br /&gt;
&lt;br /&gt;
We use the same type of hardware in Montreal and Roubaix:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2660v3 CPUs&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
* OVH Anti-DDoS Pro DDoS mitigation system&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Hardware_specifications</id>
		<title>Hardware specifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Hardware_specifications"/>
				<updated>2018-08-10T17:31:49Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The specifications below are for all SSD plans (e.g. s.half, m.1, c.1).&lt;br /&gt;
&lt;br /&gt;
== Toronto ==&lt;br /&gt;
&lt;br /&gt;
We use:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2670 or Xeon E5-2690 v2 CPUs&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
&lt;br /&gt;
== Montreal/Roubaix ==&lt;br /&gt;
&lt;br /&gt;
We use the same type of hardware in Montreal and Roubaix:&lt;br /&gt;
&lt;br /&gt;
* Dual Xeon E5-2660v3 CPUs&lt;br /&gt;
* Hardware RAID&lt;br /&gt;
* Pure SSD RAID10 storage array&lt;br /&gt;
* 2x10gbps ports, one for VM network and one for the storage cluster&lt;br /&gt;
* OVH Anti-DDoS Pro DDoS mitigation system&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-04-16T15:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node General-Purpose and Memory-Optimized virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
Compute-Optimized virtual machines are assigned dedicated CPU cores.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 100% CPU utilization for every 1.0 CPU-Points specified in the plan (for example, s.half includes 0.2 CPU-Points, and a baseline performance of 20% CPU utilization)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core over 30 days on a s.1 VM, which has 0.4 plan cpu-points. Your VM will need an additional 0.6 burst points for every five-minute interval in the month, on top of the 0.4 baseline performance included in the plan. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-02-25T17:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 100% CPU utilization for every 1.0 CPU-Points specified in the plan (for example, s.half includes 0.2 CPU-Points, and a baseline performance of 20% CPU utilization)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core over 30 days on a s.1 VM, which has 0.4 plan cpu-points. Your VM will need an additional 0.6 burst points for every five-minute interval in the month, on top of the 0.4 baseline performance included in the plan. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-02-25T17:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Paying for CPU Performance above the Baseline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: based on the CPU-Points specified in the plan&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core over 30 days on a s.1 VM, which has 0.4 plan cpu-points. Your VM will need an additional 0.6 burst points for every five-minute interval in the month, on top of the 0.4 baseline performance included in the plan. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-02-25T17:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: based on the CPU-Points specified in the plan&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to their baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives the plan CPU-Points every five minutes.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if an s.half VM (which has 0.2 plan CPU-Points) starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-02-25T17:05:08Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account on the same hypervisor with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until you no longer have any VMs on the same hypervisor with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-16T06:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until there are no VMs on your account with close to the maximum CPU points. I/O points cannot be &amp;quot;borrowed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-16T06:51:34Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Borrowing.''' If a VM runs out of CPU points, and there is another VM on your account with close to the maximum CPU points, then the system will re-allocate points from the second VM to the first. Thus, the first VM will not be throttled until there are no VMs on your account with close to the maximum CPU points.&lt;br /&gt;
&lt;br /&gt;
In some cases, you may want to prevent a VM's CPU points from being re-allocated to other VMs even if its points are close to the maximum. To do so, disable CPU utilization lending from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T20:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
'''Monitoring points.''' Charts showing CPU points and I/O points over time can be retrieved from the Graphs tab.&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T19:53:36Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Paying for CPU Performance above the Baseline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
By default, VMs may be throttled once they run out of CPU or I/O burst points.&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T19:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Paying for CPU Performance above the Baseline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account. If the VM's CPU burst point count never reaches zero, then you will not be charged.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T19:52:44Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== Paying for CPU Performance above the Baseline ==&lt;br /&gt;
&lt;br /&gt;
To avoid CPU throttling, you can opt to pay for CPU performance above the baseline 20%/core performance from the CPU tab.&lt;br /&gt;
&lt;br /&gt;
Pricing is $0.0037 per CPU burst point. If your VM runs out of burst points, instead of throttling the VM, the platform will grant the VM one burst point while assessing the charge to your account.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that you use 50% of each core on a two-core VM over 30 days. Your VM will need an additional 0.3 burst points per core for every five-minute interval in the month, on top of the 0.2 per core that is automatically granted every five minutes. Thus, the VM will use a total of 5184 additional CPU burst points over the 30-day interval, which is equivalent to a $19.18 charge.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:57:02Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
(Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.)&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, '''instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization'''.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:56:13Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
'''Baseline performance.''' Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
'''Burst points.''' The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
'''Throttling.''' VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
'''Maximum points.''' There are upper limits on the number of burst points that a VM can accumulate. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval), and if it uses 30% of a core for one hour, it ends with 8.8 burst points.&lt;br /&gt;
&lt;br /&gt;
VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
There are upper limits on the number of burst points that a VM can have. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:53:57Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance. They also constantly lose burst points based on actual resource utilization.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval).&lt;br /&gt;
&lt;br /&gt;
VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
There are upper limits on the number of burst points that a VM can have. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval).&lt;br /&gt;
&lt;br /&gt;
VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
There are upper limits on the number of burst points that a VM can have. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:52:42Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Burst Points System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
The platform keeps track of CPU and disk burst points that each VM has. VMs constantly receive additional burst points corresponding to the baseline performance.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes. A VM receives 0.2 burst points every five minutes for each core on the VM.&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes. A VM receives 1 burst point every five minutes.&lt;br /&gt;
&lt;br /&gt;
For example, if a single-core VM starts with 10 burst points, and then uses 20% of the CPU core for one hour, it will end with 10 burst points. On the other hand, if the VM uses 10% of a core for one hour, it ends with 11.2 burst points (an additional 0.1 points for each five-minute interval).&lt;br /&gt;
&lt;br /&gt;
VM resource utilization may be throttled to the baseline performance if it has zero burst points. In some cases, the platform will not throttle the VM, or will throttle it to a level above the baseline performance, if it determines that the system can handle the additional load from the VM.&lt;br /&gt;
&lt;br /&gt;
There are upper limits on the number of burst points that a VM can have. Once it reaches the limit, the VM burst points will stop increasing:&lt;br /&gt;
&lt;br /&gt;
* CPU: 24 CPU burst points * number of cores (e.g. max of 48 points for a VM with two cores)&lt;br /&gt;
* I/O: 60 I/O burst points&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Burstable_Resources</id>
		<title>Burstable Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Burstable_Resources"/>
				<updated>2018-01-04T15:45:30Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: Created page with &amp;quot;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CP...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.&lt;br /&gt;
&lt;br /&gt;
At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects &amp;quot;points&amp;quot; that it can later use to obtain resource utilization above the baseline.&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Before 3 January 2018, we simply had a &amp;quot;fair share usage policy&amp;quot; that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.&lt;br /&gt;
&lt;br /&gt;
We have since deployed an automatic management system that makes this policy much more concrete.&lt;br /&gt;
&lt;br /&gt;
== Burst Points System ==&lt;br /&gt;
&lt;br /&gt;
Each virtual machine has a baseline performance:&lt;br /&gt;
&lt;br /&gt;
* CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)&lt;br /&gt;
* Disk I/O: 100 IOPS&lt;br /&gt;
&lt;br /&gt;
The platform keeps track of CPU and disk burst points that each VM has.&lt;br /&gt;
&lt;br /&gt;
* CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes&lt;br /&gt;
* Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes&lt;br /&gt;
&lt;br /&gt;
If a VM's utilization is below the baseline, then it accumulates burst points.&lt;br /&gt;
&lt;br /&gt;
* CPU: 0.2 burst points are added every five minutes&lt;br /&gt;
* Disk I/O: 1 burst point is added every five minutes&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Main_Page"/>
				<updated>2018-01-04T15:24:49Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the [https://lunanode.com/ Luna Node] wiki! You may have been looking for our main [https://dynamic.lunanode.com/info.php Luna Node Dynamic] website.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://dynamic.lunanode.com/info.php General information]&lt;br /&gt;
* [[Create your first instance]]&lt;br /&gt;
* [[Billing]]&lt;br /&gt;
* [http://status.lunanode.com/ Network/power status]&lt;br /&gt;
* [[Frequently asked questions]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
See these pages for details on how to use the core cloud features:&lt;br /&gt;
&lt;br /&gt;
* [[Snapshots]]&lt;br /&gt;
* [[Security groups]]&lt;br /&gt;
* [[Volumes]]&lt;br /&gt;
* [[Startup scripts]]&lt;br /&gt;
* [[Floating IP addresses]]&lt;br /&gt;
* [[Virtual networks]]&lt;br /&gt;
&lt;br /&gt;
We also have various miscellaneous features and information:&lt;br /&gt;
&lt;br /&gt;
* [[Server monitoring]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Managed Support]]&lt;br /&gt;
* [[Flexible plans]]&lt;br /&gt;
* [[Hardware specifications]]&lt;br /&gt;
* [[Application Templates]]&lt;br /&gt;
* [[Shelving]]&lt;br /&gt;
* [[Rescue Mode]]&lt;br /&gt;
* [[Burstable Resources]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* [[ISO Installation]]&lt;br /&gt;
* [[Panel authentication|Control panel authentication]]&lt;br /&gt;
* [[Reselling]]&lt;br /&gt;
* [[Network configuration]]&lt;br /&gt;
* [[Volume-backed instance]]&lt;br /&gt;
&lt;br /&gt;
Below are short pages with miscellaneous information.&lt;br /&gt;
&lt;br /&gt;
* [[Increase network throughput]]&lt;br /&gt;
* [[Receive encrypted mail]]&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Panel_authentication</id>
		<title>Panel authentication</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Panel_authentication"/>
				<updated>2017-12-06T03:00:32Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic supports three panel authentication methods: password, client-side certificate, and two-factor authentication.&lt;br /&gt;
&lt;br /&gt;
* '''Password''': this is your standard login functionality, where you enter your e-mail address and password, and then get access to the panel.&lt;br /&gt;
* '''Client-side certificate''': this uses client-side SSL certificates that are signed by the Luna Node Dynamic certificate authority. You register the certificate and your key into your computer, and then the server will be able to authenticate your certificate via SSL.&lt;br /&gt;
* '''Two-factor authentication''': verify with a two-factor authentication method. Available methods include e-mail to the account e-mail address, SMS to a specified phone number, and time-based one-time password (TOTP).&lt;br /&gt;
&lt;br /&gt;
== Authentication policies ==&lt;br /&gt;
&lt;br /&gt;
There are several available authentication policies to determine how strict the server will be with logins for your account. These are configurable from the [https://dynamic.lunanode.com/panel/account Account] page in the top right of the panel, under the &amp;quot;Policies&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
* '''Password or certificate''': if you enter your password successfully or client-side SSL certificate authentication succeeds, you will have access to the panel.&lt;br /&gt;
* '''Password and certificate''': you will need to enter your password, and then also authenticate via SSL certificate in order to gain access.&lt;br /&gt;
* '''Password and two-factor authentication''': you will need to enter your password, and then complete two-factor authentication.&lt;br /&gt;
* '''Password, and either certificate or two-factor authentication''': after entering your password, you can choose whether to authenticate with a certificate or with two-factor authentication.&lt;br /&gt;
* '''Certificate, also password for new devices''': use client-side SSL certificate authentication only by default; however, if you attempt to login from an unrecognized IP address (i.e., one that you've not logged in from before), then you will need to also verify your password.&lt;br /&gt;
* '''Password, also two-factor authentication for new devices''': like above, but with password by default and two-factor authentication for unrecognized IP addresses.&lt;br /&gt;
* '''Password and certificate, also two-factor authentication for new devices''': you will always need to authenticate with both your password and a certificate; for unrecognized IP addresses, you will additionally need to pass two-factor authentication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you choose an authentication policy that involves two-factor authentication, be sure to configure two-factor authentication from the [https://dynamic.lunanode.com/panel/account Account] page under the &amp;quot;Two-factor authentication&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
== Setting up client-side SSL certificate ==&lt;br /&gt;
&lt;br /&gt;
Once your certificate is set up, you will be able to login via https://dynamic.lunanode.com/secure/ (or select &amp;quot;Authenticate with client-side certificate&amp;quot; on login screen).&lt;br /&gt;
&lt;br /&gt;
You have two options when setting up a certificate: using your modern browser (won't work with Internet Explorer; Firefox/Chrome both work fine) via the keygen tag, or manually generating and submitting a CSR. The first way is much easier, it should only take you sixty seconds!&lt;br /&gt;
&lt;br /&gt;
Note: we recommend that you set up a master password in your browser if you do not have one already, this will ensure your certificates (as well as any saved passwords) are stored encrypted.&lt;br /&gt;
&lt;br /&gt;
=== Generate certificate via browser ===&lt;br /&gt;
&lt;br /&gt;
Make sure you are using Firefox or Chrome, or a similar non-IE modern browser that supports the keygen tag.&lt;br /&gt;
&lt;br /&gt;
Head to the [https://dynamic.lunanode.com/panel/account?tab=account_auth_csc Account tab] and select Client-side certificates tab. Under &amp;quot;Add certificate via browser&amp;quot;, configure any certificate key options that your browser provides, enter a number of days to sign for (between 5 and 730 days), and hit the generate option. Your browser should display a brief dialog about generating a keypair, and then after a bit more time you'll be prompted to add the certificate to your browser.&lt;br /&gt;
&lt;br /&gt;
Once added, you can login via https://dynamic.lunanode.com/secure/.&lt;br /&gt;
&lt;br /&gt;
=== Manually generate a CSR ===&lt;br /&gt;
&lt;br /&gt;
If you decided you want to manually generate a CSR, follow the instructions below.&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
You will need OpenSSL or a similar tool installed in order to do this. These instructions are based on [https://gist.github.com/mtigas/952344 a gist by mtigas found on Github].&lt;br /&gt;
&lt;br /&gt;
First, create a key and a CSR. We use 4096-bit key below for extra security since it doesn't hurt (and also since the guide used it). For the CSR, &amp;lt;b&amp;gt;the organization, organization unit, and common name must be set to your account e-mail address (case sensitive)&amp;lt;/b&amp;gt; or else the CSR will be rejected.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;openssl genrsa -des3 -out client.key 4096&lt;br /&gt;
openssl req -new -key client.key -out client.csr -subj &amp;quot;/O=you@example.com/OU=you@example.com/CN=you@example.com&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, copy the contents of client.csr. Go to the Account tab, and under &amp;quot;Client-side certificates&amp;quot;, paste the CSR and hit &amp;quot;Add client-side certificate&amp;quot;. This will cause the server to verify the CSR and then, if verification succeeds, sign it. If signed successfully, the newly produced certificate will be available. You should copy and paste this into client.crt in the same directory where you made client.key and client.csr. Once client.crt exists, run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12&lt;br /&gt;
rm client.crt client.key client.csr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, go to your web browser and import the certificate. In Firefox, this is available from Edit, then Preferences, then Advanced, then Certificates tab. Select &amp;quot;View certificates&amp;quot;, go to &amp;quot;Your certificates&amp;quot; tab, and hit import, and then find client.p12.&lt;br /&gt;
&lt;br /&gt;
==== Other operating systems ====&lt;br /&gt;
&lt;br /&gt;
We currently don't have information for other operating systems. UNIX-based OS might work with the Linux instructions. If you get information, do let us know and we can add it here.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can complete the steps to create client.p12 on any Linux machine, and then copy the resulting file to your machine that has some other OS, and import it to your browser.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/API</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/API"/>
				<updated>2017-12-06T02:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Startup scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Luna Node Dynamic API enables you to write software to automate VM management. This page details how the API can be accessed. Visit the [https://dynamic.lunanode.com/panel/api API tab] to manage your API keys.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each API token consists of an API ID and an API key. Both are needed for authentication of all API commands.&lt;br /&gt;
&lt;br /&gt;
API actions consist of a category label, action label, and a set of parameters. For example, to start a VM, the category label is &amp;quot;vm&amp;quot;, action label is &amp;quot;start&amp;quot;, and a &amp;quot;vm_id&amp;quot; parameter must be set. [[API#Action_list|See the full API action list.]]&lt;br /&gt;
&lt;br /&gt;
API requests are made over HTTPS. Once the server completes processing of your request, it will return a JSON-encoded response.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
We provide open source (under MIT License) [https://github.com/LunaNode/lndynamic-api PHP and Python libraries] for accessing the Luna Node Dynamic API. These libraries make interaction with the API easier, handling transaction from category, action, and parameters to the HTTPS request, and from the JSON-encoded response to a PHP associative array or Python dictionary. [https://github.com/LunaNode/lndynamic-api Get the libraries here.]&lt;br /&gt;
&lt;br /&gt;
Third party libraries are also available:&lt;br /&gt;
&lt;br /&gt;
* Golang: a [https://github.com/LunaNode/lobster/tree/master/vmi/lunanode Golang client API] is available as part of the Lobster project.&lt;br /&gt;
* C#: [https://github.com/rickparrish/lndapi rickparrish/lndapi] is a C# API wrapper.&lt;br /&gt;
* PHP: [https://github.com/sdavis1902/lunanode-api-php sdavis1902/lunanode-api-php]&lt;br /&gt;
* Ruby: [https://github.com/nomoon/lunanode nomoon/lunanode] Ruby Gem&lt;br /&gt;
&lt;br /&gt;
If you are using another programming language, you can view the API call [[API#Technical_details|technical details]] below. You may also find it easier to implement the [[API#Legacy_API|Legacy API]].&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
List your virtual machines:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once('lndynamic.php');&lt;br /&gt;
$api_id = 'YOUR API ID';&lt;br /&gt;
$api_key = 'YOUR API KEY';&lt;br /&gt;
$api = new LNDynamic($api_id, $api_key);&lt;br /&gt;
print_r($api-&amp;gt;request('vm', 'list'));&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;from lndynamic import LNDynamic&lt;br /&gt;
api_id = 'YOUR API ID'&lt;br /&gt;
api_key = 'YOUR API KEY'&lt;br /&gt;
api = LNDynamic(api_id, api_key)&lt;br /&gt;
print api.request('vm', 'list')&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recreate a VM with the same IP:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once('lndynamic.php');&lt;br /&gt;
$api_id = 'YOUR API ID';&lt;br /&gt;
$api_key = 'YOUR API KEY';&lt;br /&gt;
$target_vm_name = 'myvm';&lt;br /&gt;
$target_image_name = 'Ubuntu 14.04 64-bit (template)';&lt;br /&gt;
$api = new LNDynamic($api_id, $api_key);&lt;br /&gt;
&lt;br /&gt;
// find the target virtual machine ID&lt;br /&gt;
$vms = $api-&amp;gt;request('vm', 'list');&lt;br /&gt;
$target_vm_id = false;&lt;br /&gt;
&lt;br /&gt;
foreach($vms['vms'] as $vm) {&lt;br /&gt;
	if(strcasecmp($vm['name'], $target_vm_name) === 0) {&lt;br /&gt;
		$target_vm_id = $vm['vm_id'];&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//find the target image ID&lt;br /&gt;
$images = $api-&amp;gt;request('image', 'list');&lt;br /&gt;
$target_image_id = false;&lt;br /&gt;
&lt;br /&gt;
foreach($images['images'] as $image) {&lt;br /&gt;
	if(strcasecmp($image['name'], $target_image_name) === 0) {&lt;br /&gt;
		$target_image_id = $image['image_id'];&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($target_vm_id === false) {&lt;br /&gt;
	die('No VM found!');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($target_image_id === false) {&lt;br /&gt;
	die('No image found!');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// disassociate the IP address&lt;br /&gt;
$info = $api-&amp;gt;request('vm', 'info', array('vm_id' =&amp;gt; $target_vm_id));&lt;br /&gt;
if(empty($info['info']['ip'])) {&lt;br /&gt;
	die('VM does not have IP!');&lt;br /&gt;
}&lt;br /&gt;
$api-&amp;gt;request('vm', 'floatingip-delete', array('vm_id' =&amp;gt; $target_vm_id, 'keep' =&amp;gt; 'yes'));&lt;br /&gt;
$api-&amp;gt;request('vm', 'delete', array('vm_id' =&amp;gt; $target_vm_id));&lt;br /&gt;
$api-&amp;gt;request('vm', 'create', array('hostname' =&amp;gt; $info['info']['hostname'], 'plan_id' =&amp;gt; $info['extra']['plan_id'], 'image_id' =&amp;gt; $target_image_id, 'ip' =&amp;gt; $info['info']['ip']));&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical details ===&lt;br /&gt;
&lt;br /&gt;
A request can be made given an API ID, API key, category, action, and parameters. The steps are described below. See the code of [https://github.com/LunaNode/lndynamic-api provided API libraries] for more details.&lt;br /&gt;
&lt;br /&gt;
* Create request array by taking parameters and adding &amp;quot;api_id&amp;quot; =&amp;gt; API ID and &amp;quot;api_partialkey&amp;quot; =&amp;gt; first 64 characters of API key.&lt;br /&gt;
* JSON-encode the request array to get a '''raw request message'''.&lt;br /&gt;
* The '''nonce''' is the current UTC time in seconds since epoch (in PHP, &amp;lt;code&amp;gt;$nonce = time();&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The handler path is &amp;quot;{category}/{action}/&amp;quot;&lt;br /&gt;
* The target URL is https://dynamic.lunanode.com/api/{handler_path}&lt;br /&gt;
* Calculate the signature as SHA512-HMAC(&amp;quot;{handler path}|{raw request message}|{nonce}&amp;quot;), using the API key as the HMAC key; here, we are signing the string formed from concatenating handler path, raw request message, and nonce delimited by pipe (|) characters&lt;br /&gt;
* Submit POST request to target URL with these form keys:&lt;br /&gt;
** '''req''': the raw request message&lt;br /&gt;
** '''signature''': the hex-digest output of the SHA512-HMAC&lt;br /&gt;
** '''nonce''': the nonce value&lt;br /&gt;
* The server's response will be a JSON-encoded associative array.&lt;br /&gt;
&lt;br /&gt;
=== Legacy API ===&lt;br /&gt;
&lt;br /&gt;
The legacy API uses simple GET and POST requests for each API action. All API actions are submitted via https://dynamic.lunanode.com/api&lt;br /&gt;
&lt;br /&gt;
For example, to get the info for a virtual machine with hostname &amp;quot;hostname.example.tld&amp;quot;, you can use the following API actions (find the ID for the hostname, then get the info from the ID):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://dynamic.lunanode.com/api?api_id=YOUR_API_ID&amp;amp;api_key=YOUR_API_KEY&amp;amp;category=vm&amp;amp;action=list&lt;br /&gt;
https://dynamic.lunanode.com/api?api_id=YOUR_API_ID&amp;amp;api_key=YOUR_API_KEY&amp;amp;category=vm&amp;amp;action=info&amp;amp;vm_id=FOUND_VM_ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The legacy API isn't necessarily less secure than the newer API, as either way all API actions are encrypted under HTTPS; however, the new API does offer greater protection against timing attacks and hides the API key even if an attacker were able to successfully forge an SSL certificate. So, we encourage usage of the new API where it is not inconvenient, but we plan to maintain the legacy API indefinitely.&lt;br /&gt;
&lt;br /&gt;
== Action list ==&lt;br /&gt;
&lt;br /&gt;
This list serves as a reference for available API actions. See [[API Detail]] for additional details for some API operations.&lt;br /&gt;
&lt;br /&gt;
=== Virtual machine ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|start&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|stop&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|reboot&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|diskswap&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|info&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|delete&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|reimage&lt;br /&gt;
|vm_id, image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|resize&lt;br /&gt;
|vm_id, plan_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|rescue&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|vnc&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|floatingip-add&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string unattached floating IP address on your account), private_ip (string internal IP on VM)&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|floatingip-delete&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string floating IP attached to VM), keep ('yes' to keep floating IP on account; default 'no')&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|iplist&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|ip-add&lt;br /&gt;
|vm_id&lt;br /&gt;
|ip (string unallocated IP in virtual network)&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|ip-delete&lt;br /&gt;
|vm_id, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|securitygroup-add&lt;br /&gt;
|vm_id, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|securitygroup-remove&lt;br /&gt;
|vm_id, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|create&lt;br /&gt;
|hostname, plan_id, image_id&lt;br /&gt;
|region (default 'toronto'), ip (a floating IP on your account), net_id, securitygroups, scripts, volume_id, volume_virtio, key_id, set_password, affinity_group&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|snapshot&lt;br /&gt;
|vm_id, name (e.g. 'mysnapshot')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|shelve&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|unshelve&lt;br /&gt;
|vm_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|vm&lt;br /&gt;
|rename&lt;br /&gt;
|vm_id, hostname&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: for create command, net_id is a network ID number, securitygroups is a comma-separated list of security group ID numbers, scripts is a comma-separated list of script ID numbers, volume_id is the ID number of an unattached volume that the new VM should be booted from (if volume_id is set, image_id is not required), and affinity_group is an affinity group UUID. Also, if volume_id is set, then the driver is ide if volume_virtio is not set, or virtio of volume_virtio is set (value of volume_virtio is ignored). Finally, key_id is an [https://dynamic.lunanode.com/panel/key SSH keypair ID], and set_password can be set if you want the system to add a startup script to set a randomly generated password (this is ignored if key_id is set; also, the system will set password by default for official templates).&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
&lt;br /&gt;
API calls relating to DNS are listed below (see next section for Legacy DNS).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-add&lt;br /&gt;
|name (e.g. 'example.com'), ttl&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|zone-remove&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-list&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-add&lt;br /&gt;
|zone_id, name, data, ttl, type&lt;br /&gt;
|policy, weight, region, regiongroup, country, continent, global, latitude, longitude, aux, monitor_id, orig_record_id&lt;br /&gt;
|-&lt;br /&gt;
|dns2&lt;br /&gt;
|record-remove&lt;br /&gt;
|zone_id, record_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here are details for parameters to the '''record-add''' action:&lt;br /&gt;
&lt;br /&gt;
* '''name''': e.g. 'blah' or 'blah.example.com.' for 'blah.example.com.'&lt;br /&gt;
* '''data''': the record contents, e.g. '1.2.3.4' for an A record or 'other.example.org.' for a CNAME/MX record&lt;br /&gt;
* '''ttl''': time-to-live, e.g. 3600&lt;br /&gt;
* '''type''': one of 'A', 'AAAA', 'CNAME', 'ALIAS', 'MX', 'NS', 'TXT', 'SPF', 'SRV'&lt;br /&gt;
* '''policy (optional)''': geo-targeting policy, 'none' for no geo-targeting, 'latlong' to route to record with closest latitude/longitude to the user's location, and 'region' for hierarchical region-based routing&lt;br /&gt;
* '''weight (optional)''': the record weight (this is used for load balancing or non-round-robin DNS failover)&lt;br /&gt;
* '''region, regiongroup, country, continent, global (optional)''': parameters for hierarchical region-based routing, see the UI for details (set global to 'no' to disable for global group)&lt;br /&gt;
* '''latitude, longitude (optional)''': latitude/longitude for 'latlong' policy&lt;br /&gt;
* '''aux (optional)''': priority for certain record types, such as MX and SRV&lt;br /&gt;
* '''monitor_id (optional)''': the ID of a monitor check (see monitor.check-list action), this record will be disabled if the check fails&lt;br /&gt;
* '''orig_record_id (optional)''': update an existing record with the specified ID instead of creating a new record&lt;br /&gt;
&lt;br /&gt;
=== Legacy DNS ===&lt;br /&gt;
&lt;br /&gt;
API calls relating to Legacy DNS are listed below. Valid DNS record types are 'A', 'AAAA', 'CNAME', 'HINFO', 'MX', 'NAPTR', 'NS', 'PTR', 'RP', 'SRV', and 'TXT'.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|set&lt;br /&gt;
|ip, hostname&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-add&lt;br /&gt;
|origin (e.g., 'example.tld.')&lt;br /&gt;
|ttl&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|zone-remove&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-list&lt;br /&gt;
|zone_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-add&lt;br /&gt;
|zone_id, name (e.g., 'www'), data (e.g., '1.2.3.4'), ttl, type&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|record-remove&lt;br /&gt;
|record_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-add&lt;br /&gt;
|name, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-update&lt;br /&gt;
|dyn_id, name, ip&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|dns&lt;br /&gt;
|dyn-remove&lt;br /&gt;
|dyn_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Image ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|region (will show images across all regions by default)&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|delete&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|details&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|replicate&lt;br /&gt;
|image_id, region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|fetch&lt;br /&gt;
|region, name, location, format ('iso' or 'qcow2')&lt;br /&gt;
|virtio&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|retrieve&lt;br /&gt;
|image_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|image&lt;br /&gt;
|rename&lt;br /&gt;
|image_id, name&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
image.fetch fetches an image from an external source. image.retrieve sends the contents of an existing image as the response body.&lt;br /&gt;
&lt;br /&gt;
=== Volume ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|list&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|create&lt;br /&gt;
|region, label (e.g. 'myvolume'), size (in GB)&lt;br /&gt;
|image, snapshot_id&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|delete&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|attach&lt;br /&gt;
|region, volume_id, vm_id, target (e.g. 'auto' or '/dev/vdc')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|detach&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|info&lt;br /&gt;
|region, volume_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|extend&lt;br /&gt;
|region, volume_id, size (in GB)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-create&lt;br /&gt;
|region, volume_id, label&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-delete&lt;br /&gt;
|region, snapshot_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-list&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|snapshot-replicate&lt;br /&gt;
|region, snapshot_id, image_name (e.g. 'myimage'), dst_region (e.g. 'toronto')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|volume&lt;br /&gt;
|rename&lt;br /&gt;
|volume_id, name&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For volume creation, if image parameter (which should be an image ID) and snapshot_id parameter are not set, then an empty volume will be created. If both are set, an error will be returned.&lt;br /&gt;
&lt;br /&gt;
=== Floating IP ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|add&lt;br /&gt;
|region&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|floating&lt;br /&gt;
|delete&lt;br /&gt;
|region, ip&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Virtual Network ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|region&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|create&lt;br /&gt;
|region, name, subnet (e.g. '192.168.30' for 192.168.30.0/24), dns (e.g. '8.8.8.8,8.8.4.4')&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|network&lt;br /&gt;
|delete&lt;br /&gt;
|region, net_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load Balancer ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|list&lt;br /&gt;
|region&lt;br /&gt;
|net_id&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|create&lt;br /&gt;
|region, net_id, name, method ('ROUND_ROBIN', 'LEAST_CONNECTIONS', or 'SOURCE_IP'), protocol ('HTTP', 'HTTPS', or 'TCP'), connection_limit (-1 for unlimited), port&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|delete&lt;br /&gt;
|region, lb_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|info&lt;br /&gt;
|region, lb_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|member_add&lt;br /&gt;
|region, lb_id, ip, port&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|member_remove&lt;br /&gt;
|region, lb_id, member_id (see lb/info output)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|lb&lt;br /&gt;
|associate&lt;br /&gt;
|region, lb_id, ip&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Plan and region ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|plan&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|region&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Server monitoring ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-types&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-add&lt;br /&gt;
|name, type, fail_count, success_count, check_interval, (also any parameters needed from check-types)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|check-remove&lt;br /&gt;
|check_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-add&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|contact-remove&lt;br /&gt;
|type ('email', 'sms_twilio', or 'http'), rel (e-mail address, phone number, or URL)&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-list&lt;br /&gt;
|check_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-add&lt;br /&gt;
|check_id, contact_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|monitor&lt;br /&gt;
|alert-remove&lt;br /&gt;
|alert_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Security groups ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|create&lt;br /&gt;
|region, name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|delete&lt;br /&gt;
|region, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rename&lt;br /&gt;
|region, group_id, name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-list&lt;br /&gt;
|region, group_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-insert&lt;br /&gt;
|region, group_id, direction ('ingress' or 'egress'), type (4 or 6), protocol ('*', 'tcp', 'udp', or 'icmp'), remote_type ('cidr' or 'group'), remote_value (CIDR or group ID)&lt;br /&gt;
|port_min, port_max, label&lt;br /&gt;
|-&lt;br /&gt;
|securitygroup&lt;br /&gt;
|rule-delete&lt;br /&gt;
|region, group_id, rule_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Startup scripts ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|get&lt;br /&gt;
|script_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|create&lt;br /&gt;
|name, content&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|update&lt;br /&gt;
|script_id, name, content&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|script&lt;br /&gt;
|delete&lt;br /&gt;
|script_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Billing ===&lt;br /&gt;
&lt;br /&gt;
You can check your credit balance from the API.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|billing&lt;br /&gt;
|credit&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E-mail ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category&lt;br /&gt;
! Action&lt;br /&gt;
! Required parameters&lt;br /&gt;
! Optional parameters&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|usage&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-list&lt;br /&gt;
|None&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-add&lt;br /&gt;
|name&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-remove&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-dkim-set&lt;br /&gt;
|domain_id, selector, private_key&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|domain-dkim-unset&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-list&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-add&lt;br /&gt;
|domain_id, username, password&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-set-password&lt;br /&gt;
|domain_id, user_id, password&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|user-remove&lt;br /&gt;
|domain_id, user_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-list&lt;br /&gt;
|domain_id&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-add&lt;br /&gt;
|domain_id, name, target&lt;br /&gt;
|None&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|alias-remove&lt;br /&gt;
|domain_id, alias_id&lt;br /&gt;
|None&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-21T16:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;br /&gt;
* 165.227.88.20 / 2604:a880:400:d0::926:f001 (New York)&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-21T16:42:22Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;br /&gt;
* 165.227.88.20 / 2604:a880:400:d0::926:f001 (New York)&lt;br /&gt;
&lt;br /&gt;
Note: struck through monitoring servers will be disabled on 20 November 2017.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-16T19:11:09Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* &amp;lt;s&amp;gt;192.184.93.183 / 2604:180:1::53b2:98d7 (Seattle)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;107.191.108.175 / 2604:180:2::3860:73c0 (New York)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;108.61.211.102 / 2001:19f0:6c00:8162:5054:ff:fe4f:c32a (Germany)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;5.135.236.84 / 2001:41d0:a:6e42::3 (France)&amp;lt;/s&amp;gt;&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;br /&gt;
* 165.227.88.20 / 2604:a880:400:d0::926:f001 (New York)&lt;br /&gt;
&lt;br /&gt;
Note: struck through monitoring servers will be disabled on 20 November 2017.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-02T21:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* &amp;lt;s&amp;gt;192.184.93.183 / 2604:180:1::53b2:98d7 (Seattle)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;107.191.108.175 / 2604:180:2::3860:73c0 (New York)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;108.61.211.102 / 2001:19f0:6c00:8162:5054:ff:fe4f:c32a (Germany)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;5.135.236.84 / 2001:41d0:a:6e42::3 (France)&amp;lt;/s&amp;gt;&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;br /&gt;
* 165.227.88.20 / 2604:a880:400:d0::926:f001 (New York)&lt;br /&gt;
&lt;br /&gt;
Note: struck through monitoring servers will be disabled on 9 November 2017.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-02T21:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* &amp;lt;s&amp;gt;192.184.93.183 / 2604:180:1::53b2:98d7 (Seattle)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;107.191.108.175 / 2604:180:2::3860:73c0 (New York)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;108.61.211.102 / 2001:19f0:6c00:8162:5054:ff:fe4f:c32a (Germany)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;5.135.236.84 / 2001:41d0:a:6e42::3 (France)&amp;lt;/s&amp;gt;&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;br /&gt;
* 165.227.88.20 / 2604:a880:400:d0::926:f001 (New York)&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-02T21:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* &amp;lt;s&amp;gt;192.184.93.183 / 2604:180:1::53b2:98d7 (Seattle)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;107.191.108.175 / 2604:180:2::3860:73c0 (New York)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;108.61.211.102 / 2001:19f0:6c00:8162:5054:ff:fe4f:c32a (Germany)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;5.135.236.84 / 2001:41d0:a:6e42::3 (France)&amp;lt;/s&amp;gt;&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Server_monitoring</id>
		<title>Server monitoring</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Server_monitoring"/>
				<updated>2017-11-02T20:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* Monitoring locations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Luna Node Dynamic includes [https://dynamic.lunanode.com/panel/monitor server uptime monitoring]. From the panel, you can create various types of checks including HTTP OK, SSL expiration, and ICMP ping. Then, create contacts through e-mail, web hook, SMS, or phone call (note that SMS/voice notifications are charged at the [https://www.twilio.com/sms/pricing/us#outbound-pricing Twilio rate], rounded up to the nearest cent). And finally associate your checks with a subset of contacts.&lt;br /&gt;
&lt;br /&gt;
Select [https://dynamic.lunanode.com/panel/monitor Monitoring] in the sidebar to manage your server monitoring.&lt;br /&gt;
&lt;br /&gt;
== Checks ==&lt;br /&gt;
&lt;br /&gt;
The following checks are supported. The instructions should be self-explanatory, open a ticket if you encounter issues.&lt;br /&gt;
&lt;br /&gt;
* HTTP page contains substring (http_contains): GET the target URL, and ensure that the page contents includes a given string.&lt;br /&gt;
* HTTP status OK (http_ok): GET the target URL and confirm status code is 200 OK.&lt;br /&gt;
* HTTP status code check (http_status): GET the target URL and confirm status code matches the given expected value.&lt;br /&gt;
* SSL expiration check (ssl_expire): connect via SSL and ensure certificate isn't going to expire soon.&lt;br /&gt;
* Ping (ping): do three ICMP pings to target and confirm that we get at least one ping back.&lt;br /&gt;
* TCP connection test (tcp_connect): connect to given host and port with timeout.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
You can add contacts with e-mail, web hook, SMS, or phone call.&lt;br /&gt;
&lt;br /&gt;
For web hook contacts, enter the target URL, and the system will perform a POST request on the URL with the check details in the POST fields.&lt;br /&gt;
&lt;br /&gt;
== Alerts ==&lt;br /&gt;
&lt;br /&gt;
Alerts is simply an association between a check and a contact. These are created by selecting a check after you create some from the Checks list, and then selecting a contact from dropdown and hitting Associate button.&lt;br /&gt;
&lt;br /&gt;
The web hook alert will perform a POST request on the configured URL with these parameters (which will be form encoded):&lt;br /&gt;
&lt;br /&gt;
* check_id: the ID of the check whose status changed&lt;br /&gt;
* name: check name&lt;br /&gt;
* type: check type&lt;br /&gt;
* data: check parameters&lt;br /&gt;
* status: either &amp;quot;online&amp;quot; or &amp;quot;offline&amp;quot;, depending on whether the check came up or went down&lt;br /&gt;
* message: a description of the reason for the status change&lt;br /&gt;
&lt;br /&gt;
== Monitoring locations ==&lt;br /&gt;
&lt;br /&gt;
Servers are monitored from these IP addresses:&lt;br /&gt;
&lt;br /&gt;
* 172.81.176.99 / 2602:ffb6:2:0:f816:3eff:fe17:8ff7 (Toronto)&lt;br /&gt;
* {{strikethrough|192.184.93.183 / 2604:180:1::53b2:98d7 (Seattle)}}&lt;br /&gt;
* {{strikethrough|107.191.108.175 / 2604:180:2::3860:73c0 (New York)}}&lt;br /&gt;
* {{strikethrough|108.61.211.102 / 2001:19f0:6c00:8162:5054:ff:fe4f:c32a (Germany)}}&lt;br /&gt;
* {{strikethrough|5.135.236.84 / 2001:41d0:a:6e42::3 (France)}}&lt;br /&gt;
* 158.69.228.239 / 2607:5300:60:9bef::2 (Montreal)&lt;br /&gt;
* 178.33.60.64 / 2001:41d0:2:cb40::2 (Roubaix)&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	<entry>
		<id>https://wiki.lunanode.com/index.php/Frequently_asked_questions</id>
		<title>Frequently asked questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.lunanode.com/index.php/Frequently_asked_questions"/>
				<updated>2017-09-06T17:58:05Z</updated>
		
		<summary type="html">&lt;p&gt;Favyen Bastani: /* I cannot login as root! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Cannot connect with SSH to newly booted VM ===&lt;br /&gt;
&lt;br /&gt;
The provisioning and booting process may take as long as five minutes in some cases, depending on the specific operating system you are selecting. You can monitor progress over VNC by hitting the VNC Connection button. Once booted, you will be able to authenticate via SSH using the username and password displayed on the virtual machine page (or SSH key if you specified one).&lt;br /&gt;
&lt;br /&gt;
Note that if you selected an image marked &amp;quot;ISO&amp;quot; when provisioning the VM, you will have to install the operating system via VNC. If you simply want a ready-made VM up and running, you should select an image marked &amp;quot;template&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
=== I cannot ping my IP address 172.20.8.187 ===&lt;br /&gt;
&lt;br /&gt;
The IP address starting with 172 is the private IP address for your VM. Go to your VM details page and look for the &amp;quot;external IP address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== How to purchase the Special XYZ plan? ===&lt;br /&gt;
&lt;br /&gt;
First, check https://dynamic.lunanode.com/info to make sure it is still in stock. If so, you can [https://dynamic.lunanode.com/register register an account] and then go to the Create VM sidebar option to create the VM of your desired special plan. Note that special plans are only available for a limited time.&lt;br /&gt;
&lt;br /&gt;
=== Do you support IPv6? ===&lt;br /&gt;
&lt;br /&gt;
Yes! We support IPv6 in Toronto. Virtual machines are automatically assigned an IPv6 address via SLAAC. User-created virtual networks receive a /64 IPv6 allocation, and virtual machines created on such networks can use any address on the allocated subnet.&lt;br /&gt;
&lt;br /&gt;
=== My account request was denied ===&lt;br /&gt;
&lt;br /&gt;
We do not accept new account registrations from proxies, hosting services, or other non-residential/business IP addresses. Please contact support@lunanode.com if you do not know why your account request was denied.&lt;br /&gt;
&lt;br /&gt;
=== How to resize my VM? ===&lt;br /&gt;
&lt;br /&gt;
To resize your VM, select the VM and use the Resize utility.&lt;br /&gt;
&lt;br /&gt;
Note that the resize will fail if you attempt to resize a local-storage-backed instance to a plan with a smaller disk size. Follow these steps to resize a VM down:&lt;br /&gt;
&lt;br /&gt;
* Take a snapshot of the VM&lt;br /&gt;
* Once the snapshot is ready (you can monitor the progress from the Images tab), go to the Volumes tab and create a volume from the snapshot with the old snapshot size&lt;br /&gt;
* Boot a new VM with &amp;quot;Ubuntu 14.04 64-bit&amp;quot; template, and attach the volume to the VM&lt;br /&gt;
* Assuming that the volume is attached at /dev/vdc, run &amp;lt;tt&amp;gt;resize2fs /dev/vdc1 10G&amp;lt;/tt&amp;gt; (replacing 10G with desired size in gigabytes; aim for as small a size as possible, so that the partition and disk will fit)&lt;br /&gt;
* Then, run fdisk /dev/vdc and re-create the partition; make sure the start sector is the same, and also make sure to set the bootable flag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# fdisk /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 37.6 GB, 37580963840 bytes&lt;br /&gt;
4 heads, 32 sectors/track, 573440 cylinders, total 73400320 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x000d8e94&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/vdc1   *        2048    73400319    36699136   83  Linux&lt;br /&gt;
&lt;br /&gt;
Command (m for help): d 1&lt;br /&gt;
Selected partition 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): n&lt;br /&gt;
Partition type:&lt;br /&gt;
   p   primary (0 primary, 0 extended, 4 free)&lt;br /&gt;
   e   extended&lt;br /&gt;
Select (default p): &lt;br /&gt;
Using default response p&lt;br /&gt;
Partition number (1-4, default 1): &lt;br /&gt;
Using default value 1&lt;br /&gt;
First sector (2048-73400319, default 2048): &lt;br /&gt;
Using default value 2048&lt;br /&gt;
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319): 33556479&lt;br /&gt;
&lt;br /&gt;
Command (m for help): a&lt;br /&gt;
Partition number (1-4): 1&lt;br /&gt;
&lt;br /&gt;
Command (m for help): w&lt;br /&gt;
The partition table has been altered!&lt;br /&gt;
&lt;br /&gt;
Calling ioctl() to re-read partition table.&lt;br /&gt;
Syncing disks.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above, to calculate the last sector, you can try multiplying the default last sector by the fraction that you're resizing down; e.g. if resizing from 35 GB to 15 GB, multiply (73400319 / 35 * 14) (we use 14 instead of just 15 since the partition table and other elements take up some space; do make sure that the filesystem has been resized to less than this many GB in the &amp;lt;tt&amp;gt;resize2fs&amp;lt;/tt&amp;gt; command earlier).&lt;br /&gt;
&lt;br /&gt;
* Create a new volume with the desired size, and attach it to the same VM&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;fdisk /dev/vdd&amp;lt;/tt&amp;gt; to create identical partitions on the new volume&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;dd if=/dev/vdc1 of=/dev/vdd1 bs=64k&amp;lt;/tt&amp;gt; to copy data from the partition on the old volume to the partition on the new volume&lt;br /&gt;
* Detach both volumes from the VM, and delete the volume with old size&lt;br /&gt;
* Select the volume with new size from the Volumes tab, and convert it to an image&lt;br /&gt;
* Boot the new VM from the image&lt;br /&gt;
&lt;br /&gt;
=== Unable to attach volume to my Windows VM ===&lt;br /&gt;
&lt;br /&gt;
Volumes are best used with Linux virtual machines using the virtio driver. If you are using another operating system or ide driver, then you likely will need to shut down the VM before attaching or detaching volumes. You may also need to specify the attachment target as /dev/hdc or /dev/hdd or etc.&lt;br /&gt;
&lt;br /&gt;
=== What is the default username for virtual machines provisioned using the stock templates ===&lt;br /&gt;
The administrative username for template-based virtual machines are as the following:&lt;br /&gt;
*Ubuntu: ubuntu&lt;br /&gt;
*Debian: debian&lt;br /&gt;
*CentOS: cloud-user / centos&lt;br /&gt;
*Fedora: fedora&lt;br /&gt;
*CoreOS: core&lt;br /&gt;
&lt;br /&gt;
=== I cannot login as root! ===&lt;br /&gt;
&lt;br /&gt;
As stated in the &amp;quot;VM provisioned successfully&amp;quot; email, template-based virtual machines are configured to accept connections with the administrative user. The password is displayed on the virtual machine details page. For security reasons, the VM does not accept root login by default.&lt;br /&gt;
&lt;br /&gt;
Once authenticated as the administrative user, you can execute &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt; to login as root.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can of course set a root password. First, login as root by authenticating with the administrative user and running &amp;lt;tt&amp;gt;sudo su&amp;lt;/tt&amp;gt;. Then, run &amp;lt;tt&amp;gt;passwd&amp;lt;/tt&amp;gt; to set a root user password. Finally, edit the SSH configuration:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config&lt;br /&gt;
service ssh restart; service sshd restart&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then logout and you should be able to authenicate via SSH directly as the root user with your newly set password.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use a [[Startup scripts|startup script]] so that the root password is set when the VM boots.&lt;br /&gt;
&lt;br /&gt;
Note: use an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty] to authenticate.&lt;br /&gt;
&lt;br /&gt;
Please note that our services are unmanaged and you are responsible or the security of your VM; if your VM is taken over and used in denial of service attacks, spam, or other activities that violate our [https://dynamic.lunanode.com/terms terms of service], your account may be suspended depending on the circumstances.&lt;br /&gt;
&lt;br /&gt;
=== Is additional bandwidth usage billed hourly? What about CPU usage for flexible plans? ===&lt;br /&gt;
&lt;br /&gt;
Both bandwidth and CPU are billed as '''consumable resources''', i.e., you are charged for the amount that you use. For example, if you use 5 GB bandwidth, then you will be billed $0.003 for each GB, and it does not matter how long it takes you to use that 5 GB. Similarly, for CPU usage, if you use 10 CPU-core-hours (e.g. 5% of a CPU core for 200 hours, or 100% of a CPU core for 10 hours) then you will be billed $0.22, and again it doesn't matter what timespan you use it over.&lt;br /&gt;
&lt;br /&gt;
So, the question of whether we bill &amp;quot;hourly&amp;quot; versus &amp;quot;monthly&amp;quot; doesn't make sense for flexible resources (including additional bandwidth on all plans, as well as bandwidth / CPU for flexible plans). For fixed resources (memory, disk size, etc.), though, we do bill hourly.&lt;br /&gt;
&lt;br /&gt;
If you are still confused, this is probably because you are used to monthly providers that may charge for additional CPU core or additional 1 TB bandwidth for the next month. The reason that monthly providers do this is because they don't expect you to use the full allocation, and if you only use 500 GB additional bandwidth then they save 500 GB on their end. However, in our case, we charge for resources '''as they are being consumed''' instead of in advance, so hourly versus monthly no longer matters, and you only need to pay for what you use.&lt;br /&gt;
&lt;br /&gt;
=== My disk space is smaller than the plan disk ===&lt;br /&gt;
&lt;br /&gt;
Almost all of the templates will automatically resize the partition and filesystem the first time that the virtual machine boots. If you install from ISO, you can also choose the partitioning scheme.&lt;br /&gt;
&lt;br /&gt;
So, if you are having this problem where filesystem doesn't actually get resized, it likely means you are using the CentOS 6 template, which does not support automatic filesystem resizing. You can instead run the following commands to manually resize the partition/filesystem:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
fdisk /dev/vda&lt;br /&gt;
&amp;gt; u&lt;br /&gt;
(this will switch units to sector; it is important that you use sectors and not cylinders!)&lt;br /&gt;
&amp;gt; p&lt;br /&gt;
(this will print all of the partitions, we will refer to the data later)&lt;br /&gt;
&amp;gt; d 1&lt;br /&gt;
(this will display &amp;quot;Selected partition 1&amp;quot; and delete the first partition)&lt;br /&gt;
&amp;gt; n&lt;br /&gt;
(select &amp;quot;p&amp;quot; for primary partition)&lt;br /&gt;
(partition number should be 1, but make sure it matches the number displayed in print command)&lt;br /&gt;
(first sector should be 2048, but make sure it matches the &amp;quot;Start&amp;quot; column displayed in print command)&lt;br /&gt;
(and set last sector to the default value)&lt;br /&gt;
&amp;gt; a&lt;br /&gt;
(type &amp;quot;1&amp;quot; to make new first partition bootable)&lt;br /&gt;
&amp;gt; w&lt;br /&gt;
(this will write the new partitions and exit fdisk)&lt;br /&gt;
shutdown -r 0&lt;br /&gt;
(connect to VM after it reboots, if it has resized partition but not filesystem then run resize2fs)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: when creating the new partition, make sure that the first sector matches the sector displayed in print command (typically 2048). The default option that fdisk will provide is incorrect.&lt;br /&gt;
&lt;br /&gt;
=== The VNC connection doesn't work for me ===&lt;br /&gt;
&lt;br /&gt;
This is usually caused by a firewall on your computer, router, or at your ISP; or because of outdated browser software. If you are using the noVNC client, first try switching to another browser and see if it works there.&lt;br /&gt;
&lt;br /&gt;
If it still doesn't connect (e.g. you get &amp;quot;Connection Timeout&amp;quot; error), then you can try to use the VNC tunnel connection method so that you can use your own desktop VNC client instead of noVNC. To do this, go to the Account tab in the top right, scroll down to VNC Connection Method, and change to tunnel. Then, when you click the VNC button, you will be given VNC login details that you can plug into your desktop VNC client to connect to your virtual machine instance.&lt;br /&gt;
&lt;br /&gt;
Note: you may have to subtract 5900 from the port provided by the tunnel in some cases. So for example, if the panel says to connect to 167.114.159.49:6105, and that doesn't work, then also try connecting to 167.114.159.49:205.&lt;br /&gt;
&lt;br /&gt;
=== Can I shutdown my VMs to avoid being billed? ===&lt;br /&gt;
&lt;br /&gt;
You can use the Shelve functionality to deactivate your virtual machine. Once a VM is shelved, you will only be billed for the storage space, at $0.03/GB/mo, and assigned IP addresses, at $1/mo (both fees are charged hourly); the pricing change will be reflected in the billing section of the panel dashboard. You can reactivate the VM at any time by pressing Unshelve from the VM details.&lt;br /&gt;
&lt;br /&gt;
=== Why is my geo-location database showing the IP address in an incorrect location? ===&lt;br /&gt;
&lt;br /&gt;
We set standard Referral Whois (RWhois) records that indicate the exact location of all IP addresses that we operate. If your geo-location database does not show the correct location for our IP addresses, that means that the database provider is not checking our RWhois records. You would need to direct questions regarding the inaccuracy of their database to them. Please do not contact us with any questions about IP geo-location as we do not maintain these databases.&lt;/div&gt;</summary>
		<author><name>Favyen Bastani</name></author>	</entry>

	</feed>