Modernize Your Email with Connect Exchange

Your Business Demands More.

You’ve suffered under the limitations of basic email service for long enough. DataYard’s newest offering, Connect Exchange, lets you take advantage of the full suite of Microsoft Exchange and Outlook features, without the cost and hassle of buying a server of your own.

It’s time to work differently. It’s time to work smarter. Let DataYard help – talk to us today.

remote access icon Escape the dark age.
Synchronize your email, calendars, and contacts across all of your devices. Get anytime, anywhere access on your PC, laptop, smart phone and tablet – you’ll wonder how you lived without it.
24-7-365 monitoring Always up and running.
Be confident in 24/7 access to email, so no more worrying about an hour of downtime ending a deal. Rest easy with an industry leading 99.999% uptime guarantee.
cloud connectivity icon Freedom to get more done.
Give yourself the freedom to connect with critical information, online and offline, so you can work faster and more efficiently.
customer notification icon Incredible customer service.
DataYard customers love local, responsive customer service! Real people provide real assistance and will help you make a smooth transition!

Monthly plans start at $90 for 10 users.

 

Ready to learn more? Contact us for a consultation.

Monthly Technical Operations Maintenance Window – April 18, 2015

The DataYard Technical Operations team will begin the monthly maintenance window for April at 6:00AM EDT, Saturday, April 18, 2015 with an anticipated completion time of 12:00PM EDT on Saturday April 18, 2015.

During this month’s maintenance window, DataYard System Administrators will be installing security patches on all managed and shared servers.  Service interruptions are expected to be brief, if they occur at all.

If you have any questions regarding this maintenance please contact our technical support team at 1.800.982.4539 or [email protected]. Remember to follow us on Twitter (@datayard) for the latest service and maintenance status updates as well as other happenings at DataYard.

Monthly Technical Operations Maintenance Window – March 14, 2015

The DataYard Technical Operations team will begin the monthly maintenance window for March at 6:00AM EDT, Saturday, March 14, 2015 with an anticipated completion time of 12:00PM EDT on Saturday March 14, 2015.

During this month’s maintenance window, DataYard System Administrators will be installing security patches on managed and shared servers. Network Administrators will be performing routine Hosted Firewall security updates. Service interruptions are expected to be brief, if they occur at all.

If you have any questions regarding this maintenance please contact our technical support team at 1.800.982.4539 or [email protected]. Remember to follow us on Twitter (@datayard) for the latest service and maintenance status updates as well as other happenings at DataYard.

Utilizing Cgroups to Balance Resources

Cgroups-image1

How often have you endured complaints from users about server or service performance because of a small subset of users who are taxing the system, utilizing the majority of the available resources? How do you manage resource sharing on a multi-purpose server that may have a database server and web server running together? We have experienced these situations many times, but rather than write exotic process management scripts, maintain heavily modified init scripts or complicated user environments; we have switched to using cgroups.

What are Cgroups?

Cgroups or container groups started in September 2006 as a patch for the Linux kernel initially developed by a few Google engineers. Process containers, as they were initially called, allowed administrators to restrict or prioritize processes and their access to server subsystems. In the 2.6.24 kernel release process containers was merged into the mainline kernel and were renamed to cgroups.

Cgroups provide hooks into various kernel subsystems which allow an administrator to limit the resource utilization of a single process or group of processes on one or more subsystems on the server. Cgroups are currently able to limit CPU, memory, network, and disk I/O. They are also able to perform resource accounting and have the ability to pause and restart processes. As cgroups have grown and developed they have become part of LXC, an OS level virtual server implementation similar to Linux-Vserver or OpenVZ.

Take the following example as an example of how cgroups can be used to balance resource utilization on a server. Company XYZ, Inc has a multi-purpose application server with three departments utilizing it, Accounting, HR, and Sales. This server is also providing XYZ, Inc’s intranet site. Administrators frequently receive complaints from internal users about the performance of the corporate intranet site when HR is running their payroll report. dditionally, Accounting and HR are unable to run their reports at the same time due to the degradation of performance. By using cgroups on this application server it is possible to improve the end users experience for all departments.

Since cgroups work in a hierarchical fashion and allows for multiple hierarchal groups to co-exist we can setup multiple, nested cgroups to limit users or processes from consuming all the system resources. This will protect system resources for other processes ensuring they will always have access to system resources. For XYZ, Inc’s application server we can create two “top level” cgroups, one we would call ‘departments’ and the other ‘daemons’. Inside the root level of each hierarchy we can set the maximum amount of CPU time the whole group will have available to it. We can give our ‘departments’ group 80% of the CPU and memory and ‘daemons’ group 20% of the CPU and memory. The application accounting uses is CPU and memory intensive and we want to prevent those applications from negatively impacting the intranet site and other department’s applications. Within our ‘departments’ hierarchy we can create three additional cgroups, one for each department, giving each a percentage of the 80% of the CPU and memory that has been allocated to the ‘departments’ cgroup. This now limits the memory and cpu that can be consumed by each department and allows a more equitable sharing of the resources. We could continue on adding additional sub-cgroups in ‘departments’ limiting or guaranteeing the amount of block I/O or network throughput for certain departments, applications or users.

Cgroups-image2

Utilizing Cgroups

While the explanation provided is fairly straight forward, when it comes to configuring cgroups, it can be rather daunting as the process isn’t well documented. Cgroups utilizes a pseudo file system for configuration and reporting very similar to the proc or sys files systems. There are two ways to setup cgroups. The first is to write scripts that will mount the pseudo file system which is composed of the subsystems that will be used, create the hierarchy that will be used and and finally set the values for the cgroups. The second way uses the scripts and daemons that come in Debian’s cgroup-bin package or Red Hat’s libcgroup package. With the second method only two configuration files need to be modified.

In Debian based distributions those files are /etc/cgconfig.conf and /etc/cgrules.conf. The basic tools to configure and manage cgroups comes in packages for Debian and Redhat, cgroup-bin and libcgroup which provide the cgconf init script for setting up cgroups and the cgred daemon which places processes in cgroups based on user defined rules.

cgconf

The first init script is cgconf. This script will setup cgroups based on the /etc/cgconfig.conf configuration file. In this file you are able to set the subsystems that you wish to be able to control and then set the values for the various subsystems. Currently cgroups supports the following subsystems: blkio (block device I/O), cpu, cpuacct (CPU accounting), cpuset (CPU core affinity and NUMA access), devices (allows and denies access to block and character devices), memory, freezer (suspend and resume of processes), net_cls (allows for tagging and classification of packets), net_prio (allows for setting the priority of the outbound traffic on a specific interface), ns (limits access to a specific namespace), perf_event (allows for monitoring of processes via the perf tool).

An example from the Red Hat documentation of a cgconf configuration file.

mount {   

    cpu     = /cgroup/cpu_and_mem;

    cpuacct = /cgroup/cpu_and_mem;

    memory  = /cgroup/cpu_and_mem;

}

group finance {

        cpu {

                cpu.shares=”250″;

        }

        cpuacct {

                cpuacct.usage=”0″;

        }

        memory {

                memory.limit_in_bytes=”2G”;

                memory.memsw.limit_in_bytes=”3G”;

        }

}

group sales {

        cpu {

                cpu.shares=”250″;

        }

        cpuacct {

                cpuacct.usage=”0″;

        }

        memory {

                memory.limit_in_bytes=”4G”;

                memory.memsw.limit_in_bytes=”6G”;

        }

}

group engineering {

        cpu {

                cpu.shares=”500″;

        }

        cpuacct {

                cpuacct.usage=”0″;

        }

        memory {

                memory.limit_in_bytes=”8G”;

                memory.memsw.limit_in_bytes=”16G”;

        }

}

When editing the configuration file for cgconf you will need to restart the /etc/init.d/cgconf init script. Restarting only unmounts and remounts the cgroups file system, but this will clear all current cgroups, their configuration directives and will also free all processes from cgroup restrictions. I have found that it is best for persistent daemons such as Apache or MySQL to be restarted after cgconf is restarted to ensure all processes are placed under cgroups control again.

cgrules

The second init script will start the cgred daemon which is the cgroup rules engine daemon. This daemon moves processes into the correct cgroup as the process is created. The daemon takes its configuration from /etc/cgrules.conf. You can configure processes to go into specific cgroups based on the user and/or group the process is running under and/or the process name.

Most documentation that I found while implementing this in some of our production environments was basic; either referencing or coming straight from the Linux kernel documentation of cgroupsone of the most helpful documents was from Red Hat. We are almost entirely a Debian based shop so there are a few difference in how Debian configures cgroups. One of the main differences is the location of the root cgroup. In Redhat based distributions this file system is mounted at /cgroups/. Debian based distributions mount this in /sys/fs/cgroups/. While you can change where this mounts, I would recommend keeping this at the default location as it makes it much easier with the default init scripts to work with the cgroups.

While deploying cgroups I encountered a known issue in Debian 7 “Wheezy” where the init scripts are broken. This was with libcgroup 0.38-1 which shipped with Wheezy. There was an attempt in Wheezy to fix a bug in the init scripts, which could cause processes to crash when loading a new configuration; however, the bug was not correctly fixed when Wheezy shipped. I had to use the init script for cgconf that shipped with Debian 6 “Squeeze” to get cgconf to behave as expected.

We have cgroups implemented on our shared Linux Fusion Web Hosting platform. Being able to restrict the amount of memory and cpu that processes like Apache or PHP can consume has helped to limit the impact of DoS attacks against our customer sites. Beyond this, we are implementing cgroups in other areas of our Linux infrastructure to provide better access to servers during times of high utilization. We have found cgroups as an effective way to manage and enforce resource sharing in our multi-user Linux environments.

“Heartbleed” Vulnerability Rocks the Web – DataYard Responds

Earlier this week, a security advisory was released by the OpenSSL team warning of a vulnerability for certain versions of the organization’s widely popular encryption package. If you’ve listened to the radio or watched the news in the last 24 hours, there’s a good chance you have wondered what (if anything) this means to you. From the official page of the team tracking the bug:

“The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. This weakness allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet. SSL/TLS provides communication security and privacy over the Internet for applications such as web, email, instant messaging (IM) and some virtual private networks (VPNs).”

DataYard quickly responded to the potential security issues this new vulnerability posed to our customers.

Our system engineers and administrators worked throughout the evening on April 8th and into the morning of April 9th to ensure the security hole was patched on every system under DataYard Server Management. By 7:45AM on the 9th, all client and DataYard corporate systems were fully protected, hours before the mainstream media began reporting on the story. CNN didn’t begin its coverage until 10:23 that morning.

There are plenty of in-depth response articles emerging within the technical community, both as organizations continue to deal with this problem and as others are just realizing its scope. DataYard continues to educate concerned customers on any potential security implications the vulnerable code base may have created. But at the moment I think it is important to focus briefly on the value that a professional, focused, and serious system administration team brings to the business in a digital age. 

To the client, system administration is not a sexy endeavor.

With great system administration there is not the obvious visual satisfaction offered by such trades as design, manufacturing, architecture, and countless other creative occupations. Rest assured, DataYard System Engineers do not deploy final security fixes or application upgrades at 3:23AM to the roar of customer accolades and champagne spray at Winner’s Circle.

But that is kind of the point. The value of DataYard Server Management isn’t that you see it; in fact, it’s quite the opposite. The value is that when something like Heartbleed happens, it isn’t your responsibility as the client to respond to or even know about the issue – it’s ours. And, believe it or not, we think that calmly fixing potential problems before they become real problems is pretty sexy in its own right. 

NASCAR can keep the champagne.