Linux学习笔记之七

1. 设备相关操作及知识点拾遗

设备类型分辨
/dev/xdx ####硬盘设备
/dev/cdrom ####光驱
/dev/mapper/* ####虚拟设备

blkid 查看所有可以使用的设备id及名称
mount 设备 挂载点
#####通过挂载点访问设备

示例:mount /dev/vdb1 /mnt
#将设备/dev/vdb1挂载到/mnt上

Linux学习笔记之七_第1张图片
umount 设备|设备挂载点 ####卸载设备

示例:umount /mnt | /dev/vdb1

当用umount卸载设备时设备繁忙时如何卸载设备
lsof 设备|设备挂载点 #####查看设备或挂载点上运行的程序
fuser -kvm 设备|挂载点 #####结束设备或挂载点上运行的进程
fuser -k ####结束进程
-v ####详细信息
-m ####差挂载点上运行的程序

2. 设备加密相关

假设在这一步我们已经创建了名字为/dev/vdb1的分区,下面我们将对这一分区进行加密,限制用户访问
此过程常见操作如下:

cryptsetup luksFormat /dev/vdb1#为设备安装加密层
cryptsetup open /dev/vdb1 halo#打开加密层
mkfs.xfs /dev/mapper/halo#初次挂载前需要格式化设备
mount /dev/mapper/halo /mnt#将格式化的设备挂载到/mnt上
umount /mnt/#卸载设备
cryptsetup close /dev/vdb1 halo#关闭加密层(必须在设备卸载之后进行,要不然会提示错误)

下图演示了如何为一个设备进行加密以及加密后设备特征信息的识别,接下来就需要执行

格式化设备:mkfs.xfs /dev/mapper/halo
将格式化后的设备挂载到可访问目录上:mount /dev/mapper/halo /mnt

Linux学习笔记之七_第2张图片

如果不想再使用这个设备而且不想让别人看到的话就需要依次执行

umount /mnt/#卸载设备
cryptsetup close halo#关闭加密层

如果出现以下错误信息,那么原因是:你的设备还在使用中,也就是没有卸载掉
Linux学习笔记之七_第3张图片
加密磁盘永久挂载(除了reboot之外配置顺序随便,注意名称要对应)
(机密信息存放文件名称随便起,里面存放加密用到的密码,但是其他地方使用时一定要对应)

配置加密表vim /etc/crypttab
lockey /dev/vdb1 /root/lockey
配置加密文件
vim /root/lockey
chmod 660 /root/lockey
配置开机自检文件vim /etc/fstab
/dev/mapper/lockey /mnt xfs defaults 0 0
指定读取的密码文件,如果不配置这一项每次开机都需要输入加密设备的密码才能顺利开机
crptsetup luksAddKey /dev/vdb1 /root/lockey
#这一步一定要有,要不然开机会提示需要输入加密磁盘的密码才能继续
reboot

加密清除

删掉开机自检文件中的配置vim /etc/fstab
卸载设备
关闭加密层

3. 设置磁盘配额

mount -o usrquota /dev/vdb1 /mnt
quotaon -uv /dev/vdb1
edquota -u user
Linux学习笔记之七_第4张图片
Linux学习笔记之七_第5张图片
设置hard为合理的容量
切换用户之后使用
dd if=/dev/zero of=/mnt/userfile bs=1M count=no
来验证可以为用户设置的容量

配置磁盘配额永久生效
vim /etc/fstab
/dev/vdb1 /mnt xfs defaults,usrquota 0 0
Linux学习笔记之七_第6张图片

(读2|写2|读写3)(RAID0|1|0+1)

4. 磁盘阵列RAID

贴段百度百科

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。

磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

利用虚拟机模拟实现磁盘阵列RAID

1. 划分三个分区如下(t参数指定磁盘类型为fd)

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     6293503     3145728   fd  Linux raid autodetect
/dev/vdb2         6293504    12584959     3145728   fd  Linux raid autodetect
/dev/vdb3        12584960    18876415     3145728   fd  Linux raid autodetect

2. mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
#利用三个设备创建磁盘阵列,参数解释:

    -C  ##创建磁盘阵列
    -a  ##/dev/md0如果没有自动创建
    -l  ##raid阵列级别
    -n  ##使用设备的个数
    -x  ##闲置或者说备用设备的个数

3. 格式化md0设备使得文件系统可以识别,然后挂载访问

mkfs.xfs /dev/md0
mount /dev/md0 /mnt

挂载之后可以通过以下命令测试阵列的使用或者是功能

mdadm  -D /dev/md0  ##查看raid
mdadm -f /dev/md0  /dev/vdb1    ##损坏一个raid组件
mdadm -r /dev/md0 /dev/vdb1     ##移除损坏的raid组件
mdadm -a /dev/md0 /dev/vdb1     ##添加新的raid组件

监控md0的改变以及挂载目录的变化

watch -n 1 'cat /proc/mdstat; df -h /mnt'

Linux学习笔记之七_第7张图片
4.删除磁盘阵列RAID

1.umount /dev/md0(或者/mnt)
#卸载或者停止设备
2.mdadm -S  /dev/md0    
##停止raid
4.fdisk /dev/vdb
#然后删除设备
5.rm -fr /dev/md*       
##删除文件

5. lvm实现磁盘扩容和缩减以及磁盘快照

首先我们来个引子:

 比如说有一堆橘子(设备),如何获取所需要的一部分橘质(比如说一个半橘子,也就是说一个半设备的容量),当然是把橘子都柞汁,放到一个大瓶子里,想喝多少倒多少到杯子里就可以了,
pv就是将橘子柞汁的过程,vg就是将所有汁子放到一个大瓶子里,lv就是往小杯子按需倒的操作
过程中你不要管橘子成了橘子汁,本质一样就可以了

名词解释:

pv:物理卷
vg:物理卷组
lv:逻辑卷
pe:物理拓展

1 。lvm环境的部署
pv—>vg—–>lv

pv
fdisk--->分区--->修改分区id---->pvcreate
pvs     ##用来查看pv设备
pvcreate 分区 ##自作pv设备

vg
vgcreate vg名称   pv设备
vgs     ##vg设备的查看

lv
lvcreate -L 大小 -n 名字 vg名称
lvs     ##lvm设备的查看

mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
#好了,弹性容量有了,可以使用了

操作图示:
Linux学习笔记之七_第8张图片
lvm的管理

2. 扩大设备容量
Linux学习笔记之七_第9张图片

pvcreate /dev/vdb2
\#添加了一个新的设备(橘子,用来扩充瓶子中橘子汁)
vgextend vg0 /dev/vdb2      
\##扩大vg
lvextend -L 800M /dev/vg0/lv0   
\##扩大lvm

xfs_growfs /dev/vg0/lv0     
\##用于扩大xfs文件系统
或者
resize2fs  /dev/vg0/lv0     
\##用于扩大ext文件系统

3. 缩减设备容量(xfs系统不支持,例子使用ext4文件系统)

watch -n 1 'pvs;echo ========;vgs;echo ======;lvs;echo ======;df -h /mnt'
#左边监控命令

Linux学习笔记之七_第10张图片

首先,将文件系统格式化为能够支持缩减的类型
mkfs.ext4 /dev/vg0/lv0
umount  设备
e2fsck -f /dev/vg0/lv0  ##扫瞄数据大小
resize2fs /dev/vg0/lv0 300M ##缩减文件系统
lvreduce -L 300M /dev/vg0/lv0   ##缩减lvm设备

4. 缩减vg

确定缩减的pv设备
如果要缩减的设备是/dev/vdb3,但是/dev/vdb3上有数据那么执行数据迁移
pvmove /dev/vdb3 /dev/vdb2
vgreduce vg0 /dev/vdb3  ##缩减vg0,/dev/vdb3上一定没有数据才能缩减
pvremove /dev/vdb3  ##还原/dev/vdb3成为物理分区

5. lvm删除

umount /mnt
lvremove  /dev/vg0/lv0  
##删除lvm
vgremove  vg0       
##删除vg
pvremove /dev/vdb2  
##删除pv

6. lvm快照

操作示例:删除了文件内容之后通过快照进行恢复
Linux学习笔记之七_第11张图片
lvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0
#为设备/dev/vg0/lv0创建快照,-L 10M是用来存贮你修改过的数据的,大小不一定,需要根据自己修改的内容的大小进行估算

mount /dev/vg0/lv0-backup /mnt/#把快照挂上去
#快照坏了卸载删除重新照重新挂载

你可能感兴趣的:(linux命令,运维,运维开发)