Chapter 5 File Management: Storage Hard Disks, LVM and RAID

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31
At a glance
Powered by AI
The document discusses different types of storage devices and interfaces like hard disks, SSDs, partitioning and file systems. It also talks about logical volume management (LVM) and RAID.

Some types of hard disk interfaces mentioned are IDE, ATA, PATA, SATA and SCSI.

Partitioning divides hard disks into logical sections called partitions. It allows installing multiple operating systems and optimizes disk space usage. Maximum of four primary partitions are allowed, with one as an extended partition holding logical partitions.

Chapter 5 File Management

Storage Hard disks, LVM and RAID

Hard Disks
IDE (Integrated Drive Electronics)
ATA (Advanced Technology Attachment )
PATA (Parallel ATA or IDE)
SATA (Serial ATA )

Hard Disks
SCSI (Small Computer System Interface)
SAS (Serial Attached SCSI)

SSD (Solid State Disk)

Hard disk partitions


IDE and SCSI hard disks can be partitioned
Maximum of four primary partitions
One primary partition may be an extended partition
An extended partition can hold an unlimited amount of
logical partitions (Linux: max 59 for IDE, 11 for SCSI)
master boot record
partition table
Windows

Linux /
Linux /home

Linux swap

sda: The first sector of the disk contains the MBR


and Partition Table
sda1: First primary partition holds a Windows
filesystem
sda2: Second primary partition is an extended
partition and holds three logical partitions
sda5: First logical partition holds a Linux
filesystem that will be mounted as /
sda6: Second logical partition holds a Linux
filesystem that will be mounted as /home
sda7: Third logical partition holds a Linux swap
space

Partitioning tools
fdisk
Virtually every PC OS comes with a tool fdisk to create partitions
for that OS
Linux, Windows, and so forth

parted
GPLed Linux program, available at www.gnu.org
Can create/resize/move/delete partitions

GParted, QTParted
GUI utilities that use GNU Parted
Can create/resize/move/delete partitions

Disk Druid and others


Partitioning program integrated in Linux install program

Components of storage
Files
Directories
File systems
Logical storage
Physical storage

Logical Volume Manager (LVM)

Traditional disk storage


Partition 1

Partition 4

Partition 2

Partition 5
Partition 3

PROBLEMS:
Fixed partitions
Expanding size of the partition

Limitation on size of a file system and a file


Contiguous data requirement
Time and effort required in planning ahead

Benefits of the LVM


Logical volumes solve noncontiguous space problems
Logical volumes can span disks
Logical volume sizes can be dynamically increased
Logical volumes can be mirrored

Physical volumes are easily added to the system


Logical volumes can be relocated
Volume group and logical volume statistics can be collected

These tasks can be performed dynamically!

Logical volume management


Logical volume management solves the disadvantages of
traditional disk storage:
One or more physical volumes (hard disks, partitions) are assigned to
a volume group (VG)
All physical volumes (PV) are split into physical extents (PE) of
identical size (default 4 MB)
PEs in a VG can be combined into logical volumes (LV), which can
be used like any block device

An LV can span multiple disks


To increase the size of an LV, add PEs
To increase the size of a VG, add PVs

Logical volume management on Linux

physical volume
(hard disk or partition)

physical volume
(hard disk or partition)

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

logical volume

volume group

Logical storage on AIX


Physical volumes
1
7
13
19
25
31
35
41
47

2
8
14
20
26
32
36
42
48

3
9
15
21
27
33
37
43
49

4
10
16
22
28
34
38
44
50

1
7
13
19
25
31
35
41
47

2
8
14
20
26
32
36
42
48

3
9
15
21
27
33
37
43
49

Logical Volume Manager


1 2 3 4 1 2 3 4

Logical
volume

Logical
volume

Logical
Partitions

4
10
16
22
28
34
38
44
50

LVM implementation overview


Add hard disks and/or create partitions (type 0x8e) on existing
hard disks
Initialize physical volumes (disks or partitions)
# pvcreate /dev/sda3
# pvcreate /dev/sdb

Create volume group vg00 with physical volumes


# vgcreate vg00 /dev/sda3 /dev/sdb

Create logical volume lv00 in volume group


# lvcreate -L 50M -n lv00 vg00

Can now use /dev/vg00/lv00 as block device

Physical volume commands


pvcreate <pv>
Initializes a physical volume by putting an (empty) volume
group descriptor area at the start of the PV
VGDA ( Volume Group Descriptor Area)

pvmove [-n <lv>] <source pv> [<destination


pv>]
Move PEs from one PV to another PV in the volume group

pvdisplay <pv>
List information about a PV

Volume group commands


vgcreate [-s <pe size>] <vg name> <pv>
[<pv>...]
Create a volume group
Volume Group (VG)
Physical
Volume (PV)

Physical
Volume (PV)

Physical
Volume (PV)

vgdisplay [<vg>]
Display information about a volume group

vgremove <vg>
Delete a volume group

Logical volume commands


lvcreate -L <size> [-n <lv name>] <vg>
[<pv>...]
Create a logical volume in a volume group
Logical Volume (LV)

LV

LV

Volume Group (VG)


Physical
Volume (PV)

Physical
Volume (PV)

Physical
Volume (PV)

lvdisplay <lv> [<lv>...]


Display information about a logical volume

lvremove <lv> [<lv>...]


Remove a logical volume

LV

Striping logical volumes


A logical volume may be striped across two or more
physical volumes during creation
For large data transfers, this increases performance
# lvcreate -L 300M -i 2 -I 8 -n mystripedlv vg00

physical volume
(hard disk or partition)

physical volume

(hard disk or partition)

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

volume group

/dev/vg00/mystripedlv

Extending/reducing a volume group


To add or remove a physical volume to or from a volume group,
use the vgextend and vgreduce commands
To move physical extents from one physical volume to another,
use pvmove
# vgextend vg00 /dev/sdb6
# vgreduce vg00 /dev/sda5
ERROR: can't reduce volume group "vg00" by used
physical volume "/dev/sda5"
# pvmove /dev/sda5 /dev/sdb6
# vgreduce vg00 /dev/sda5

Extending/reducing a logical volume


To extend/shrink a logical volume use the
lvextend/lvreduce commands
Use -L option to specify size in bytes
Use -l option to specify size in PEs

lvextend/lvreduce do NOT extend/shrink a filesystem in the


LV automatically!
(Extending/shrinking a filesystem will be covered later)
# lvextend -L +300M /dev/vg00/mylv
lvextend -- rounding relative size up to physical extent boundary
lvextend -- extending logical volume "/dev/vg00/mylv" to 380 MB
lvextend -- doing automatic backup of volume group "system"
lvextend -- logical volume "/dev/vg00/mylv" successfully extended
# lvreduce -l -12 /dev/system/mystripedlv
...

LVM backup and recovery


It is very important to save the LVM metadata stored in the
VGDA for recovering reasons.
1. vgcfgbackup
2. vgcfgrestore -n vg_name PV
VGDA

VGDA

VGDA

/etc/lvm/backup/vg_name.conf

VGDA

VGDA

VGDA

Additional LVM considerations


Linux LVM implementation has "snapshot" capability
Can be useful for fast backups

If LVM-based filesystems are listed in /etc/fstab, then LVM


support needs to be included in the initial root disk (initrd)
Mirroring is handled outside of the LVM structure
LVM uses the device mapper kernel device driver
LVM snapshots are read/write by default

RAID
Redundant Array of Independent Disks
Typical PC hard disks, compared to expensive mainframequality hard disks, are:

Slower
Less reliable
Smaller
But less expensive

RAID uses multiple hard disks in an array to create a logical


device that is:

Faster
More reliable
Or larger
And still relatively inexpensive

RAID (Redundant Array of Independent Disk)

22

23

24

RAID (1)

Figure 5-20. RAID levels 0 through 5.


Backup and parity drives are shown shaded.
25

RAID (2)

Figure 5-20. RAID levels 0 through 5.


Backup and parity drives are shown shaded.
26

RAID levels
RAID levels have different characteristics
RAID-5 is not "better" than RAID-1

Use RAID level according to needs


RAID
level

Min #
disks

Read
performance

Write
performance

Redundancy

Data capacity
with 3x1GB
disk

Other remarks

Linear

Equal

Equal

No

3 GB

Can be used if disks are not


equal

Fast

Fast

No

3 GB

Fast

Somewhat
slower

Yes

1 GB

Can sustain N-1 disk


crash(s)

Somewhat
faster

Slow

Yes

2 GB

Can sustain one disk crash


Parity disk is bottleneck

Somewhat
faster

Somewhat
faster

Yes

2 GB

Can sustain one disk crash


CPU intensive

(*) Performance compared to a single disk, for data transfers greater than block size

Linux RAID support


Software RAID

Implemented in Linux kernel


Needs mdadm package
Uses disk partitions to create RAID devices
Logical device name: /dev/mdn

Hardware RAID
Implemented in special adapter cards
Adapter needs to be supported by Linux kernel
Generally specific software needed to configure adapter correctly
(might not be available under Linux)
RAID devices show up as regular SCSI disk

Spare disks
To make RAID1/RAID5 more failsafe in case of a disk
failure, use spare disks!
# cat /etc/raidtab
...
nr-spare-disks 1
device /dev/sdd1
spare-disk 0
...

spare disk

The spare disk takes over...

Remove a failed disk with raidhotremove


Add a new disk to the array with raidhotadd

Additional RAID considerations


Put RAID partitions on different disks
Use different SCSI or IDE controllers if possible for different
disks that are part of a RAID volume
Do not use RAID for /boot partition
If RAID-based filesystems are listed in /etc/fstab, then RAID
support needs to be included in the initrd
Software RAID4 and RAID5 needs a lot of CPU time
Do not use RAID-linear or RAID0 for swap space
The Linux kernel can stripe across swap spaces more efficiently

References
Chapter 5: Input/Output, Modern Operating Systems .3rd ed,
Andrew S. Tanenbaum
Unit 8: Block devices, RAID, and LVM, Linux System
Administration I: Implementation , ERC 6.0, IBM

You might also like