Tonite at the Silicon Valley Linux Users Group (SVLUG), Chander Kant and Paddy Sreenivasan from Carbonite/Zmanda gave a talk on Amanda/Zmanda.
Amanda is a popular Open Source Client-Server backup program that is one of the oldest Open Source projects. Zmanda Inc. is a company that was formed in 2005 to sell support and services around Amanda.
- Zmanda bought by Carbonite in 2012 to move into business services
- quick to fix Coverity issues
- stores archives in existing backup formats like tar, zip, bzip, dump
- 32k archive header contains label and restore instructions
- Client, Backup Server, Media Server
- Amanda can compute an optimized schedule by itself based on times or bandwidth
- Vaulting (multiple tiers of same backup to multiple locations)
- full set of encryption methods, including hardware
- compression either on client or server
- parallelism, even to Cloud
- Open Source, Open Formats, Open Standards
- Microsoft Windows client is free but not Open Source, uses VSS. Can backup Exchange and other MS formats.
- Zmanda Enterprise is Core + Extensions (Oracle Enterprise database plugin, etc.) + web-based Management Console
- Amanda has file-based catalog, Zmanda is embedded MySQL
- many clients migrate from Amazon S3 to Glacier to reduce storage costs
- Zmanda Recovery Manager (ZRM) for MySQL
- planning to use libvirt library for Xen support, etc.
- can specify backup target by by geographic location, like Amazon region
- backup and DR to Cloud, start instance and then terminate it when backups tasks are done
- write your own plugin for things like object stores
- rsync is a tool, Amanda is a lot more.
Thanks again to Symantec for hosting tonite’s meeting.
I had lunch at Xanh Vietnamese Restaurant on Castro St. in downtown Mountain View.
They only serve Vietnamese buffet for lunch, but it’s quite elaborate – I counted at least 3 different types of spring rolls (veggie, beef and fried), at least 2 soups, and a dozen vegetarian and meat entrees.
I liked the variety of food, and thought it was tasty.
The restaurant is very large, with seating for about 100, so big enough to easily handle parties of 20-30 with reservations.
Special mention goes to the lovely hostesses!
110 Castro Street (near W. Evelyn Ave.)
Mountain View, CA
I had lunch at Amber India Restaurant in Mountain View. It is part of a chain of Indian restaurants in Silicon Valley.
Unlike most local Indian restaurants, there’s no lunch buffet, only ordering off the menu.
I had a mild curried chicken dish with side vegetables and rice.
The food was served hot and fresh.
My order was not exactly abundant, but the plate orders seemed larger, so inquire about those if you’re really hungry.
Next time I plan to try the lamb.
For special orders, like vegan, state your request clearly to avoid confusion.
Amber India Restaurant – Mountain View
2290 El Camino Real,#9
Mountain View, CA
MySQL Cluster History
Network Database (NDB) Cluster was originally developed at a startup of Ericsson called Alzato.
After the project funding was cut in 2004, MySQL AB bought it and renamed it “MySQL Cluster.” In subsequent releases, Cluster has been made to appear more MySQL-like.
MySQL Cluster Architecture
MySQL Cluster is a transactional, autosharding, in-memory database with 2-phase commit that checkpoints to disk.
A minimal cluster starts with 1 admin SQL node, 1 mgmt process, and 2 data nodes. (A single server can be used for a test sandbox.) Up to 48 data nodes are possible, with 255 total nodes.
Who Needs MySQL Cluster?
If you strongly need autosharding, no-lag multi-master replication, or built-in failover, then MySQL Cluster could be a valid choice. The NoSQL NDB API can also be useful in some applications.
Most people do fine with Innodb and async or semi-sync replication though, especially with online schema changes in MySQL 5.6. Galera/Percona Cluster is also an alternative clustering method.
The primary disadvantages of MySQL Cluster are:
- total database size is limited to about (70% of RAM * nodes / 2), with 32 GB RAM being the minimum for production
- relatively few installations, experienced MySQL Cluster DBAs are rare
- lack of an Open Source community – no readily-available utilities like monitoring plugins, for example
- Innodb is a remarkably good storage engine, and after more testing of online schema changes will surpass NDB in most respects in 2014.
- no dynamic tunable parameters – rolling restart always required.
wikipedia: MySQL Cluster
I met locally for 4 days with an Oracle Consulting employee from their Open Source group (Oracle Linux, MySQL Cluster, Oracle RAC.)
The project we’re considering MySQL Cluster for is porting a small InnoDB app to NDB Cluster for greater HA and real-time response
We huddled in a small room and focused on the following topics that were project-specific:
- Sizing and Hardware Requirements – data and indexes must fit in RAM, usually 60% of RAM is good, most people use RAID10
- Cluster Management – ndb_mgr is the CLI tool, some people also use mcm
- Backup and restore – can be done online, but initializing a node causes latency on the other nodes
- Monitoring – MySQL Enterprise Monitor, ndbinfo schema, no existing Open Source nagios or graphite plugins
- MySQL Cluster versions and differences – late 7.2 is mature, 7.3 has FKs
- MySQL Cluster HA features and limitations – shared-nothing, but requires rolling restart in many scenarios.
- Development Tips – PKs are a must, narrow tables are good, blobs are bad, online schema changes require default=null
- MySQL Replication – can use async replication to other DCs, with conflict resolution.
4 days was enough time for a thorough look into the above topics. The consultant created a document as we went along and emailed the PDF to us.
Generally speaking, you get out of a consulting engagement what you put into it.
While the consultant is at your office, database engineers and DBAs familiar with the project need to be scheduled and available to the consultant: you might as well create a calendar for each day.
Also, for specific recommendations rather than high-level suggestions, you really need to have a production cluster with load on it.