zoukankan      html  css  js  c++  java
  • Linux磁盘存储和文件系统

    设备文件

    磁盘设备的设备文件命名:/dev/dev-file

            SCSI,SATA,SAS,IDE,USB:        /dev/sd*

            虚拟磁盘:/dev/vd

            不同磁盘标识:a-z,aa,ab...

                   /dev/sda,/dev/sdb,...

            同一设备上的不同分区:1,2.。。

                   /dev/sda1,/dev/sda5

            设备号码:     major number       标识设备类型

                           minor number      标识同一类型下的不同设备

        磁盘存储术语:

                   head               磁头

                   track              磁道

                   cylinder       柱面

                   sector             扇区

             CHS:

                   采用24bit寻址

                   其中前10位表示cylinder,中间8位表示head,后面6位表示sector

                   最大寻址空间8GB

            LBA:(Logical block addressing)

                   LBA是一个整数,通过转换成CHS格式完成磁盘具体

                   LBA采用48位寻址

                   最大寻址空间128PB

        使用分区空间步骤:

              分区,创建文件系统,挂载        

                     设备识别

                     设备分区

                     创建文件系统

                     标记文件系统

                     在/etc/fstab文件中创建条目

                     挂载新的文件系统

        磁盘分区:

              为什么分区:

                   优化I/O性能

                   实现磁盘空间配额限制

                   提高修复速度

                   隔离系统和程序

                   安装多个OS

                   采用不同文件系统

         分区:

                   两种分区方式:MBR,GPT

                   MBR:      Mater Boot Record,  1982年,使用32位表示扇区数,分区不超过2T

                                如何分区:按柱面

                                0磁道0扇区:512bytes

                                                      446bytes:     boot loader

                                                      64bytes:       分区表

                                                             16bytes:标识一个分区

                                                      2bytes: 55  aa

                                4个主分区; 3主分区+1扩展分区(n个逻辑分区)

                   

                   GPT: GUID(Globals Unique ldentifiers)partition table  支持128个分区

                                使用64位寻址,支持8Z(512byte/block)64Z(4096byte/block)

                                使用128位UUID (Universally  Unique ldentifier)表示磁盘和分区GPT分区表

                                        自动备份在头和尾两份,并有CRC校验位

                                 UEFI(统一扩展固件接口)硬件支持GPT,是操作系统启动

        管理分区:

              列出块设备:        lsblk

                   

              创建分区使用:

                     fdisk       创建MBR分区

                     gdisk       创建GPT分区

                       parted      级分区操作

                  partprode-重新设置内存中的内核分区表版本

                   

        parted 命令:

              ps:    parted的操作都是实时生效的,小心使用

              用法:

                   parted /dev/sdb mklabel gpt|msdos

                   parted /dev/sdb print

                   parted /dev/sdb mkpart primary 1 200 (默认M)

                   parted /dev/sdb rm 1

                   parted -l       列出分区信息

                   

        fdisk

                fdisk -l [-u] [dvice]

            

                fdisk /dev/sdb 管理分区

                   子命令:

                         p    分区列表

                         t      更改分区类型

                         n     创建新分区

                         d    删除分区

                         u     转换单位

                         w     保存并退出

                         q     不保存并退出

                         v     校验分区

                         o     格式化为 msdos  新分区

                         g     格式化为 gpt  新分区

                        

            查看内核是否已经识别新的分区:

            cat /proc/partitions

     

        partx:         

              centos6通知内核重新读取硬盘分区表

                   新增分区:

                         partx -a  /dev/sd*

                   删除分区:

                         partx -d --nr M-N  /dev/sd*

            

             centos5,7:使用 partprobe

            partprobe [/dev/sd*]

     文件系统

      文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;

                   即在存储设备上组织文件的方法。操作系统中负责管理和存储的文件信息的软件结构称为文件管理系统,简称文件系统。

                   从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体的说,它负责为用户建立文件

                   存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。

                   支持的文件系统:

              /lib/modules/`uname-r`/kernel/fs

            文件系统类型:

                         linux文件系统:ext2(Extended file system),ext3,ext4,xfs(SGI),btrfs(Oracle)reiserfs,jfs(AIX),swap

                         光盘:iso9660

                         windows:FAT32 exfat ntfs

                         unix:ffs ufs jfs2

                         网络文件系统:NFS CIFS

                         集群文件系统:GFS2,OCFS2

                         分布式文件系统:fastdfs,ceph,moosefs,mogilefs,glusterfs,lustre

                          RAW:未经处理或者未经格式化产生的文件系统

                   

                   文件系统分类:

                         根据是否支持日志‘journal’功能:

                                日志型文件系统:ext3 ,ext4,xfs..

                                 非日志型文件系统:ext2,vfat(fat32)

                         文件系统的组成部分:

                                内核中的模块:ext4,xfs,vfat

                                 用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

                         linux的虚拟文件系统:VFS

                      查看支持的文件系统:

                  cat /proc/filesystems

         创建文件系统:       

          mkfs命令:

                   mkfs.fs_type /dev/sd*

                         ext4

                         xfs

                         btrfs

                         vfat

                   mkfs -t fs_type /dev/sd*

                         -L 'LABEL':设定卷标

          mke2fs:    ext系列文件系统专用管理工具

                         -t {ext2|ext3|ext4}==  mkfs.ext2,3,4

                         -b  {1024|2048|4096}

                         -L  'LABLE'

                         -i #  为数据空间中每多少个字节创建一个inode,此大小不应该

                         小于block的大小

                         -N #      指定分区中创建多少个inode

                         -l           一个inode记录占用的磁盘空间大小,

                         -m #      默认5%,为管理人员预留空间占总空间的百分比

                         -O FEATURE...:      启用指定特性

                         -O ^FEATURE..      关闭指定特性

                        

            文件系统标签:

                   指向设备的另一种方法:

                   与设备无关

        blkid:         

                   blkid:块设备属性信息查看

                   blkid /dev/sda1

                         -U UUID        根据指定的uuid  来查找对应的设备

                         -L Label  根据指定的label来查找对应的设备

        e2lable:管理ext系列文件系统的label

                         e2lable device  [lable]

        findfs:查找分区

                         findfs [options] LABEL  =label      等于  blkid -L

                         findfs [options]  UUID=uuid         等于 blkid -U

                   PS:

                         在centos7上,GPT分区,默认会多一个PARTUUID

                         创建文件系统之后才会有UUID

     

        uuidgen生成uuid                    

        tune2fs:

               重新设定ext系列文件系统可调整参数的值

                      -l 查看指定文件系统(分区)超级块信息;super  block无法查看xfs系统

                      -L ‘LABEL'   修改卷标

                      -m # 修改预留给管理员的空间百分比

                      -j 将ext2升级为ext4 (加上journal功能)

                      -O 件系统属性启用或禁用,-O ^has_journal

                      -o 调整文件系统的默认挂载选项, -o ^acl

                     -U UUID 修改UUID号

            dumpe2fs:

              块分组管理,32768

              -h   查看超级块信息,不显示分组信息

                   

            文件系统检测和修复:

                                 常发生于死机或者非正常关机之后

                                 挂载为文件系统标记为“no clean”

                                 注意:一定不要再挂载状态下修复

        fsck.fs_type

                   -p   自动修复错误

                   -r    交互式修复错误

                   fs_type一定要与分区上文件系统类型相同

        e2fsck: ext系列文件专用的检测修复工具

                     -y: 自动回答yes

                     -f: 强制修复

                   

            挂载mount   取消挂载umount

                   挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件访问入口的行为

                   卸载:解除此关联关系的过程

                   把设备关联挂载点: mount point

                   卸载时:可使用设备,也可以使用挂载点

                   挂载点下原有文件在挂载完成后会被临时隐藏

                   挂载点目录一般为空

            

        mount命令:

              挂载方法

                   mount device mount-point

                   mount:通过查看/etc/mtab文件显示当前已挂载的所有设备

                   mount [-fnrsvw] [-t vfstpe] [-o options] device dir

                          device;指明要挂载的设备;

                                1.     设备文件;例如/dev/sda5

                                2.     卷标; -L  'LABEL',

                                3.     UUID,       -U 'UUID'

                                4.     伪文件系统名称: proc sysfs  devtmpfs configfs

                         dir:       挂载点

                                 事先存在,建议使用空目录

                                 进程正在使用中的设备无法被卸载

                                 

                   -t vsftype        指明要挂载的设备上的文件系统类型

                   -r                  readonly,只读挂载

                   -w                 read and write  读写挂载

                   -n                 不更新/etc/mtab, mount不可见 centos7无效

                   -a                   自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,

                                        且挂载选项中有auto功能)

                   -L ’LABEL‘ 以卷标为指定挂载设备

                   -U ’UUID‘ 以UUID指定要挂载的设备

                   -B --bind       绑定目录到另一个目录上

            

            查看内核追踪到的一挂载的所有设备

                   cat /proc/mounts

                   

            mount -o       挂载文件系统的选项,多个选项使用逗号分隔

                   async             异步模式

                   sync       同步模式

                   atime/noatime              包含目录和文件

                   diratime/nodiratime      目录的访问时间戳

                   auto/noauto                 是否支持自动挂载,是否支持-a选项

                   exec/noexec                  是否支持将文件系统上运行应用程序

                   dev/nodev                    是否支持在此文件系统上使用设备文件

                   suid/nosuid                  是否支持suid和sgid权限

                   remount                      重新挂载

                   ro                                 只读

                   rw                                读写

                   user/nouser                  是否允许普通用户挂载此设备, /etc/fstab使用

                   acl                                启用此文件系统上的acl功能

                   loop                      使用loop设备

            defaults:       相当于rw,suid,dev,exec,auto,nouser,async

     

    findmnt

            findmnt mount-point | device      查看挂载情况

    lsof

            lsof mount-point                        查看正在访问指定文件系统的进程     

    fuser

            fuser -v mount-point                 查看正在访问指定文件系统的进程     

            fuser -km mount-point                      终止所有正在访问指定的文件系统的进程

     

    umount:取消挂载

            umount device

            umount mount-point

            

                   

    /etc/fstab

                   配置文件系统体系

                   被mount,fsck和其他程序使用

                   系统重启时保留文件系统体系

                   可以在设备栏使用文件系统卷标

                   使用mount -a 命令挂载/etc/fstab中的所有文件系统

     

                   每行定义一个要挂载的文件系统

                   1     要挂载的设备或伪文件系统

                                设备文件

                                LABEL:LABEL=""

                                UUID:      UUID=

                                伪文件系统名称:proc sysfs

                   2     挂载点

                   3     文件系统类型:

                   4     挂载选项:defaults,acl。。。

                   5     转储频率:

                                0     不做备份

                                1     每天备份

                                2     每隔一天转储

                   6     自检次序:

                                0     不自检

                                1     首先自检,一般只有rootfs才用1

                                 

    处理交换文件和分区:

                   交换分区是系统RAM的补充

                   基本设置包括

                         创建交换分区或者文件

    mkswap         使用mkswap  写入特殊签名

                         在/etc/fstab文件中添加适当的条目

                         使用swapon -a 激活交换空间

     

    swapon   device                    启用交换分区

                   -a                          激活所有的交换分区

                   -s                          查看已经使用的swap分区

                   -p priority:   指定优先级

                   /etc/fstab:              pri=value

    swapoff   device                    禁用交换分区

                   -a                          禁用所有交换分区

                   

            swap的优先级:

                   可以指定swap分区0-32676的优先级,值越大优先级越高

                   如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从

                          -1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级

                         -1

                   先添加的swap 的缺省优先级比较高,除非用户自己指定一个优先级,而用户

                   指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)

                   优化性能:分布存放,高性能磁盘存放

            

    将文件当做swap使用:

                   dd if=/dev/zero of=p1 ps=1M count=2048     生成文件

                   mkswap p1           格式化

                   swapon p1            开启交换分区

                         写入/etc/fstab

                         swapon  -a

                   

    文件挂载到目录上:

                   mkfs.ext4 p1   

                   mount -o loop p1 /dir         centos6挂载时需要加-o loop 选项

                                                             centos7可以直接挂载        

            /data/p1  /mnt/app1 ext4 loop 0  0   fstab文件书写格式

                                                             

            losetup -a                                  查看loop设备代表的源文件路径

            ls /dev/loop*                        查看所有loop设备

                                                             centos6默认只有8个loop设备,centos7不限制

            mknod /dev/loop8 b 7 8                    centos6手动生成loop文件来挂载                                                      

            losetup /dev/loop8 p2                 loop8和文件做映射

            mount /dev/loop8 /data/app3            此时挂载就不需要-o了

            vim /boot/grub/grub.conf           centos6配置文件,可修改最大loop数量

                                                                    在kernel行尾添加  max_loop=100,重启生效

            

            

    挂载目录到目录

            fstab书写格式:

                   /root  /mnt/root  none bind 0 0

                   

    移动介质:

                   挂载意味着使外来的文件系统看起来如同是主目录树的一部分

                   访问时,介质必须被挂载

                   摘除时,介质必须被卸载

                   按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等等)

                   挂载点通常在/media 或 /mnt  下

                   

    使用光盘:

                   在图形环境下自动启动挂载/run/media/user/label

                   否则就必须被手工挂载

                         mount /dev/cmrom  /mnt/

    eject        卸载或弹出磁盘

                   创建ISO文件

                         cp /dev/sr0  /root/centos6.iso

    mkisofs -r -o file.iso  /dir

                   此命令生成的iso文件,比如centos6光盘,可以做yum源,但是不能做引到盘

                   使用centos官方提供的mkdvdiso.sh  可以生成引到光盘

            mkdvdiso.sh  /dir  centos6.iso

                   生成的iso文件需要挂载之后才可以查看

            

    wodim -v -eject  centos.iso

                        

                        

    挂载usb介质

                   查看usb设备是否识别

    lsusb

                   被内核探测为scsi设备

                         /dev/sda* /dev/sdb*  或类似的设备

                   在图形环境中自动挂载

                         图标在【计算机】窗口中创建

                         挂载在/run/media/user/label

                   手动挂载:

                         mount /dev/sd*  /mnt/

                        

    常用工具:

     

    df: 文件系统空间占用等信息的查看工具

            df [option]..[file]..

                   -H          以1000为单位

                   -T           文件系统类型:

                   -h           human-readable

                   -i            inodes instead of  blocks 查看inode编号使用情况

                   -P          以Posix兼容的格式输出

                                        设备名很长的情况下 1行显示

                        

    du:       查看某目录总体空间占用状态

            du [option]..[dir]..

                   -h           human-readable

                   -s           summary  

                   --max-depth=#    最大深度

     

    hexdump:   查看二进制文件

            hexdump -C /dev/sda -n512

            

    mknod:              生成块设备文件

            mknod /data/sdA b 8 1

            mknod /data/zefofile c 1 5

            

    cp -a   /dev/sda /data  -a  可以复制块设备

            

    dd:          convert and copy a file

            用法:

                   dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

                         bs=# size       count=# number

                                ibs=size         一次读size个byte

                                obs=size        一次写入size个byte

                                cbs=size        一次转化size个byte

                         skip=numbem      从开头忽略num个ibs大小的块

                          seek=num            从开头忽略num个obs大小的块

                         count=n               只拷贝n个记录

                        

                         conv=            用指定的参数转换文件

                                ascii        转换EBCDIC  为  ASCII

                                ebcdic            转换ASCII为EBCDIC    

                                lcace              把大写字符转换为小写字符

                                ucace             把小写字符转换为大写字符

                                nocreat          不创建输出文件

                                noerror          出错时不停止

                                notrunt          不截短输出文件

                                sync       把每个输入块填充到ibs字节,不足部分用nul空字符补齐

                   

            示例:

                   备份MBR:

                         dd if=/dev/sda  of=/data/mar.bak bs=1 count=512

                   破坏分区表,保留MBR中的bootloader:

                         dd if=/dev/zero of=/dev/sda  bs=1 count=64 seek=446

                   

                   有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读

                   取的大小是128Byts。又有fileB,  想把上面读取到的128Bytes写到第32个字节开

                   始的位置,替换128Bytes,      

                         dd if=fielA of=fileB bs=1  count=128 skip=63 seek=31 conv=notrunc

                        

                   备份:

                         dd if=/dev/sdx  of=/dev/sdy      

                                将本地/dev/sdx整盘备份到/dev/sdy

                         dd if=/dev/sdx  of=/path/file

                                将/dev/sdx全盘数据备份到指定路径的file文件

                         dd if=/dev/sdx | gzip >  /path/file.gz

                                备份/dev/sdx 全盘数据,并利用gzip压缩,保存到指定路径

                   恢复:

                         dd if=/path/file  of=/dev/sdx

                                 将备份文件恢复到指定盘

                         gzip -dc /path/file.gz    | dd of=/dev/sdx

                                 将压缩的备份文件恢复到指定盘

                                 

                   拷贝内存资料到硬盘

                         dd if=/dev/mem  of=/root/mem.bin bs=1024

                                 将内存里的数据拷贝到root目录下的mem.bin文件

                   拷贝光盘数据:

                        

                        

                   销毁磁盘数据:

                         dd if=/dev/urandom  of=/dev/sda1

                                 

                   得到最恰当的block size

                   

                   测试硬盘读写速度

                   

                   修复硬盘:

                         dd if=/dev/sda  of=/dev/sda

                                 当硬盘较长时间(比如1,2)年放置不使用后,磁盘上会产生消磁点。

                          当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况

                          影响到硬盘的第一个扇区时,可能导致硬盘报废,上边的命令有可能使

                          这些数据起死回生,且这个过程是安全高效的。

                        

     

    RAID:

            什么是RAID   

                                RAID,Redundant Arrays of Inexpensive(Independent)  Disks

                                 1988年由加利福利亚大学伯克利分校

                                 多个磁盘合成一个阵列来提供更好的性能,冗余,或者两者都提供

                   提高IO能力:            

                                磁盘并行读写

                   提高耐用性:

                                磁盘冗余来实现

                   级别:

                                 多块磁盘组织在一起的工作方式有所不同

                   RAID实现的方式:

                                外接式磁盘阵列:       通过扩展卡提供适配能力

                                内接式RAID:             主板集成RAID控制器

                                        安装OS前在bios里配置

                                软件RAID:                通过OS实现

                        

            RAID级别:

                   RAID-0   条带卷,strip

                                读、写性能提升

                                可用空间N*min

                                无容错能力

                                最少磁盘数2,2+

                        

                   RAID-1   镜像卷,mirror

                                 读性能提升,写性能略有下降

                                可用空间1*min

                                有冗余能力

                                最少磁盘数2,2N

                   RAID-2,3

                                 

                   RAID-4    多块数据盘异或运算值存于专用校验盘

                                读写提升,有容错

                                 校验盘压力大容易坏

                   RAID-5

                                 4的改进型,所有轮流充当校验盘

                                读,写性能提升

                                可用空间(N-1)*min

                                 有容错能力:允许最多1块磁盘损坏

                                最少磁盘数3,3+

                   RAID-6

                                有2块校验盘

                                读写性能提升

                                可用空间:(N-2)*min

                                 有容错能力:允许最多2块磁盘损坏

                                最少磁盘数:4,4+

                   RAID-10

                                 多块磁盘先两两组成RAID-1,在组成RAID-0

                                读、写性能提升

                                可用空间:N*min/2

                                 有容错能力:每组镜像最多只能坏一块

                                最少磁盘数:4,4+

                   RAID-01

                                 多块磁盘先分成两组做RAID-0,再组成RADI-1

                                读,写性能提升

                                可用空间:N*min/2

                                容错,RAID1的两边不能同时坏硬盘

                                最少磁盘数4,4+

                   RAID-50

                                多块磁盘先实现RAID5,再组合成RAID-0

                                比RAID-10读写提升大,每组raid5里 最多允许坏一块硬盘

                   JBOD:   

                                just a Bunch of  disks

                                 功能:将多块磁盘的空间合并一个大的连续空间使用

                                        可用空间 sum

                                        不能容错

                   RAID-7

                                 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,

                                 可以独立运行,理论上性能最高的RAID模式

            常用级别:

                   RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

                   

    软RAID:

                   mdadm:  为软RAID提供管理界面

                   为空余磁盘添加冗余

                   结合内核中的md(multi  devices)

                   RAID设备可命令为/dev/md0,/dev/md1...

                   

    mdadm:

            语法格式:

                   mdadm [mode] <raiddevice> [options]  <component-devices>

            支持的RAID级别:LINEAR,0,1,4,5,6,10

                         mode 模式:

                                创建       -C

                                装配       -A

                                监控       -F

                                管理       -f -r  -a

                         <raiddevice>:                     rainname  /dev/md#

                          <component-devices> :      任意块设备,磁盘,分区等

                   

                   -C          创建模式

                         -n#               使用#个块设备来创建此RAID

                         -l#                 指明要创建的RAID的级别

                         -a{yes|no}      自动创建目标RAID设备的设备文件

                         -c    chunk-size     指明块大小,单位K

                         -x    指明空闲盘的个数

                   

                   -D          显示raid的详细信息

                         mdadm -D  /dev/md*

                   

                   管理模式:

                         -f           标记指定磁盘为损坏

                         -a           添加磁盘

                         -r          移除磁盘

                   观察md的状态:

    cat /proc/mdstat

            

                   使用mdadm创建并定义RAID设备

                         mdadm -C /dev/md0 -a yes -l  5 -n 3 -x 1 /dev/sdb{1,2,3,5}

                   用文件系统对RAID设备进行格式化

                         mkfs.ext4  /dev/md0

                   测试RAID设备

                         mdadm -D|--detail  /dev/md0

                   增加新的成员

                         mdadm -G /dev/md0 -a  /dev/sdb1

                   模拟磁盘故障

                         mdadm /dev/md0 -f  /dev/sdb1

                   移除磁盘

                         mdadm /dev/md0 -r  /dev/sdb1

                   

            软RAID管理

                   mdadm -D -s >> /etc/mdadm.conf

                         生成配置文件

                   mdadm -S /dev/md0

                         停止设备

                   mdadm -A -s /dev/md0

                          激活设备,如果没有生成配置文件,停止之后会无法激活

                   mdadm -R /dev/md0

                         强制启动

                   mdadm --zero-superblock /dev/sdb1

                         删除磁盘的raid信息

                   

            PS:

                   RAID-0 不支持空闲盘

                   raid5,格式化raid,或者空闲盘顶替之后,会有一段时间的 clean, degraded, recovering 时间,

                   有一个盘显示 spare rebuilding 的状态

                   使用-n4 -a 添加磁盘 会添加成raid盘,无法添加成空闲盘

     

                        

    LVM:逻辑卷管理器

                   允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

                   允许在多个物理设备间重新组织文件系统

                         将设备指定为物理卷

                          用一个或者多个物理卷来创建一个娟阻

                         物理卷是用固定大小的物理区域(PE,Physical Extent)来定义的

                          在物理卷上创建的逻辑卷是由物理区域PE组成的

                         可在逻辑卷上创建文件系统

                   LVM:      Logical Volume  Manager, Version:2

                   dm:       device mapper :将一个或多个底层设备组织成一个逻辑设备的模块

                   设备名:/dev/dm-#

                   软链接:

                                 /dev/mapper/VG-LV_NAME

                                        /dev/mapper/vol0-root

                                 /dev/VG_NAME/LV_NAME

                                        /dev/vol0/root

     

            LVM可以弹性的更改LVM的容量

                   通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV

                   的容量,或将其他设备中的PE加到LV中以加大容量

                   

    pv管理工具

     

            pv

                         pvs                             简要pv信息显示

                         pvdisplay                            详细pv信息显示

                         pvcreate /dev/device    创建pv

                         pvmove                              转移pv上的内容到其他pv

                                pvmove  /dev/sd*

                         pvremove                           删除pv,

                                需要先执行    vgreduce /dev/vg  /dev/sd*

                                                      pvremove /dev/sd*

                                               

     

    VG管理工具

     

            vg  

                         vgs                       显示卷组

                         vgdisplay              显示vg详细信息

                         vgcreate        创建卷组

                                -s    指定PE大小

                         vgreduce       卷组减容

                                vgreduce /dev/vg  /dev/sd*

                         vgextend       卷组扩容

                                vgextend /dev/vg  /dev/sd*

                         vgremove             卷组删除

                         vgchange             修改卷组属性,便于迁移

                                -a n 迁出

                                -a y 迁入

                         vgexport        输出卷组,便于迁移

                         vgimport       输入卷组

                         vgrename      vg改名

                                vgrename /dev/vg  name

    lv管理工具

     

            lv

                         lvcreate          创建逻辑卷lv

                                -L #        size,直接指定大小M/G

                                -l #,%{FREE|PVS|VG} PE数量,%FREE %VG  表示空闲百分比%和总百分比%

                                -n name        指定lv名

                         lvs                        查看lv

                         lvdisplay        查看lv详细信息

                         lvremove       删除lv

                         lvrename       lv改名

                                lvrename /dev/vg/lv  name

                         lvconvert       恢复逻辑卷快照

                                 --merge

                         lvextend        

                                -L [+]size      扩展、扩展到size       

                                -l [+]num  50%FREE/VG 扩展、扩展到num个PE大小   

                         lvreduce               lv减容

                                -L  [-]size

                                -l [-]num       50%FREE/VG

     

                   pv删除:

                         pvmove  /dev/sdb1

                         vgreduce /dev/vg1  /dev/sdb1

                         pvremore  /dev/sdb1

                                                                                                

                   lv扩容:

                         lvextend  -L +5G /dev/vg/lv      扩展逻辑卷

                         resize2fs /dev/vg/lv            扩展文件系统

    lvresize    lvresize -r -l +100%FREE /dev/vg1/lv1    此命令会将文件系统和lv一起扩展

     

                   lv减容:

                         umount /dev/vg/lv                            取消挂载

    e2fsck            e2fsck -f /dev/vg/lv                    强制检查

    resize2fs resize2fs /dev/vg/lv  5G           缩减文件系统 centos6

    xfs_growfs                                                               centos7

                         lvreduce -L 5G  /dev/vg/lv

                                                                    

                         PS:   lv缩减或者删除必须取消挂载

                                 lv扩展之后需要扩展文件系统

                                 lv缩减之前需缩减文件系统

            

                   跨主机迁移卷组

                                源计算机上:

                                       1.     umount所有卷组上的逻辑卷

                                       2.     vgchange -a n vg

                                                      lvdisplay

                                       3.     vgexport vg

                                                      pvscan    查看pv使用情况

                                               vgdisplay

                                        拆下硬盘

                                目标计算机上:

                                       4.     安装硬盘,并 vgimport  vg

                                       5.     vgchange -ay vg

                                       6.     mount所有卷组上的逻辑卷

                   

                   逻辑卷管理器快照:

                                 快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

                                 对于需要备份或者复制的现有数据临时拷贝以及其他操作做来说,快照

                                是最合适的选择

                                 快照只有在它们和原来的逻辑卷不同时才会消耗空间

                                        在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者

                                        快照有所改变的时候才会使用这些空间

                                        当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中

                                        快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中

                                        更改的数据

                                        建立快照的卷大小只需要原始逻辑卷的15%-20%就够了,也可以使用

                                        lvextend放大快照

                                 快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据

                                 改动了,则原始数据会被移动到快照区,没有改动的区域择优快照区的文件

                                系统共享

                                 由于快照区与原来的LV公用很多PE的区块,因此快照与被快照的LV必须在同一个

                                 VG中,系统恢复的时候的文件数量不能高于快照区的实际容量

                        

                   使用LVM快照:

                   

                   为现有的逻辑卷创建快照:

                         lvcreate -l 64 -s -n  data-snapshot -p r /dev/vg/lv

                                -s|--snapshot                    指明快照lv

                                -p|--permission  {r|rw}  指明权限,是读写还是只读

                   

                   挂载快照:     

                         mkdir -p  /mnt/snap

                         mount -o ro  /dev/vg/data-snapshot /mnt/snap

                   

                   恢复快照:

                         umount  /dev/vg/data-snapshot

                         umount  /dev/vg/data

                         lvconvert --merge  /dev/vg/snapshot

                   

                   删除快照:

                         umount  /mnt/snap

                         lvremove  /dev/vg/data-snapshot

        

  • 相关阅读:
    Nginx + FastCGI 程序(C/C++)搭建高性能web service的demo
    微服务架构
    异常点/离群点检测算法——LOF
    多边形区域填充算法--递归种子填充算法
    Java 关于容器集合等数据结构详情图解,一目了然
    平衡小车项目解读日志
    &lt;LeetCode OJ&gt; 101. Symmetric Tree
    【JVM】模板解释器--字节码的resolve过程
    hexo博客的相关配置
    【LeetCode】Find Minimum in Rotated Sorted Array 解题报告
  • 原文地址:https://www.cnblogs.com/dengkui/p/10963008.html
Copyright © 2011-2022 走看看