banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Học LVM (Logical Volume Manager)  XML
  [Question]   Học LVM (Logical Volume Manager) 12/11/2008 13:41:09 (+0700) | #1 | 158561
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
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!
[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 14/11/2008 01:59:31 (+0700) | #2 | 158764
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
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"
[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 14/11/2008 02:55:47 (+0700) | #3 | 158773
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

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!
[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 15/11/2008 11:29:49 (+0700) | #4 | 158951
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
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 smilie

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"
[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 26/11/2008 07:56:53 (+0700) | #5 | 160268
mrtantien
Member

[Minus]    0    [Plus]
Joined: 30/04/2006 05:20:22
Messages: 29
Offline
[Profile] [PM]
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.

[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 26/11/2008 13:52:46 (+0700) | #6 | 160305
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

mrtantien wrote:
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/
 

 

Có lẽ mình cần phải chú ý đến chữ 'partition' trong câu này.

mrtantien wrote:

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.

 

Ở đây em làm việc với toàn bộ đĩa cứng mà.

http://forums13.itrc.hp.com/service/forums/questionanswer.do?admit=109447627+1227631519863+28353475&threadId=1119966 hỏi giống hệt em này.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Học LVM (Logical Volume Manager) 27/11/2008 01:02:40 (+0700) | #7 | 160347
mrtantien
Member

[Minus]    0    [Plus]
Joined: 30/04/2006 05:20:22
Messages: 29
Offline
[Profile] [PM]
Cám ơn anh, đúng là hôm qua em chưa đọc kỹ để phân biệt cả ổ đĩa và một phân vùng.

Ngoài ra, theo tài liệu thì khi fdisk, phải chọn kiểu phân vùng là 0x8e (Linux LVM). Nhưng em thử fdisk dùng 0x83 (Linux) thì vẫn thành công, không có gì khác với 0x8e cả.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|