Skip to main content

Multiple generations of backup and hardlink

I suppose it a common way to preserve multiple generations of backup copy of your important data.
To preserve them as much as possible, archiving and compressing the backup copy is one way.
But there is another way to save the storage: hard-linking.

The basic idea is to share the identical files between different generations of backup copy with hard links.

If the target data consist of normal files, rsnapshot does most of the hard-linking management automatically.

But I recently encountered the problem with the database files managed by daemon processes.
Because they are supposed to be changed asynchronously,
 the consistency of th
eir copy taken with the cp command is not guaranteed.

Because this kind of problems is often aware in the design of the daemon processes,
special backup methods are provided to export the consistent backup copy.

For example, Subversion provides "svnadmin hotcopy" subcommand, and Trac provides  "trac-admin hotcopy" subcommand.

Unfortunately, rsnapshot does not seem to collaborate effectively with these hot backup copy.
Instead, I tried the "hardlink" command provided by the package "hardlink".

The "hardlink" investigates two directories given in its arguments,
comparing the files with the same relative paths.
If they are identical, "hardlink" replaces one of them with the other's hard-link.

For example, on 30 Apr 2012, if you take the subversion's hot copy of /srv/svn/myrepos/ to /srv/backup/20120430/myhrepos,
you give the following command:

 svnadmin hotcopy /srv/svn/myrepos/ /srv/backup/20120430/myrepos

Next, to share the identical files with the backup copy of the previous day,
you may give the following command:

 hardlink -t /srv/backup/20120429/myrepos /srv/backup/20120430/myrepos

As far as I use, hardlink saves much more disk space than bzip2 compression.

Comments

Popular posts from this blog

Some adjustment to run some daemon services within LXC container

 I built and am running a mail server, using dovecot for IMAP4 server and Power DNS (pdns) for DNS authoritative server, and memcached for back-end service for some mail filter. I also use LXC for staging environment to test my mail server, but running those services is not straight forward. My understanding is that it is because some security features of systemd using Linux kernel namespace function conflict with the use of namespace in LXC container. So, if you want to run memcached, dovecot, and pdns via systemd within LXC container, you have to disable some security features of systemd by configuration. My additional configuration to systemd is as follows: root@myhost:/# cat /etc/systemd/system/memcached.service.d/99-ns.conf [Service] ProtectSystem = no ProtectHome = no PrivateDevices = no PrivateTmp = no cat /etc/systemd/system/dovecot.service.d/99-ns.conf [Service] ProtectSystem = no PrivateDevices = no PrivateTmp = no root@myhost:/# grep -v '#' /etc/systemd/system/pdns.s...

Configuring Network Manager for PPPoE connection

When I'm home, I use fiber-optic line with a dedicated old small router (YAMAHA RT107e) for access to the Internet. But I recently became anxious about the router. If it fails, how can I survive until I get another one? So, I tried to connect my Debian desktop PC to the fiber-optic line without the router. The PC have to talk to the other side of the line with PPPoE but I did not know how. In my PC, the Network Manager manages network configuration. So, I had to configure the Network Manager to utilize the pppoe like : nmcli connection add ifname eth0 connection.type pppoe username USERNAME password PASSWORD

Xen on Squeeze failed to start up the X server with an Intel graphics controller

I recently tried to set up Xen on my Squeeze box, with intel 945GM graphics controller. I followed the instruction on Xen - Debian Wiki . I installed the Xen hypervisor, kernel, xen-tools and other stuff, then created a domU image of Ubuntu natty. After that, I rebooted the system. But when X server was about to be launched, the screen became black out,  both keyboard and mouse don't work anymore. I reread the article on the wiki, and figured out the Xorg driver for Intel graphics controller  is suspicious. So, I changed the Xorg driver 'intel' to 'fbdev' wrting /etc/X11/xorg.conf , and rebooted.  This workaround works out! The drawback of the workaround is, 'intel' driver specific features, including DRI and XvMC, are disabled.