INFO 321 Server Technologies II Backup Applications System Backup ◊ A key responsibility of IT professionals is to back up and restore the servers.

Download Report

Transcript INFO 321 Server Technologies II Backup Applications System Backup ◊ A key responsibility of IT professionals is to back up and restore the servers.

INFO 321
Server Technologies II
Backup Applications
1
System Backup
◊ A key responsibility of IT professionals is
to back up and restore the servers and/or
network
◊ We’ve examined the hardware and
processes used to do so; now we’ll focus
on the application or software side
2
System Backup
◊ In Unix/Linux systems, the ‘tar’ command
is a commonly used archiving mechanism
• ‘dump’ and ‘restore’ are also used frequently
◊ ‘cron’ and variations on it are used to
schedule backups
• cron is named for Cronus, the Greek god of
time
3
Some guidance on backups
◊ DO THEM!
• Hardware fails, often when least convenient
◊ Backup from one machine to one device
• This centralizes scripting management
◊ Label your media
• No, you won’t remember which one is which
◊ Pick a reasonable backup time interval
• It’s a tradeoff between effort and risk
Mostly from (Nemeth, 2007)
4
Some guidance on backups
◊ Choose file system structure carefully
• Make data that changes often easier to
backup
• If a few stray files need frequent backup,
copy them to a directory that needed backup
◊ Daily backups should fit on one medium
• Makes life easier
◊ Make file systems smaller than one
medium
5
Some guidance on backups
◊ Keep media off-site
• Disasters are more common than you think
◊ Protect your backups
• Remember, they span file permissions
• Consider encryption, and physical security
◊ Limit activities during backups
• Or yes, you can mess up the archive
◊ Verify your media
6
Some guidance on backups
◊ Develop a media life cycle
• And destroy media when dead
◊ Design data for backups
• Consider what kinds of data you have, how
quickly it changes, how often you’ll back it up,
who owns the data
◊ Prepare for the worst
• Disaster planning isn’t just for FEMA
7
Tar
◊ The ‘tar’ command is short for ‘tape
archive’
• Its use is analogous to WinZip, in that it also
can provide compression
◊ In addition to backups, tar is also used for
distributing applications
• A file ending in ‘.tar’ is sometimes called a
tarball, but ‘archive’ is more polite
Most of this section is from (Sarwar, 2002)
8
Tar Archives
◊ A collection of files and/or directories is
considered an ‘archive’
◊ Like most Unix/Linux commands, how tar
works depends on the options selected
• The c or r options are used to create a tarball
• ‘c’ creates a new archive
• ‘r’ appends files onto an existing archive
9
Tar options
◊ Two other commonly used options are
• ‘v’ is verbose mode, to tell what it’s doing
• ‘f’ file sets the name of the archive to file;
without it, the default is the tape device
/dev/rmt0 (if you have such a device!)
◊ So to create a new archive called mine.tar
from the current directory down would be
• tar cvf mine.tar .
10
Tar
◊ The ‘.tar’ suffix is optional – it just helps
Windows figure out what the file is
◊ The options can have a dash before the
first option; that’s more Unix-like
◊ So the same command could also be
• tar -cvf mine.tar .
11
Tape devices
◊ If you’re actually using a tape device, it
needs to be mounted before use
• mount /dev/rmt0
◊ After using the device, release it with
• umount /dev/rmt0
12
Restoring archives
◊ To restore an archive, use the ‘x’ option
• Copy (cp) the tar file to the directory in which
you wish to unpack it
• Change directory (cd) to that directory
• tar xvf filename.tar
◊ This is also the option used to unpack
software which is distributed in tar form
13
Selective restoration
◊ Sometimes you want to restore only
specific files
◊ Use the ‘t’ option to get an ls –l format
listing of archive contents
• tar tvf filename.tar
◊ If the listing is long, pipe it into more
• tar tvf filename.tar | more
14
Selective restoration
◊ Then you can use the tar xvf command,
and add the path to the file you want
•
tar xvf filename.tar ./directory/onefile.doc
◊ Notice you need to specify the absolute or
relative directory where the file will go
15
Adding compression
◊ Some versions of tar can also do
compression, using the ‘z’ option
• Use the ‘z’ option before the other options,
for both creating and unpacking the archive
• Compressed archives typically end in ‘.gz’
tar –zcvf mybackup.gz to create archive
tar –zxvf mybackup.gz to unpack it
16
Appending onto an archive
◊ For reasons not grammatically clear, the
option to append onto an existing archive
is ‘r’
◊ Need more tar?
• The full GNU version of tar is described here
17
Time to dump
◊ Most forms of Linux can use dump and
restore commands to create and restore
backups
◊ dump creates a list of files modified since
the last dump, and combines them into
one large file
• This is perfect for incremental backups!
• File permissions and ownership are preserved
Mostly from (Nemeth, 2007)
18
Why dump?
◊ Dump is handled more consistently across
Unix and Linux distributions
• Many flavors of Unix don’t support the full
GNU tar features
◊ Dump requires a ‘backup level’ from 0 to 9
• Level 0 forces a full backup
• Level n forces backup of files changed since
the last dump of a level less than n
19
More dump options
◊ The ‘f’ option in dump identifies the target
device for the dump
• The parameter after the ‘f’ option and its
device is the name of the filesystem to be
dumped
• dump -5u –f /dev/nst0 /work
◊ Note that dump can only archive one
filesystem; in the example, it’s /work
20
More dump options
◊ The ‘u’ after the backup level (as in ‘-5u’
on the previous slide) forces dump to
update a file /etc/dumpdates with the
date, dump level, and filesystem name
• This provides data for future dumps to know
the last dump of that filesystem
21
Remote dump
◊ Dump only works on the local machine
◊ You can use rdump to dump a local
filesystem onto a remote device, such
as a tape drive
• rdump -0u –f anchor:/dev/nst0 /spare
22
Dump scheduling
◊ The levels in dump are strictly relative,
but you can assign them to different types
of backups
◊ A simple schedule could use level 0 full
backups every day, and keep every Nth
tape permanently
23
Dump scheduling
◊ A more complex GFS-like schedule may be
•
•
•
•
A
A
A
A
level
level
level
level
9
5
3
0
dump
dump
dump
dump
daily
weekly
monthly
at least quarterly
◊ The numbers 9, 5, 3 are arbitrary for
flexibility; you could use 3, 2, 1 instead
24
Restore command
◊ The restore command does just that
◊ Determine the media from which you are
restoring
◊ Use a temporary directory like /var/restore
◊ The most common restore options are
–i, -f, -r, and -x
25
Restore command
◊ The restore –i option allows interactive
marking of individual files to be restored
• Navigate through the archive using ls, cd,
and pwd commands
• Mark files to be extracted with an add
command
• When done, use extract to restore those
files
26
Restore command
◊ Like most backup commands, the –f
option allows selection of the device
to be restored
◊ So we might open an archive with
• restore –i –f /dev/nst0
◊ Then add a file with add iamlost
◊ And restore with extract
27
Remote restore
◊ Matching rdump, there is an rrestore
command to restore off a remote tape
device
◊ The –x option allows specification of a file
location to be restored
◊ In a remote example we might have
• rrestore –x –f tapehost:/dev/nst0
./janet/iamlost
28
Restore a filesystem
◊ The ‘-r’ option restores an entire file
system
◊ Make sure the target filesystem is properly
created and mounted, and cd to the root
of the filesystem
◊ Load the most recent level 0 tape and use
• restore -r
29
Restore a filesystem
◊ Then restore, in order, the incremental
restores since that level 0
◊ In any backup level, you only need to
restore the most recent one
• So if you have four level 5 dumps, only
restore the last one
30
Many filesystems on one tape
◊ It’s possible to dump many filesystems on
one medium, space permitting
• Just use the dump command several times,
and don’t rewind the tape in between them
◊ The mt command should be used to skip
forward to the correct dump on that tape,
when it’s time to restore
31
Other backup applications
◊ There are lots of other open source and
proprietary backup applications
• Bacula
• Tivoli Storage Manager
• Veritas (now owned by Symantec)
32
Timed scripting
◊ Ok great, we have a couple ways to create
archives via command line
◊ Now automate the process with timed
scripts, often known as ‘cron jobs’
◊ The cron system in Linux and Unix allows
apps or scripts to be run at specified times
◊ It is managed via the crontab file
From (Hill, 2007) and (Nemeth, 2007)
33
Crontab
◊ Each user has a crontab file, typically
under /var/spool/cron, plus a sys admin
one under /etc/crontab
◊ If you don’t have one yet, create one with
• crontab –e
◊ Each line in the crontab file has five
numbers, followed by the command
it’s to run
34
Crontab
◊ The numbers are, in order:
•
•
•
•
•
Minutes (00 to 59)
Hours (00 to 23, 00=midnight)
Day of the month (1-31)
Month of the year (1-12, 1=January)
Weekday (0-6, 0=Sunday)
◊ So 01 04 3 1 2 runs at 04:01 am on
January 3rd OR if it’s a Tuesday
35
Crontab
◊ Ok, so that’s a little restrictive
◊ You can enter a * to indicate any value
• 01 04 * * * means 04:01 am on every
day of every month
◊ And you can use ranges (1-15) or comma
separated specific values (01,31)
• 01,31 04 1-15 6 means run at 04:01 and
04:31 on the 1st through 15th days of June
36
Crontab
◊ So if you create a backupscript to run at
3:19 am every Saturday, the full crontab
line would look like
• 19 03 * * 6 /usr/bin/backupscript
◊ What happens if the first field is a *?
37
Crontab
◊ You can execute multiple commands by
putting them in parentheses, separated by
semicolons
• 30 2 * * 1 (cd /users/joe/project; make)
• This will run /users/joe/project/make at 2:30
am every Monday
38
Crontab uses
◊ So in addition to performing backups,
crontab entries are handy for many
purposes
• Cleaning up file systems
• Distributing configuration files across the
network
• Rotating full log files
◊ A newer app called anacron does intervalbased scheduling, but is run from cron
39
Sources
◊ Sarwar, Koretsky, Sarwar. Linux: The
Textbook. (2002) Addison Wesley, ISBN
0201725959
◊ Nemeth, Snyder, Hein. Linux
Administration Handbook. (2007) Prentice
Hall, ISBN 0131480049
◊ Hill, et al. The Official Ubuntu Book.
(2007) Prentice Hall, ISBN 0132354136
40