[Question] Học LVM (Logical Volume Manager) |
12/11/2008 13:41:09 (+0700) | #1 | 158561 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Chào mọi người,
Tôi đang đọc về LVM nên muốn ghi chép lại một số thứ nhằm mục đích tra cứu hoặc đào sâu hơn.
Khi cài Red Hat/Fedora, nếu các bạn chọn "create the default layout (LVM)", hệ thống sẽ phân vùng tự động giúp bạn theo kiểu LVM. Nhưng nếu để ý một chút hẳn các bạn sẽ tự hỏi: tại sao /boot lại vẫn đặt trên một partition riêng rẽ mà không phải là LVM?
Code:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
1.9G 1.7G 136M 93% /
/dev/hda1 99M 15M 80M 15% /boot
tmpfs 188M 0 188M 0% /dev/shm
Code:
# fdisk -l
Disk /dev/hda: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 391 3036285 8e Linux LVM
Lý do là: /boot chứa thông tin về boot loader mà boot loader lại không thể đọc thông tin trên LVM, do đó nếu bạn 'cố tình' đặt /boot trên LVM thì bạn sẽ không thể boot vào Linux được.
Thử tìm hiểu thêm một chút về LVM:
Đầu tiên, xem các physical volume mà bạn có:
Code:
# pvdisplay
--- Physical volume ---
PV Name /dev/hda2
VG Name VolGroup00
PV Size 2.90 GB / not usable 21.12 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 92
Free PE 0
Allocated PE 92-
PV UUID G1qMnk-bhr1-W0a9-YHFm-Q5hZ-sxQN-0mqf3F
Ở đây:
- bạn chỉ có một Physical Volume (PV) /dev/hda2, thuộc Volume Group (VG) VolGroup00.
- PV này có dung lượng là 2.9 GB
- Kích cỡ của một PE (Physical Extent) là 32768K, tức là 32M. Do đó, số lượng PE sẽ là: 2.9GB / 32MB = 92
Xem tiếp thông tin về Volume Group:
Code:
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.88 GB
PE Size 32.00 MB
Total PE 92
Alloc PE / Size 92 / 2.88 GB
Free PE / Size 0 / 0
VG UUID 8QbvcQ-Bvq4-NwjX-1tgl-5ACq-5vh3-saX64x
Kết quả này cho thấy:
- Hiện tại bạn có 2 Logical Volume
- Và 1 Physical Volume (như đã thấy ở trên)
Tiếp theo là thông tin về Logical Volume:
Code:
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID ndZawv-DhRO-rsYF-6fyi-rcn8-5R4O-7fvezl
LV Write Access read/write
LV Status available
# open 1
LV Size 1.91 GB
Current LE 61
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID qVltHV-WgGB-DCdn-4aXe-3AgY-YdIp-IJf1jZ
LV Write Access read/write
LV Status available
# open 1
LV Size 992.00 MB
Current LE 31
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1
Logical Volume đầu tiên có ký hiệu LogVol00, dung lượng 1.91GB, số Logical Extents là 61, được mount với /
Logical Volume thứ 2 có ký hiệu LogGol01, dung lượng 992MB, số lượng Logical Extents là 31, được mount với /swap
Code:
# free -m
total used free shared buffers cached
Mem: 375 347 28 0 36 155
-/+ buffers/cache: 155 220
Swap: 991 0 991
Code:
# cat /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
Như vậy tổng số lượng LEs bằng 92, đúng bằng số lượng PEs. Đây là minh chứng cho việc ánh xạ giữa LEs và PEs.
Kết luận: Các bạn có thể hiểu:
- PV như một partition vật lý, 1 đĩa cứng có thể được chia thành 1 hoặc nhiều PV
- VG là tập hợp của nhiều PV
- LV như là mount point mà bạn gắn PV lên đó (trong trường hợp này là /, và /swap)
- Một PV được chia thành nhiều PEs, một LV được chia thành nhiều LEs, và có một sự ánh xạ giữa PE và LE.
Ở phần tiếp theo, chúng ta sẽ tìm hiểu cách phân vùng ổ cứng 'bằng tay' theo kiểu LVM trong khi cài đặt Red Hat / Fedora.
PS: Có chỗ nào diễn đạt sai hoặc tối nghĩa thì các bác 'chỉnh' giùm. Cảm ơn. |
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Học LVM (Logical Volume Manager) |
14/11/2008 01:59:31 (+0700) | #2 | 158764 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
Code:
Alloc PE / Size 92 / 2.88 GB
Free PE / Size 0 / 0
Sau Free PE/ size lại là 0 / 0, nếu là 0 / 0 thì dữ liệu được ghi vào đâu anh? |
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Question] Re: Học LVM (Logical Volume Manager) |
14/11/2008 02:55:47 (+0700) | #3 | 158773 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
mR.Bi wrote:
Code:
Alloc PE / Size 92 / 2.88 GB
Free PE / Size 0 / 0
Sau Free PE/ size lại là 0 / 0, nếu là 0 / 0 thì dữ liệu được ghi vào đâu anh?
Data nó ghi vào allocated PE mà em. Free PE là 'not allocated'.
|
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Học LVM (Logical Volume Manager) |
15/11/2008 11:29:49 (+0700) | #4 | 158951 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
Code:
# pvdisplay
--- Physical volume ---
PV Name /dev/hda2
VG Name VolGroup00
PV Size 2.90 GB / not usable 21.12 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 92
Free PE 0
Allocated PE 92-
PV UUID G1qMnk-bhr1-W0a9-YHFm-Q5hZ-sxQN-0mqf3F
Em thử giải thích thêm vài cái thông số, xem thử em hiểu được tới đâu.
Allocatable yes (but full)
Lúc đầu hơi nhầm tưởng chỗ này, nhưng hỏi xong anh trả lời rồi đọc vài tài liệu, suy bậy ra: ta có 92 PEs, và số Allocated PE là 92, không còn Free PE (Unallocated PE) nào nên thông số là yes(but full). Nếu như thông số ở trên là
Total PE 92
Free PE 52
Thì số Free PE còn lại là 52, thông số Allocatable sẽ là Yes, không có not full
Ngoài ra Allocated PE 92-, ở đây em hiểu 92- có nghĩa là chưa có PE nào được dùng hết, thông số này sẽ được biểu diễn từ 92- cho đến 0, cái này là em suy diễn, chứ chưa có kiểm chứng
Giả sử output của vgdisplay là như bên dưới
Code:
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.88 GB
PE Size 32.00 MB
Total PE 92
Alloc PE / Size 40 / 1.22 GB
Free PE / Size 52 / 1.66 GB
VG UUID 8QbvcQ-Bvq4-NwjX-1tgl-5ACq-5vh3-saX64x
thì để sử dụng số Free PEs còn lại, ta dùng lệnh lvextend
Code:
lvm lvextend -l+52 /dev/hda2
thì output của vgdisplay trở lại như trên ( Alloc PE / Size 92 / 2.88 GB | Free PE / Size 0 / 0)
|
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Question] Re: Học LVM (Logical Volume Manager) |
26/11/2008 07:56:53 (+0700) | #5 | 160268 |
mrtantien
Member
|
0 |
|
|
Joined: 30/04/2006 05:20:22
Messages: 29
Offline
|
|
Chào anh quanta,
Em đọc được bài này và cũng thử làm lab. Tuy nhiên có chỗ chưa hiểu lắm như sau:
If a Linux partition is to be converted make sure that it is given partition type 0x8E using fdisk, then use pvcreate:
pvcreate /dev/hda1
Link: http://www.redhat.com/magazine/009jul05/features/lvm2/
Theo như bài báo này của RedHat thì trước khi tạo PVs thì các partitions cần được fdisk theo kiểu 0x8E (Linux LVM). Tuy nhiên em quên không fdisk mà tạo PV, VG, LV luôn:
pvcreate /dev/hda
pvcreate /dev/hdb
vgcreate volume_group_one /dev/hda /dev/hdb
lvcreate -n logical_volume_one --size 2G volume_group_one
Kết quả là tạo thành công, ghi dữ liệu không có vấn đề gì cả. Vậy có cần bước fdisk như trên không ạ?
Cám ơn anh nhiều.
P/S: Em dùng RHEL 5.2.
|
|
|
|