您的位置:首页 > 理论基础 > 计算机网络

磁盘分区、格式化、LVM管理、及ISCSI网络存储服务

2018-02-08 23:38 681 查看
RHEL7如何对磁盘进行分区和格式化以及如何配置LVM,与以前的版本的RHEL区别不大,可以通过disk工具(在图形桌面运行)或命令行工具(如:fdisk,gdisk、parted)管理硬盘设备。fdisk可以配置MBR格式,gdisk配置gpt格式,parted可以自己选择。
传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序;中间64字节是分区表,每个分区需要16个字节表示,因此主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每个分区的大小无法超过2T。MBR的最后2个字节是结束符号。
GPT格式,打破了MBR的限制,可以设置多达128分区,分区的大小根据操作系统的不同有所变化,但是都突破了2T空间的限制。支持高达18EB(1EB=1024PB,1PB=1024TB)的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区ID(GUID)。
与MBR分区的磁盘不同,GPT的分区信息是在分区中,而不像MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT 在主引导扇区建立了一个保护分区 的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac os x下为200MB,在Windows磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误的当成一个未分区的磁盘
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中存储着系统的引导程序)。但在GPT硬盘中,分区表的信息存储在GPT头部中,但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
GPT的结构如下图:



首先看看当前硬盘的信息:
fdisk -l


可以在/proc/partitions这个文件查看当前的分区
cat /proc/partitions


先看看MBR格式的分区,fdisk选项如下所示
fdisk /dev/sdb


输入n,可以创建新的MBR分区,然后输入p可以显示当前的分区状态



重复n的操作,添加其他分区。 
注意:MBR格式磁盘最多可以创建4个主分区或3个主分区1个扩展分区,在扩展分区中可以创建若干个逻辑分区。
注意id代表了磁盘的用途,可以通过t来改变。



查看分区记录



gdisk和fdisk非常类似
gdisk /dev/sdb







创建新的分区时候可以看见有128个分区
parted,和前两个相比,更灵活,可以自行设定MBR或GPT格式和分区



通过mklabel msdos  可以设定为MBR格式, 然后可以通过mkpart来划分分区





msdos设定为MBR格式,gpt设定为GPT格式
primary代表主分区,extended代表扩展分区,logical代表逻辑分区。
set number  flag  state 用于设置分区的用途,flag:boot、lvm、raid。 State:on/off表示开启或关闭。
parted工具分完区后无需保存,输入q退出即可
划分好分区之后,还需要格式化才能使用。可以通过mkfs/mkswap来格式化文件系统
#mkfs.xfs /dev/分区设备名或
#mkfs -t xfs /dev/分区设备名



可以修改fstab实现自动加载
vim /etc/fstab


测试是否能够自动挂载



通过df -h 查看已经挂载了的设备 -T 选项可以显示设备的文件系统
df -Ti 可以查看文件的i节点数(i节点即为可以创建的子文件数)文件的存储取决于文件的容量和可创建的文件数
有的挂载点路径比较长, 自动分2行显示,可以-P强制一行显示
如同进程有pid,用户有uid,每个文件系统也有自己的id,称为uuid,但是不是每个分区都有;如果某个分区没有文件系统,那么这个分区是没有uuid的。
可以通过blkid(block id)来查看。注意uuid标记的是文件系统,而不是分区。uuid的好处在于可以通过uuid这个唯一值来挂载系统,这样可以避免因为删除硬盘造成的错位,sda6变成了sda5等等。
blkid


我们可以通过xfs_admin -U 来手动更改文件系统的uuid
[root@kang ~]# umount /dev/sdb1
[root@kang ~]# uuidgen
b84c99ee-613f-483f-954d-16dc4b38d9e3
[root@kang ~]# xfs_admin -U  b84c99ee-613f-483f-954d-16dc4b38d9e3 /dev/sdb1
Clearing log and setting UUID
writing all SBs
new UUID = b84c99ee-613f-483f-954d-16dc4b38d9e3



附加:在目录里面可以通过ls -ld查看目录的属性,ls -la查看内容的属性,但是-ld显示的目录大小只有4K,这仅仅是目录本身的大小,要想查看目录和其内容的整个大小,可以通过du来查看,如果只想看最终结果,使用-s(summary)就行了。



下面我们来看看swap分区如何手动创建。swap类似Windows的虚拟内存/page file,当内存不足的时候,数据保存在swap中。
有两种方式可以使用:
第一种单独用一个分区来作为swap
cat /proc/swaps创建一个分区例如:/dev/sdb2,并更改分区ID为82
执行partx -a  /dev/sdb 命令,使分区修改生效
在分区上创建swap文件系统
mkswap /dev/sdb2


修改fstab实现自动加载
第二种方法是创建一个文件块,这个文件所占用的空间作为swap使用,注意要修改文件的权限。



对应普通的分区扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小。
为了解决这个问题,可以使用lvm(逻辑卷),基本过程是把物理磁盘或者分区初始化称为物理卷(pv),然后把pv加入了vg(卷组),最后在vg上划分逻辑的分区(lvm),lvm可以当做普通的分区进行格式化和挂载。
将准备的磁盘或分区创建pv:
pvcreate /dev/sdc[123]



可以执行pvdisplay查看pv的详细信息,pvremove删除pv。
创建完pv(物理卷)之后,需要创建vg(卷组),然后添加pv到vg中
可以通过vgdisplay查看具体的信息,注意pe的size是4M,这个是增减的最小计算单位





注意:
创建VG时:使用-s选项的作用是在创建时指定pe块(物理扩展单元)的大小,默认是4M
#vgcreate vg00 -s 8M /dev/sdc[123]我们可以继续往vg里面添加新的分区



若事先没有把sdd1转化为pv,而是直接添加到vg里面,不过一旦添加了他自动就初始化成pv了。
可以添加当然也可以减少pv。 #vgreduce vg00 /dev/sdd1VG准备就绪,可以创建了LVM了。



注意看他的大小其实是112M,因为pe的大小是4M,这个4M是最小单位,不能破开,因此28个pe就是112M





注:大L可以直接指定大小,小l是指定多少个pe的值
也可以设置剩余空间的百分比
[root@kang ~]# lvcreate -l 10%free -n lv01 vg00


删除逻辑卷

[root@kang ~]# lvremove /dev/vg00/lv01



对于已经创建好逻辑卷,可以当做普通分区一样格式化和挂载
[root@kang ~]# mkfs.xfs /dev/vg00/lv00



修改/etc/fstab文件实现开机自动挂载
vim /etc/fstab
/dev/vg00/lv00 /aa xfs defaults 0 0
扩展一个逻辑卷,增加300M,首先确保卷组有大于300M的空闲时间
vgdsiplay vg00


执行lvextend扩展逻辑卷大小
[root@kang ~]# lvextend -L +200M /dev/vg00/lv00



注意逻辑卷的文件系统仍然是109M没有改变,我们还需要填充文件系统的空白RHEL7可以用xfs_growfs来扩大xfs文件系统,也可以直接用resize2fs来处理设备
注意的是xfs系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4了
[root@kang ~]# xfs_growfs /dev/vg00/lv00


执行df -hT 查看扩展后文件系统的大小



逻辑卷快照
LVM提供一个极秒的设备,它是snaphot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图LVM快照通过把文件系统的改变记录到一个快照分区,因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区,所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。
快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面(快照是对当前使用状态的保存,所以需要快照比当前使用量要大)。
现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用lvdisplay来查询一下这个逻辑卷



可以看到,这个逻辑卷/dev/vg00/lv00的大小是309M。我们将这个逻辑卷/dev/vg00/lv00挂载到/aa
下面。复制一些数据到/bb里面去。方便等下做实验



现在我们就为逻辑卷/dev/vg00/lv00来做快照(注意快照应在同一个逻辑卷和大小)
[root@kang ~]# lvcreate --size 300M --snapshot --name lvsp00 /dev/vg00/lv00
Logical volume "lvsp00" created.执行lvscan查看创建好的逻辑卷快照



可以看到/dev/vg00/lv00是原始逻辑卷,而/dev/vg00/lvsp00是快照
执行lvdisplay或lvs命令查看逻辑信息



可以看到逻辑卷快照创建成功了
注意:这个快照卷建好之后,是不需要格式化也不需要进行挂载的。格式化或挂载都会出现错误提示的。

模拟将原逻辑卷中的数据删除



如何恢复原逻辑卷的数据?有两种方式可以恢复删除的数据
方式1: 是先将原逻辑卷卸除
#umount /dev/vg00/lv00然后挂载逻辑卷快照即可
#mount /dev/vg00/lvsp00 /aa就可以正常访问数据了
方式2:可以通过lvconvert把快照的内容重新写回原有的lvm(快照重写后会消失)
先将原逻辑卷卸除
#umount /dev/vg00/lv00 执行lvconvert将快照的数据合并到原逻辑卷
#lvconvert  --merge /dev/vg00/lvsp00
最后挂载原逻辑卷,查看数据是否恢复成功



注意: 当我们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,所以可以用快照恢复数据。而当我们在逻辑卷里面添加数据,快照是不会发生改变的,是没有这个文件的。因为快照只会备份当时逻辑卷的一瞬间。
使用ssm(系统存储管理器)进行逻辑管理,
逻辑卷管理器(LVM)是一种极其灵活的磁盘管理工具,它让用户可以从多个物理硬件驱动创建逻辑磁盘卷,并调整大小 ,根本没有停机时间。 最新版本的centos7/RHEL7现在随带系统存储管理器(又叫ssm),这是一种统一命令行界面,由红帽公司开发,由于管理各种各样的存储设备。目前,有三种可供ssm使用的卷管理后端:LVM,Btrfs和Crypt

准备ssm,在Centos7/RHEL7上,你需要首先安装系统存储管理器。可以通过rpm或yum工具安装
[root@kang ~]# cd /media/Packages/
[root@kang Packages]# rpm -ivh system-storage-manager-0.4-5.el7.noarch.rpm


首先我们来检查关于可用硬盘和LVM卷的信息。下面这个命令将显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
#ssm list


在这个例子中,有四个物理设备(“/dev/sda","/dev/sdb","/dev/sdc","/dev/sdd")、两个存储池(“centos”和“vg00”),以及存储池centos中创建的三个LVM卷(“/dev/centos/root","/dev/centos/swap","/dev/centos/home"),存储池vg00中创建的两个LVM卷(“/dev/vg00/lv00”和“/dev/vg00/lv01”)。

下面来讲解如何通过ssm创建、管理逻辑卷和逻辑卷快照
至少添加一块磁盘,执行ssm命令显示现有磁盘存储设备、存储池、LVM卷的信息



可以看到有两块空闲磁盘( sde、sdf)
创建新的LVM卷/池
在这个示例中,不妨看一下如何在物理磁盘驱动器上创建新的存储池和新的LVM卷。如果使用传统的LVM工具,整个过程相当的复杂,需要准备分区,需要创建物理卷、卷组、逻辑卷,最后还要建立文件系统。不过,若使用ssm,整个过程yicuerzu一蹴而就!
下面这个命令的作用是,创建一个名为mypool的存储池,创建存储池中名为lv01的500MB大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下。
[root@kang ~]# mkdir /mnt/test
[root@kang ~]# ssm create -s 500M -n lv01 --fstype xfs -p mypool /dev/sde /mnt/test/


验证ssm创建的结果



或执行 ssm list



将物理磁盘(sdf)添加到LVM池
[root@kang ~]# ssm add -p mypool /dev/sdf


新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为mypool的存储池的大小执行ssm list查看。



接下来,我们来扩大现有的LVM卷
扩大LVM卷,不妨将/dev/mypool/lv01卷的大小增加300MB。
如果你在存储池中有额外空间,可以扩大存储池中现有的磁盘卷。为此,使用ssm命令的resize选项
[root@kang ~]# ssm resize -s +300M /dev/mypool/lv01


执行ssm list查看扩大后逻辑卷



可以看到逻辑卷扩大到800M,即在原来的基础上增加了300M,但文件系统大小(Fs size)还没有改变,仍然是原来的大小。
为了让文件系统识别增加后的卷大小,你需要扩大现有的文件系统本身。有不同的工具可用来扩大现有的文件系统,这取决于你使用哪种文件系统。
比如说,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。
在这个例子中,我们使用Centos7,XFS文件系统在默认情况下创建。因而,我们使用xfs_growfs来扩大现有的XFS文件系统。
[root@kang ~]# xfs_growfs /dev/mypool/lv01


扩大XFS文件系统后,查看结果



或执行#df -hT



可以看到LVM扩展成功
逻辑卷快照
对现有的LVM卷(比如/dev/mypool/lv01)生成快照
一旦快照生成完毕,它将作为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的所有数据



[root@kang ~]# ssm snapshot /dev/mypool/lv01


[root@kang ~]# ssm list snapshots


每次原LVM卷中的数据更改,都可以手动执行ssm snapshot 生成快照
当原LVM卷数据损坏就可以用快照恢复了
方式方法请见上文
有磁盘ssm的具体用法可以参考ssm的帮助手册页
例如:
删除LVM卷
#ssm remove <volume>删除存储池
#ssm remove <pool-name>ISCSI网络存储服务
iscsi实现网络存储,提供存储端叫target,使用存储端叫initiator。 target上可以提供存储空间,initiator负责连接iscsi设备,在iscsi设备中创建文件系统,以及存取数据,在initiator上看去是多了一块硬盘。
服务器端配置target,准备做为LUN发布 的iscsi存储设备(可以是一整块磁盘、一个分区、逻辑卷或RAID阵列)。
本人事先准备好两个逻辑卷作为iscsi的存储设备。



首先安装target
[root@kang ~]# yum -y install targetd targetcli


启动服务
[root@kang ~]# systemctl enable target
[root@kang ~]# systemctl start target


设置防火墙(尽量保持原防火墙的规则)
[root@kang ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@kang ~]# firewall-cmd --reload
success


执行targetcli工具



注意:输入help可以查看targetcli的帮助信息



基本思路:
先把准备共享的块做出来,创建一个target,在target上创建lun,一个lun连接一个块
1.创建块即给要发布的逻辑卷起个名字



注:给/dev/vg00/lv00逻辑卷起个名字叫server0.disk1;给/dev/mypool/lv01逻辑卷起个名字叫server0.disk2
查看块如下图所示:



2.创建iqn名字即创建iscsi对象



查看iscsi对象如下图所示:



3.设置ACL即将iscsi对象与客户端IP或主机名绑定



注意:iqn.2015-06.com.benet:client1是initiator的名字,需要在客户端中设置的。
4、创建LUN并绑定块



一个iscsi对象可以创建多个LUN(LUNO、LUN1。。。)
执行ls查看: 



启动监听程序(默认监听3260端口,端口号唯一,修改时先删除原端口号)



注:172.24.3.5是iscsi服务端网卡IP



可以查看/etc/target/saveconfig.json配置文件,该配置文件保存着iscsi的配置。



在initiator端的配置:
1.安装软件
# yum install -y iscsi-initiator-utils2.给initiator起个名字(服务端的acl控制账号)
# vim /etc/iscsi/initiatorname.iscsi内容如下:



3.启动服务
# systemctl enable iscsi; systemctl start iscsi4.发现存储
# iscsiadm -m discovery -t st -p 172.24.3.5


5.登录存储
# iscsiadm -m node -T iqn.2015-06.com.benet:disk1 -p 172.24.3.5 -l


注:-l表示连接iscsi目标;-u表示断开和iscsi目标的连接
验证客户端iscsi连接



剩下来的操作就和管理本地磁盘一样了
网络存储是将远程存储设备(可以是一块磁盘、分区、逻辑卷等)空间映射到本地使用,远程存储设备只需要提供空间不需要格式化,使用者根据需要做相应操作。
写入、读取的内容都在远程,已格式化的空间其他使用者不能操作。
使用的远程设备会映射成本地的一个磁盘,如果添加本地磁盘,远程磁盘的序号会改变,所以需要使用磁盘的uuid号设置永久挂载。
blkid命令列出所有磁盘设备的uuid
/etc/fstab中添加永久挂载
uuid  挂载点  nfs  defaults,_netdev   0 0

2018,新的开始,新的征程 ,坚持不懈,勇往直前@!!
希望能够对你有所帮助 再见!!!!!






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: