存储管理(1)
分类:linux基础 热度:

存储管理(1)
 
知识点:  基本分区、逻辑卷LVM、EXT3/4文件系统、磁盘限额、RAID
基本磁盘:主分区(4个),扩展分区,逻辑分区
 
1.加电
2.BIOS自检
3.读取MBR
3.1加载GRUB
4.加载系统
 
========================================================
一、两种分区方式(针对分区表)
存储大小 分区软件 分区表
2TB以下的硬盘 fdisk/parted MSDOS(MBR) /GPT
2TB以上的硬盘 parted    GPT
 
MSDOS(MBR)分区的限制:
只支持4个主分区,总分区数不能超过15个
只支持2TB以下的硬盘
GPT的限制:
没有限制
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
 
========================================================
小知识: kernel对不同接口的硬盘命名
OS IDE(并口) SATA(串口) SCSI USB
RHEL5 /dev/hda /dev/sda /dev/sda /dev/sda
RHEL6 /dev/sda /dev/sda /dev/sda /dev/sda
 
HP服务器
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2
========================================================
 
分区(基本分区)、格式化、挂载
========================================================
内容摘要:
分区工具fdisk MBR(msdos)
分区工具parted MBR(msdos)或 GPT
 
 
一、分区工具fdisk MBR(msdos)
1. 查看新设备是否发现
# ll /dev/sd*   //查看Kernel识别到的设备
# fdisk -l     //u以扇区的方式查看
 
2. 分区
# fdisk  /dev/sdb
Command (m for help): m
Command action
   d   delete a partition
   m  print this menu
   n   add a new partition
   p   print the partition table
   q   quit without saving changes
   t    change a partition's system id
   w   write table to disk and exit
# ll /dev/sd*
# partx -a /dev/sdb   //让内核刷新分区表
# ll /dev/sd*
 
3. 格式化(创建文件系统)
Windwos: FAT,FAT32,NTFS
Linux: VFAT,Ext2,Ext3,Ext4,GFS,GFS2
 
[root@yunwei  ~]# mkfs.ext4 /dev/sdb1 //100M的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0) //块大小1024B (1K)
Fragment size=1024 (log=0)
25688 inodes, 102400 blocks
9765 blocks (5.00%) reserved for the super user
 
[root@yunwei  ~]# mkfs.ext4 /dev/sdb2 //1G的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) //块大小4096B (4K)
Fragment size=4096 (log=2)
65536 inodes, 262144 blocks
12207 blocks (5.00%) reserved for the super user
 
4. 挂载
建立挂载点
# mkdir /mnt/disk1         //建立挂载点,挂载点建议是空目录
# mkdir /mnt/disk2
 
挂载
==手动: 临时
[root@yunwei  ~]# mount  -o ro -t ext4  /dev/sdb1 /mnt/disk1
[root@yunwei  ~]# mount                       /dev/sdb2 /mnt/disk2
 
[root@yunwei  ~]# mount
/dev/sdb1 on /mnt/disk1 type ext4 (ro)
/dev/sdb2 on /mnt/disk2 type ext4 (rw)
[root@yunwei  ~]# df -h
文件系统               容量    已用   可用   已用% 挂载点
/dev/sdb1              97M  5.6M   87M   7% /mnt/disk1
/dev/sdb2            1008M   34M  924M   4% /mnt/disk2
 
==开机自动挂载 /etc/fstab
[root@yunwei  ~]# umount /dev/sdb1
[root@yunwei  ~]# blkid 
/dev/sdb1: UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" TYPE="ext4" 
/dev/sdb2: UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" TYPE="ext4" 
[root@yunwei  ~]# vim /etc/fstab
UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" /mnt/disk1           ext4    defaults         0 0
UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" /mnt/disk2         ext4    defaults       0 0
[root@yunwei  ~]# mount -a //读取/etc/fstab并挂载
 
二、分区工具parted MBR(msdos)或 GPT
命令行
交互式
[root@yunwei  ~]# parted /dev/sdc
(parted) help                #帮助
(parted) mklabel gpt     #指定分区表格式 gpt    or    msdoc(MBR)
(parted) print                #显示分区表         
(parted) mkpart primary 1M 1T         #创建分区(语法:  mkpart   标签  start    end   )   
(parted) mkpart primary 1T 3T     
(parted) mkpart primary 3T 3.1T
(parted) print
(parted) mkpart primary 3100GB 5T
(parted) mkpart primary 5000GB 6T 
(parted) mkpart primary 6T 7T                                    
(parted) print 
Partition Table: gpt
Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  1000GB  1000GB               primary
 2      1000GB  3000GB  2000GB               primary
 3      3000GB  3100GB  100GB                primary
 4      3100GB  5000GB  1900GB               primary
 5      5000GB  6000GB  1000GB               primary
 6      6000GB  7000GB  1000GB               primary
(parted) rm 6                                                             
(parted) print 
(parted) quit
Information: You may need to update /etc/fstab.
 
[root@yunwei  ~]# partx -a /dev/sdc
[root@yunwei  ~]# ll /dev/sdc*
brw-rw---- 1 root disk 8, 32 Jan  9 16:07 /dev/sdc
brw-rw---- 1 root disk 8, 33 Jan  9 16:06 /dev/sdc1
brw-rw---- 1 root disk 8, 34 Jan  9 16:06 /dev/sdc2
brw-rw---- 1 root disk 8, 35 Jan  9 16:06 /dev/sdc3
brw-rw---- 1 root disk 8, 36 Jan  9 16:06 /dev/sdc4
brw-rw---- 1 root disk 8, 37 Jan  9 16:06 /dev/sdc5
 
[root@node1 ~]# fdisk -cu /dev/vdc
 
Command (m for help): t  设置标签,每个文件系统都有一个固定的标签,记住几个常用的就可以了
Selected partition 1
Hex code (type L to list codes): l  
82  Linux swap 
83  Linux          
85  Linux extended  c7  Syrinx         
7  HPFS/NTFS      
b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
e  W95 FAT16 (LBA) 54  OnTrackDM6      
ee  GPT 
 
逻辑卷LVM
逻辑卷的信息保存在每个pv的前2048个扇区中
1. 在线(on-line)扩容,离线(off-line)缩小
2. 快照snapshot
参考文档:
 
========================================================
创建 扫描 显示详细    显示      扩展           缩小         删除           更改 ...
pvcreate pvscan pvdisplay     pvs     pvresize       pvresize    pvremove
vgcreate vgscan vgdisplay     vgs     vgextend                         vgremove       vgchange
lvcreate   vscan   lvdisplay           lvs        lvextend  lvreduce    lvremove       lvchange
========================================================
PS:对于pvresize,如果原先的PV分区被扩大,那么命令后面直接跟该分区(或者存储设备)的设备文件就可一将PV扩容
    如果想要缩小PV(不推荐)那么后面要跟参数pvresize --setphysicalvolumesize 40G /dev/sda1
 
------------------------------------------------------------------------------------------------------
一、创建逻辑卷
1. 创建物理卷PV(整个硬盘,不需要分区)
[root@yunwei  ~]# pvcreate /dev/sdc
 
2. 创建卷组VG
[root@yunwei  ~]# vgcreate vg02 /dev/sdc pv   pv  ...
 
3. 创建逻辑卷LV
[root@yunwei  ~]# lvcreate -L 400M -n lv02 vg02   L是直接写容量
[root@yunwei  ~]# lvcreate -l 200 -n lv03 vg02        l是PE的数量,查看PE的命令 pvdisplay
[root@yunwei  ~]# lvscan 
  ACTIVE            '/dev/vg02/lv02' [400.00 MB] inherit
 
4. 创建文件系统并挂载
[root@yunwei  ~]# mkfs.ext4 /dev/vg02/lv02 
[root@yunwei  ~]# vim /etc/fstab 
/dev/vg02/lv02          /mnt/lv02               ext4    defaults        0 0
[root@yunwei  ~]# mkdir /mnt/lv02
[root@yunwei  ~]# mount -a
[root@yunwei  ~]# df
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/mapper/vg02-lv02
                        396672     10544    365648   3% /mnt/lv02
二、扩展逻辑卷
第一种情况:lv所在的卷组还有足够用于扩展的空间
[root@yunwei  ~]# lvs
  LV      VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert                           
  lv02    vg02 -wi-ao 400.00M                                      
  lv03    vg02 -wi-ao 800.00M                                      
[root@yunwei  ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg02   1   2   0 wz--n- 100.00G 98.82G
 
[root@yunwei  ~]# lvextend -L 1G /dev/vg02/lv02 //扩展逻辑卷
[root@yunwei  ~]# lvscan 
  ACTIVE            '/dev/vg02/lv02' [1.00 GB] inherit
  ACTIVE            '/dev/vg02/lv03' [800.00 MB] inherit
[root@yunwei  ~]# resize2fs /dev/vg02/lv02 //扩文件系统
[root@yunwei  ~]# df -h
 
第二种情况:lv所在的卷组没有足够的空间
[root@yunwei  ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg01   1   4   0 wz--n-   9.97G     0 
  vg02   1   2   0 wz--n- 100.00G 98.21G
[root@yunwei  ~]# pvcreate /dev/sdd //建立PV
[root@yunwei  ~]# vgextend vg02 /dev/sdd          //扩展卷组
[root@yunwei  ~]# lvextend -L 100T /dev/vg02/lv02 //扩展逻辑卷
[root@yunwei  ~]# resize2fs /dev/vg02/lv02 //扩文件系统
 
========================================================  
扩展知识:
PV也可以是一个分区:
[root@yunwei  ~]# fdisk -cul /dev/sdd
[root@yunwei  ~]# partx -a /dev/sdd
[root@yunwei  ~]# pvcreate /dev/sdd7
[root@yunwei  ~]# vgextend vg02 /dev/sdd7
[root@yunwei  ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree  
  vg01   1   4   0 wz--n-   9.97G      0 
  vg02   2   2   0 wz--n- 101.82G 100.04G
  
PE:创建VG时,指定PE的size(默认为4M)
[root@yunwei  ~]# pvcreate /dev/sdc
[root@yunwei  ~]# vgcreate -s 128M datastorage /dev/sdc
[root@yunwei  ~]# vgdisplay datastorage
  PE Size               128.00 MB
  Total PE               799
  Alloc PE / Size       0 / 0   
  Free  PE / Size       799 / 99.88 GB
[root@yunwei  ~]# lvcreate -l 799 -n database datastorage
[root@yunwei  ~]# mkfs.ext4 /dev/datastorage/database
[root@yunwei  ~]# mkdir /mnt/lv
[root@yunwei  ~]# vim /etc/fstab
/dev/datastorage/database /mnt/lv               ext3    defaults 0 0
[root@yunwei  ~]# mount -a
[root@yunwei  ~]# df
 
删除LV,VG:
1. 停止应用程序对该相应文件系统的访问
2. 卸载文件系统,包括/etc/fstab
3. lvremove
4. vgremove
5. pvremove
 
激活VG/LV: 在实际环境中,如果要更换机箱,那么先要将卷组关闭,等更换完毕之后,再将卷组激活!(关闭卷组之前要不要先关闭逻辑卷?不用!)
[root@yunwei  ~]# lvchange -an /dev/vg01/lv01
[root@yunwei  ~]# lvscan 
  inactive          '/dev/vg01/lv01' [128.00 MiB] inherit
  ACTIVE            '/dev/vg01/lv02' [128.00 MiB] inherit
  ACTIVE            '/dev/vg01/lv03' [128.00 MiB] inherit
[root@yunwei  ~]# vgchange -an vg01
  0 logical volume(s) in volume group "vg01" now active
[root@yunwei  ~]# lvscan 
  inactive          '/dev/vg01/lv01' [128.00 MiB] inherit
  inactive          '/dev/vg01/lv02' [128.00 MiB] inherit
  inactive          '/dev/vg01/lv03' [128.00 MiB] inherit
[root@yunwei  ~]# vgchange -ay vg01
[root@yunwei  ~]# lvscan 
  ACTIVE            '/dev/vg01/lv01' [128.00 MiB] inherit
  ACTIVE            '/dev/vg01/lv02' [128.00 MiB] inherit
  ACTIVE            '/dev/vg01/lv03' [128.00 MiB] inherit
  
缩小逻辑卷: off-line
1. 停止应用
2. 备份数据
3. 卸载文件系统
4. 检查文件系统e2fsck
5. 缩小文件系统
6. 缩小逻辑卷
[root@yunwei  ~]# umount /mnt/lv04/
[root@yunwei  ~]# e2fsck -f /dev/vg01/lv04
[root@yunwei  ~]# resize2fs /dev/vg01/lv04 1000M
[root@yunwei  ~]# lvreduce /dev/vg01/lv04 -L 1000M
[root@yunwei  ~]# mount -a
========================================================
 
三、逻辑卷快照snapshot
逻辑卷做完快照后,对原卷的任何操作都不影响快照卷
 
快照其实就是在同一个VG中另外创建出一个虚拟设备,用来保存目标LV的元数据
 
作用:
1. 利用快照实现一致性备份
 
逻辑卷的快照的空间是从哪里得到的:
所做快照的卷的卷组,也就是说快照卷和源卷处于同一个卷组,所以要保证卷组空间足够!
 
实现快照
[root@yunwei  ~]# lvscan 
  ACTIVE            '/dev/vg01/lv06' [20.00 GiB] inherit
[root@yunwei  ~]# lvs
  LV     VG   Attr       LSize    Pool Origin Data%  Move Log Cpy%Sync Convert              
  lv06   vg01 -wi-ao---   20.00g 
[root@yunwei  ~]# df -ThP /mnt/lv06
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv06 ext4   20G  287M   19G   2% /mnt/lv06
 
[root@yunwei  ~]# lvcreate -L 50M -s -n lv06-snap /dev/vg01/lv06
[root@yunwei  ~]# lvs
  LV         VG   Attr       LSize     Pool Origin Data%  Move Log Cpy%Sync Convert 
  lv06       vg01 owi-aos--   20.00g                                             
  lv06-snap vg01 swi-a-s--   52.00m       lv06    0.02 
 
[root@yunwei  ~]# mkdir /mnt/lv06-snap
[root@yunwei  ~]# mount /dev/vg01/lv06-snap /mnt/lv06-snap
[root@yunwei  ~]# ls /mnt/lv06
etc1  etc2  etc3  lost+found
[root@sxl1 ~]# ls /mnt/lv06-snap/
etc1  etc2  etc3  lost+found
 
[root@yunwei  ~]# rm -rf /mnt/lv06/etc1
[root@sxl1 ~]# ls /mnt/lv06
etc2  etc3  lost+found
[root@sxl1 ~]# ls /mnt/lv06-snap/
etc1  etc2  etc3  lost+found
 
快照的自动增长:
[root@yunwei  ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 50
[root@yunwei  ~]# service lvm2-monitor restart
[root@yunwei  ~]# chkconfig lvm2-monitor on
 
上一篇:管道重定向 下一篇:存储管理(2)
猜你喜欢
各种观点
热门排行
精彩图文