Tag Archive - storage

vmware labs

I’ve been working intensively with vmWARE products for the last couple of months.

I’ve already wrote about LabsPhoenix’s MYTH cluster entering phase 02 of its development – few months ahead of schedule. It is currently configured as a 3 nodes vSphere Enterprise+ cluster of very modest capacity (Resources: CPU 21GHz, Memory 48GB, Storage 4TB). Next phase is within 60days and will see those resources grow by another 66%. This ‘demo‘ has been so successful that we are already drafting plans for another cluster.

One of LabsPhoenix’s main client also asked me to re-factor its lab environment. Here, we are talking of a 4 nodes vSphere Enterprise cluster, built from scratch, with some very nice capacity (Resources: CPU 95Ghz, Memory 252GB, Storage 2TB).

I’m not throwing those numbers out there to poke anyone, its more of an offer: If anyone got some specific questions about vmWARE deployment, feel free to ping me. I’m often available for a quick chat. My cie, LabsPhoenix, also has some competent sysadmin if the problem get too large / if speed is of the essence.

Sometimes, we get hit by strange errors: Following an upgrade of the Cisco 3750 switches configuration to an higher MTU value (9000bits, to support jumbo frame on the attached iSCSI MSA); The VCENTER process started acting up on the management server. Quick restart of the process worked fined, but nothing in the log shows why the switch’s configuration reload broke that specific service.

Also, changing MTU value in a vmKernel interface is quite easy on vSphere 4.1 – it can even be done through the gui. You might search the option for quite some times though! It is hidden in Home>Inventory>Networking, in the distributed virtual switch configuration (right-click on it, edit setting). If your not using dvSwitch, then, your stuck through CLI commands.

hard drive vibration

You gotta love those SUN’s Fishwork Engineer…

In the following video, Brendan Gregg plot I/O operations per seconds by latency and number of I/O ops over a defined time threshold while some “vibration” are introduced. Bottom line : Do not yell at your computer. You are not helping.

Youtube video: Bredan Gregg & hd vibrations

removing mysql-bin log files

One of the main part of Laboratoires Phoenix sentinel network is the Zabbix monitoring system.

In direct correlation with this fact is that the main concern inside this sentinel network is the database footprint of MySQL. I do not mean the ‘size-in-memory’, since I do have quite enough ram on those systems. And I’m not doing that much caching since data change very, very often. What I mean is the size of the database & binaries log-files on disk.

To make the story short: I always move /var/lib/mysql on a separate partition to be certain a db surge would not bring down / compromise other server functions. Seem like I forgot (on one of the system) that Debian standard location for the mysql-bin log-files was in /var/log/mysql.

Since those are independent servers (not multi-master / replicated MySQL system), here is the magic sequence to remove unused mysql-bin files.

# vi /etc/mysql/my.cnf
[modify bin-log number/space usage]
# ls -la /var/log/mysq/
# mysql -uroot -p
[enter password]
# purge binary logs to ‘mysql-bin.000321′;
[where mysql-bin.000321 is one of the last / up to the point you want too keep].

There you go.

glusterfs & synchronous data storage

Labs: installation & configuration of GlusterFS as synchronous data storage solution.
By: Pascal Charest, Freesoftware consultant
Date: September, 2008.

Synchronization of files in a cloud environment is a challenge in the path of high-{availability, performance}. From simple load balanced web sites to full-blown applications – some files always need to be in sync. Peoples, for simplicity, rely on asynchronous transfer (ie: rsync ), others deploy bigger solutions (ie: block device replication through DRBD or shared storage through AoE protocol & concurrency management with OCFSv2) or even go for the “lazy” “no-shared-storage” solution through NFS.

To address this problem in the PraizedMedia software stack, I decided to give FUSE based GlusterFS a try. Awesome, really ! The technical knowledge to deploy a basic solution is very very low. The modularity of the program also help to have “something working right now”. This isn’t meant as a direct alternative to DRBD or a good SAN deployment but in my use case, it fit perfectly.

In this lab, I will guide you through the installation of GlusterFS on 2 networked systems. They will be both used as “servers” & “client” for the GlusterFS filesystem. They will be sharing a directory (on both system : /var/production/brick), re-mounted as /var/production/static through GlusterFS. Any write I/O on this directory (of any client server) will be synchronized to the pool. This last feature is called “AFR” (for automatic file replication) and is a module (called a translator) to the GlusterFS file system.

The specificity of my environment is around the file-locking management : I don’t need any. By design, the application will never try to write the same file twice on any of the server.

#Installation of requirement (standard tools)
apt-get install flex bison libfuse-dev linux-headaers-`uname -r` curl

#download of the sources
cd /usr/local/src/
curl -O http://ftp.zresearch.com/pub/gluster/glusterfs/1.3/glusterfs-CURRENT.tar.gz
tar zxf glusterfs-CURRENT.tar.gz


# configure
cd glusterfs-1.3.11
./configure --prefix=/usr/local/glusterfs-1.3.11
make && make install
ln -s /usr/local/glusterfs-1.3.11 /usr/local/glusterfs


So we now have a basic 2 servers GlusterFS systems installed. Lets be honest, that wasn’t really hard! We are still missing configuration files though.

#Editing /usr/local/glusterfs/etc/glusterfs/glusterfs-server.vol
#
# glusterfs-servers definition
# volume definition are on first lvl, other are on second lvl (tabbed)
volume brick
type storage/posix
option directory /mnt/production/brick
end-volume

volume server
type protocol/server
option transport-type tcp/server
option auth.ip.brick.allow *
subvolumes brick
end-volume


#Editing the /usr/local/glusterfs/etc/glusterfs/glusterfs-client.vol
#
# glusterfs-client.vol
# volume definition are on first lvl, other are on second lvl (tabbed)
#
volume remote1
type protocol/client
option transport-type tcp/client
option remote-host 002.praized.com
option remote-subvolume brick
end-volume

volume remote2
type protocol/client
option transport-type tcp/client
option remote-host 001.praized.com
option remote-subvolume brick
end-volume

volume mirror0
type cluster/afr
subvolumes remote1 remote2
end-volume


#Launching services (servers and clients)
mkdir -p /mnt/production/brick
/usr/local/glusterfs-1.3.11/sbin/glusterfsd -f /usr/local/glusterfs-1.3.11/etc/glusterfs/glusterfs-server.vol

mkdir -p /mnt/production/static
/usr/local/glusterfs-1.3.11/sbin/glusterfs -f /usr/local/glusterfs-1.3.11/etc/glusterfs/glusterfs-client.vol /mnt/production/static/


You now possess a synchronized directory between your two systems. Please note that GlusterFS require TCP/6996 port to be open. There is also some improvement that can be done to this setup through adding a locking mechanism & i/o thread – I don’t currently need them, but you might.
Enjoy!

Debugging notes ; after starting the server process you should have a kernel process call glusterfs. All log files are in /usr/local/glusterfs/var/log/glusterfs*. After starting the client, “df -h” should show you your new mount point. Careful with UID/GID (&Permission), there is no such thing as root_squash_fs in GlusterFS yet.


Other notes ; Using Amazon EBS would have been the perfect solution if they did allow multiple servers-volume mount and lets us deal with concurrency / lock problems. But, they don’t.

Linux Symposium 2008

Oups !

J’ai oublié de mentioner que le Linux Symposium d’Ottawa arrive à grand pas. Je vais y être présent, du 22 au 26 Juillet 2008, pour blogger sur les différents acteurs du milieu de l’OpenSource. Compte tenu mon “background” en storage / virtualisation / cloud computing ; j’ai un intéret particulier pour les discussions suivantes:

Tux meets Radar O’reilly – Linux in military telecom” : Il est toujours intéressant de voir un déploiement dans une optique militaire. Dans le militaire, tout comme pour le bancaire et medical, l’erreur est beaucoup moins tolérée et peut être source de répercussions incroyables… Pour prévenir les bourdes, les systèmes sont testés très précisement – le commun des mortels a surement beaucoup à apprendre de cet état d’esprit. Investir pour la stabilité – ce n’est pas fou comme idée!

A Survey of Virtualization Workloads” : Simple, mais si la présentation – et les recherches! – est bien effectuée, il peut y avoir correlation avec des use-case que je rencontre lors de mes consultations. Elle est suivie d’une deuxième présentation qui lui semble quasi identique – worst case : j’irai voir les deux.

Applying Green Computing to clusters and the data center” : Je ne connais que très superficiellement ce domaine, si nous excluons le “tu configures du wake-on-lan associé avec un control de charge”. Étant particulièrement biasé vers la solution “tu ajoutes des systèmes” – autant au niveau création d’actif financier et réduction de coûts – J’imagine que je vais pouvoir briser le voile de mon ignorance et changer ma position.

“SynergyFS: A Stackable File System Creating Synergies Between Heterogeneous Storage Devices” : Les discussions sur le stockage sur des environnements hybrides m’acrochent toujours. Le storage est un problème avec plus de 50 solutions dans le monde GNU/Linux (50+ fs supportés par le noyau) – chacune d’entre elle avec des forces et faiblesses. Voyons voir comment profiter des forces en “patchant les faiblesses avec d’autre système de fichiers”.

“If I turn this knob… what happens?” :
Dernière présentation qui à le mérite de mon intéret – et pas la moindre. Il est question de la prise de métrique (io, scheduler, lock_wait, sys/proc fs,…) et d’agir sur les résultats. En résumé, elle calque exactement ce que je fais en capacity planning pour les clouds/clusters que je déploie. J’aime toujours voir et dialoguer sur les processus utilisés par d’autres consultants.

See you there!

Page 1 of 3123»