磁盘管理

硬盘物理结构
     扇区  磁头  磁道   柱面   磁道数
     扇区*一个磁道上的扇区个数*磁头数=柱面
     柱面*磁道数=硬盘大小
     一个扇区512字节     最小单位
     单位  C         H            S 
          扇区      柱面       磁盘
MBR
       硬盘中的前512字节,第一个扇区,以55aa结束的认为是有分区的,没有则认为无。
GPT
     硬盘前512字节模拟MBR创造一个分区,以55aa结束。
Hexdump   将二进制文件转换成十六进制或八进制显示
dd        转换或者辅助一个文件。
分区

Fdisk     操作硬盘分区或分区表
      /dev/sdX 查看硬盘分区信息
      -c (centos6) 打开或禁用dos模式
      -u  (centos6) 切换显示的单位(扇区/柱面)
      -c (centos7) -c=dos -c=nondos
      -u  (centos7)  -u=cylinders  -u=sectors
      fdisk /dev/sdX  进行分区
      m 帮助
      n 建立分区
      d 删除分区
      p 显示分区信息
      t 转换分区类型
      a 将指定分区设置/取消 活动分区
      L 查看分区类型
      o 重建分区表
      v 验证分区表,显示剩余没有被分区划分的扇区数量
      g 创建GPT格式的分区(centos7)
      q 退出不保存
      w 退出并保存,不保存,所有的修改都不生效

Sync      强制同步yingpan数据
echo ‘- – -’ > /sys/class/scsi_host/host0/scan
scan   内存通信设备    传输信号 加载硬盘。
Lsblk     列出块设备,分区列表
 cat /proc/partitions
查询内存中存储的 磁盘信息
parted /dev/sdX
    mklabel msdos/gpt
    help
    mkpart
parted /dev/sdX mkpart primary 1 1000    难用 !!!
gdisk   操作方式与fdisk相似 
partprode  当对系统所在的硬盘进行分区修改操作后,内存不会重读分区表,需要使用partprobe强制重读,centos6  有bug。
partx -a /dev/sdX  向内存中增加分区更新
partx  -a  –nr   【N-M】 /dev/sdX  从内存中删除分区更新
mkfs.ext4 /dev/sdb1 
mkfs -t extX/xfs/btrfs/vfat  /dev/sdX
mke2fs -t extX  /dev/sdX 
 与磁盘添加文件系统。
blkid  查看所有的块设备
          -L  LABEL  用卷名查找块设备
          -U  UUID   用UUID查找块设备   
文件系统
mkfs  创建文件系统
     -L   创建时设置卷标
     -t     创建时文件系统
     -b     块设备大小
     -m     管理员预留空间
     -o       调整文件系统的默认挂载选项,
     -U     指定UUID号
     -g     块组  设置
mke2fs    专用来创建ext格式类型的文件系统的命令。
     -t     文件系统类型 ext2、ext3、ext4
     -m     管理员预留大小
     -g     块组设置
tuen2fs   -l   显示详细的超级快信息
               -L  设置卷标
               -o

resize2fs    可以增加或减小文件系统的大小
findfs
    指定LABEL或UUID显示分区名
tune2fs /dev/sda10  修改文件系统信息
    -l 显示文件系统信息(与dumpe2fs -h 信息基本一致)
dumpe2fs /dev/sda10  查看文件系统信息:superblock信息及block group信息
    -h 不显示block group而只显示superblock 与tune2fs -l一致
fsck/e2fsck 先卸载再修复
    -t filetype
    -f 强制修复
    -y 非交互式
    -r 交互式
    -p 自动修复
挂载
mount 设备名 挂载点
    -t 指定文件系统类型
    -r 只读挂载
    –remount,ro|rw  也会新/etc/fstab中的选项,如果与指定的冲突,则remount后指定的优先。
    -n 隐藏挂载信息不显示,但在/proc/mounts可以查到
    -a 读取/etc/fstab,挂载其中没有挂载的设备
    -L ‘LABEL’: 以卷标指定挂载设备
  -U ‘UUID’: 以UUID指定要挂载的设备
    -B –bind 目录挂目录
    -o 选项
        sync,async 同步,异步(defaults)
        atime(defaults),noatime  是否在读访问时更新atime
        diratime(defaults),nodiratime
        auto(defaults)/noauto 写在/etc/fstab当中的分区,是否在mount -a时被挂载
        exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行。
        dev(defaults)/nodev:是否支持在此文件系统上使用设备文件
        suid(defaults)/nosuid:不否支持suid和sgid权限
        remount:重新挂载
        ro:只读
        rw:读写(defaults)
        user/nouser(defaults):是否允许普通用户挂载此设备,默认管理员才能挂载
        acl:启用此文件系统上的acl功能
        defaults 默认,见以上中的(defaults)
开机挂载 配置文件
          /etc/fstab
lsof     设备名或挂载点        查询在该挂载点上的运行的进程
fuser     -v 挂载点
             -km     挂载点          强制结束所有执行在挂载点上的进程
umount     设备名/挂载点
/etc/fstab    filesystem  table
网络地址挂载
172.17.253.164:/common  /mnt/nfs                nfs     defaults        0 0
//172.17.X.X/shares  /mnt/share  cifs   defaults,username=test,password=te st 0 0
增加swap   
fdisk/gfisk   添加一个分区类型设置为82
partx  -a   /dev/sd? (centos6)   parprode (centos7)
mkswap     /dev/sd??   也可以对文件做
swapon     /dev/sd??  手动激活
          swapon   -p   10   /dev/sd??   指定优先级    数字越大优先级越高  系统设置为负数
swapoff /dev/sd??  手动关闭
     swapoff  -a    禁用所有swap
swapon  -s   显示优先级
开机自动激活   写入 /etc/fstab  后swapon  -a
LABEL=SWAPA(也可以写分区名或UUID)             swap                    swap    defaults,pri=X        0 0
移动介质链接监测
tail -f /var/log/message
udevadm monitor
光盘挂载
mount -o loop /root/centos69_1.iso /mnt/centos69
/root/centos69_1.iso    /mnt/centos69           iso9660 defaults,loop 0 0
创建iso文件
cp /dev/cdrom /root/centos7.iso   源是设备,可以直接复制
mkisofs -r -o /root/etc.iso /etc  源是目录或文件
刻录光盘
wodim –v –eject centos.iso
df
    -h 以人类阅读方式
    -H 以人类阅读方式 1000为单位
    -T 显示文件系统类型
    -a 显示所有的挂载信息包含bind
    -i 显示inodes的使用信息
du   查看一个目录与目录下文件的总大小
     -h 以人类阅读方式
    -s 显示总和
dd
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 只拷贝n个记录
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/sda of=/dev/sda
0  关机                     1  halt
1  单用户模式  仅root登录无需输入密码  10
3  多用户模式                  30
4  用户自定义               
5  多用户模式+图形化        31
6  重启                     1  reboot
poweroff   init 0
reboot       init 6
挂载实验
实验:迁移/home
init 1
vim /etc/selinux/config
    SELINUX=permissive
fdisk /dev/sda
partx -a /dev/sda
mkfs.ext4 /dev/sda6
mount /dev/sda6 /mnt
cp -a /home/* /mnt
备份home
mkdir /home
vim /etc/fstab
    /dev/sda6  /home ext4 defaults,usrquota,grpquota 0 2
reboot
quotacheck -cug /home
quotaon /home
quotaoff /home
edquota -u/g  username
quota 查看自己的
    quota -vu/vg username
repquota -avu  查看所有用户的quota
         -avg  查看所有组的quota
setquota -u liubei 20M 30M 200 300 /home
edquota -p liubei guanyu
warnquota -u 给所有超过限制的用户发邮件
          -g 当组的限制超出时,给组管理员发邮件,管理员需在/etc/quotagrpadmins 中指定 groupname: username
raid0 条带化 chunk最小写入单位 至少2块盘 空间大小 单块磁盘大小*n
raid1 镜像  1/n   读性能提升,写入比单块盘慢  空间始终是一块盘的大小   容错率高  可以坏  n-1块盘
raid10 容错高于raid01 但空间损失更多,读写性能 提升 造价高。
raid5     增加一块校验盘
raid阵列
创建raid
mdadm -C /dev/mdo -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
          -C /dev/mdX(设备名)      创建设备名
          -a yes     当没有所有的/dev/mdX 设备时,自动创建该设备
          -l  数字      指定类型的raid
          -n  数字   指定成员数
          -x  数字     指定备用盘数
          -c  数字     指定chunk大小,     仅限raid0     raid5
          /dev/sdX…   指定raid的成员盘
          
删除raid
umount
mdadm -D /dev/md2 先查一下,该raid由哪有成员组成
mdadm -S /dev/md2
 mdadm –zero-superblock /dev/sdf4
 mdadm –zero-superblock /dev/sdf3
清空/etc/mdadm.conf当中,该raid的信息
mdadm /dev/md0 -f /dev/sdd  模拟将/dev/md0 raid中的sdd坏掉
mdadm /dev/md0 -r /dev/sdd  将/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd  向/dev/md0 增加设备sdd 如数据盘不够,则加为数据盘,如够,加为热备盘
mdadm -G /dev/md0 -n 6 -a /dev/sdh 将/dev/md0的数据盘设置为6个,并将/dev/sdh加入为数据盘。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 当没有将md1信息保存至mdadm.conf时,只能手动指定raid成员
mdadm -D -s > /etc/mdadm.conf  将所有的raid成员信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 仅将md0的信处追加保存至mdadm.conf文件
mdadm -A /dev/md1  从/etc/mdadm.conf中读取成员信息,并仅激活md1
mdadm -A -s  从/etc/mdadm.conf中读取成员信息,并激活所有的raid
LVM
物理卷
pvcreate  /dev/设备名   创建物理卷   (可以是raid,硬盘,分区,文件)
pvremove     /dev/设备名     删除物理卷
pvs     简略显示物理卷信息
pvdisplay     详细显示物理卷信息
pvmove     将该物理卷上的数据移出该物理卷
VG组
vgcreate  VG名  /dev/设备名 (可以多个)
     -s     指定PE大小(PE作为VG的最小分割单位) 默认4M   最大8M
vgchange  -s  可向下更改PE大小
vgreduce     VG名  /dev/设备名     减少一个VG组的成员
vgextend     VG名  /dev/设备名     增加一个VG组的成员
vgs     简略查看VG的信息   跟名字可以查看单个VG的简略信息
vgdisplay 详细查看VG信息  跟名字可以查看单个VG的详细信息
逻辑卷
lvcreate 创建逻辑卷
示例  lvcreate -L  大小   -n  名字    vg名
     -l  数字     以PE为单位的个数
     -L #{K,M}  向上靠拢PE整数个的数值
     lvcreate -l # vgmage26 /dev/vgmage26/lv_0 
     lvcreate -L #M vgmage26 /dev/vgmage26/lv_0
lvextend 扩展逻辑卷大小
lvremove     删除一个逻辑卷
lvreduce     减少一个逻辑卷大小
lvs 简略显示逻辑卷信息
lvdisplay     详细显示逻辑卷信息
实验:
扩展逻辑卷
1.先检查需要扩展的大小,VG是否有足够可用空间
如果不够则
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足够则扩展逻辑卷大小
lvextend -L 1G/+1G  /dev/vgmage26/lvmage26_01
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01
3.扩展文件系统大小
resize2fs /dev/vgmage26/lvmage26_01
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系统
如果是xfs文件系统 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01  可在lvextend 时加-r 直接一步到位,先扩展逻辑卷大小后直接增加文件系统大小
实验:减小逻辑卷大小  仅支持Ext文件系统
1.umount  /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
实验:将某块盘从LVM中分离出来
1.先确保数据不在这块PV上
  用pvs查看
2.如果在这块PV上,则将数据转移到同卷组的其他PV上
 pvmove /dev/pv1名 /dev/pv2名(可以不指定)
3.将pv从Vg中移出
 vgreduce vg名 /dev/pv名
4.删除该盘的pv属性
 pvremove /dev/pv名
实验:将LVM迁移到其他主机
1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)
    pvmove /dev/pv1名 /dev/pv2名
    vgreduce vg名 /dev/pv(多余)  移动除要移动的PV以外的其他PV
2.确保要迁移的VG名与目的系统没有同名的VG
    vgrename vgmage26 vg02
    lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必须)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的所有LV
5.vgexport vg名
关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。
6.pvscan
  vgscan
  lvscan
  vgimport vg名
  vgchange -ay vg名
7.mount /dev/vg名/lv名 /mnt/
lvm快照
lvcreate -L 大小{M,G,K} -n 快照名称 -s -p r /dev/vgmage/lvmage 创建快照
     -L    创建快照大小
     -s     指定哪个文件的快照
     -p     设定快照权限 如:r   过着rw
lvremove 快照名称     删除快照
lvextend -L +300M/300M   快照名称   扩展快照
恢复源和快照
umount   源和快照
lvconvert –merge  快照明   该操作会删除快照
mount  源
对有快照的逻辑卷进行扩展
1.umount 源和快照
2.lvchange -an 源 将源及快照设置为inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 扫描
5.resize2fs/xfs_growfs  …
建议,直接删除快照,可以在线扩展逻辑卷,最后重建快照
作业:
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
ehco ‘- – -‘ > /sys/class/scsi_host/host2/scan
pvcreate /dev/sdX
vgcreate -s 16M testvg /dev/sdX
lvcreate -L 5G -n testlv testvg
mke2fs -t ext4 /dev/testvg/testlv
mkdir /users
mount /dev/tsetvg/tsetlv /users
2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换archlinux用户,复制/etc/pam.d目录至自己的家目录
useradd -d /users/archlinux archlinux
cp -r /etc/pam.d
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
lvextend -L 7G -r /dev/tsetvg/tsetlv
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
umount /users
e2fsck -f /dev/tsetvg/tsetlv
resize2fs /dev/tsetvg/tsetlv 3G
lvreduce -L 3G /dev/tsetvg/tsetlv
mount /dev/tsetvg/tsetlv
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能
umount 源和快照
lvconvert –merge 快照名  (该操作成功会删除快照)
mount 源
     

原创文章,作者:何必呢,如若转载,请注明出处:http://www.178linux.com/85360

(0)
上一篇 2017-08-25 22:43
下一篇 2017-08-26 10:29

相关推荐

  • 马哥教育网络班25期+第一周课程练习

    一、计算机的组成及功能     现代计算机的结构:冯诺依曼结构体系(储存程序,顺序执行),由20世纪30年代中期,美国科学家冯·诺依曼提出     冯.诺依曼结构处理器具有以下几个特点:     1:必须有一个存储器;2:必须有一个控制器;3:必须有一个运算器…

    Linux干货 2016-11-28
  • shell脚本编程之数组

    bash仅支持一维数组,类型声明: declare -i    : 表示数值 declare -a  :表示普通数组(默认,可不用声明类型) declare -A :表示关联数组(必须声明类型,bash需4.0以上版本才支持,可通过bash –version查看版本) 一、普通数组(用数字为下标) 1.1数组赋值(修…

    Linux干货 2015-08-24
  • 马哥教育千万级PV实战大揭秘

    又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据、云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! 【张Sir生…

    2016-06-30
  • ansible部分功能详解

    一. 架构: 组成     ansible core:     modules:     Core Module     Custom Module   Host Inventory: 主机清单       File   &nbs…

    Linux干货 2016-11-11
  • shutil,csv,ini

    序列化和反序列化笔记

    2017-10-29
  • N25第八周博客作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;     在线的主机使用绿色显示;     不在线的主使用红色显示; #!/bin/bash trap ‘mytrap’ INT mytra…

    Linux干货 2017-02-26