linux-01 磁盘操作

1 磁盘划分


- 介绍在拿到新服务器后的磁盘划分操作,包括对默认的磁盘划分调整等

  • 本次操作示例如下,具体情况
[root@zyb ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0   10G  0 lvm  [SWAP]
  └─centos-home 253:2    0   39G  0 lvm  /home
sdb               8:16   0  150G  0 disk 
sdc               8:32   0  150G  0 disk 
sr0              11:0    1 1024M  0 rom 
[root@zyb ~]# cat /etc/fstab 
...
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=eac627a4-9225-4f28-b17f-24bd2217f040 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

1.1 调整默认磁盘

  • 从上面示例可以看出,刚装好的系统默认/home目录挂载系统盘且磁盘格式为xfs,xfs格式不方便后续的缩容
  • 本人习惯把home目录独立于系统盘做单独挂载,后续项目都部署在home目录对应的普通用户家目录下

思路:卸载home目录挂载,删除home逻辑卷,把腾出的卷组空间扩容root逻辑卷

卸载

# 卸载home目录挂载
[root@zyb ~]# umount /dev/mapper/centos-home
# 删除原有系统默认home逻辑卷
[root@zyb ~]# lvremove /dev/mapper/centos-home 
Do you really want to remove active logical volume centos/home? [y/n]: y
  Logical volume "home" successfully removed
[root@zyb ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 50.00g                                                    
  swap centos -wi-ao---- 10.00g                                                    

扩容

  • 第一步卸载操作是卷组有了多余的空间,接下利用这个空间扩容root卷组
# 查看卷组剩余空间
[root@zyb ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g <39.00g
# root卷组扩容,注意上面显示空闲空间是小于39G的,所以我们实际扩容也相应给小
[root@zyb ~]# lvextend -L +38.98G /dev/mapper/centos-root 
  Rounding size to boundary between physical extents: 38.98 GiB.
  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 88.98 GiB (22779 extents).
  Logical volume centos/root successfully resized.

# 调整xfs格式文件系统大小
[root@zyb ~]# xfs_growfs /dev/mapper/centos-root 
...
data blocks changed from 13107200 to 23325696

# 查看可扩容后的root逻辑卷大小及现有卷组大小
[root@zyb ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 88.98g                                                    
  swap centos -wi-ao---- 10.00g                                                    
[root@zyb ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <99.00g 16.00m

调整挂载配置文件

  • /etc/fstab文件应做以下调整
# 注释或删除原有home逻辑卷的自动挂载配置,建议直接删除此行
[root@zyb ~]# vi /etc/fstab 
# /dev/mapper/centos-home /home                   xfs     defaults        0 0
  • 经过以上调整,盘结构如下
[root@zyb ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   89G  0 lvm  /
  └─centos-swap 253:1    0   10G  0 lvm  [SWAP]
sdb               8:16   0  150G  0 disk 
sdc               8:32   0  150G  0 disk 
sr0              11:0    1 1024M  0 rom

1.2 新磁盘分区

  • 步骤1已经完成了对系统盘的默认配置调整
  • 步骤2接下来将完成对sdb和sdbc磁盘的整合

思路:sdb 和 sdc 磁盘将采用lvm方式划分,并进行ext4文件系统的格式化。且2块磁盘共同划为一个卷组,挂载在home目录

磁盘划分

  • 分别先对 sdb 和 sdc 两块盘进行lvm划分
# sdb 分区,这里就分一个区。
[root@zyb ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-314572799,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-314572799,默认为 314572799):
将使用默认值 314572799
分区 1 已设置为 Linux 类型,大小设为 150 GiB

# 选择分区类型
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

# 查看已有分区
命令(输入 m 获取帮助):p
...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   314572799   157285376   8e  Linux LVM

# 保存退出
命令(输入 m 获取帮助):wq

# 执行一次分区表同步
[root@zyb ~]# partprobe 

sdc的分区操作同理,这里不列出

  • 经过上面的划分后,服务器磁盘结构如下
[root@zyb ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   89G  0 lvm  /
  └─centos-swap 253:1    0   10G  0 lvm  [SWAP]
sdb               8:16   0  150G  0 disk 
└─sdb1            8:17   0  150G  0 part 
sdc               8:32   0  150G  0 disk 
└─sdc1            8:33   0  150G  0 part 
sr0              11:0    1 1024M  0 rom 

1.3 创建物理卷、卷组、逻辑卷

  • 这里主要是对步骤二分区好的新分区进行物理卷、卷组、逻辑卷等划分

创建新物理卷

# 查看当前物理卷
[root@zyb ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <99.00g 16.00m

# 创建新物理卷
[root@zyb ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

# 查看现有物理卷
[root@zyb ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g   16.00m
  /dev/sdb1         lvm2 ---  <150.00g <150.00g
  /dev/sdc1         lvm2 ---  <150.00g <150.00g
  • 至此,新物理卷创建完成

创建新卷组

  • 需要使用上面分配的 sdb1 和 sdc1 两块物理卷创建一个新的卷组
# 查看当前卷组
[root@zyb ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <99.00g 16.00m

# 创建新卷组
[root@zyb ~]# vgcreate -s 16M zyb_vg /dev/sdb1  /dev/sdc1
  Volume group "zyb_vg" successfully created

# 查看现有卷组
[root@zyb ~]# vgs
  VG     #PV #LV #SN Attr   VSize    VFree   
  centos   1   2   0 wz--n-  <99.00g   16.00m
  zyb_vg   2   0   0 wz--n- <299.97g <299.97g

-s 卷组上的物理卷的PE大小,pe是卷组基本存储单元

  • 至此,新卷组创建完成

创建逻辑卷

  • 新逻辑卷将使用zyb_vg新卷组空间创建
# 查看当前逻辑卷
[root@zyb ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 88.98g                                                    
  swap centos -wi-ao---- 10.00g  

# 创建新逻辑卷
[root@zyb ~]# lvcreate -L 299.968G -n zyb_lv zyb_vg
  Rounding up size to full physical extent <299.97 GiB
  Logical volume "zyb_lv" created.

# 查看现有逻辑卷
[root@zyb ~]# lvs
  LV     VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao----   88.98g                                                    
  swap   centos -wi-ao----   10.00g                                                    
  zyb_lv zyb_vg -wi-a----- <299.97g
  • 至此,新逻辑卷创建完成

逻辑卷格式化及挂载设置

  • 使用ext4格式化
  • 配置自动开机挂载
# 格式化
[root@zyb ~]# mkfs.ext4  /dev/zyb_vg/zyb_lv 
mke2fs 1.42.9 (28-Dec-2013)
...
Writing superblocks and filesystem accounting information: 完成

# 配置开机挂载
# 临时挂载
[root@zyb ~]# mount /dev/mapper/aly_vg-aly_lv  /home
# 开机挂载(永久挂载),添加以下信息
[root@zyb ~]# vi /etc/fstab
/dev/zyb_vg/zyb_lv      /home                ext4    defaults        0 0
  • 磁盘结构如下
[root@zyb ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0  100G  0 disk 
├─sda1              8:1    0    1G  0 part /boot
└─sda2              8:2    0   99G  0 part 
  ├─centos-root   253:0    0   89G  0 lvm  /
  └─centos-swap   253:1    0   10G  0 lvm  [SWAP]
sdb                 8:16   0  150G  0 disk 
└─sdb1              8:17   0  150G  0 part 
  └─zyb_vg-zyb_lv 253:2    0  300G  0 lvm  /home
sdc                 8:32   0  150G  0 disk 
└─sdc1              8:33   0  150G  0 part 
  └─zyb_vg-zyb_lv 253:2    0  300G  0 lvm  /home
sr0                11:0    1 1024M  0 rom  

至此,我们已经完成磁盘划分的全部环境。后续可能会涉及到磁盘的缩容及磁盘的释放等操作,将持续更新

2 磁盘扩容

  • 操作如下
# 分区,配lvm格式
fdisk /dev/sdd 
# 同步分区表
partprobe /dev/sdd1
# 创建物理卷
pvcreate /dev/sdd1
# 扩展卷组
vgextend zyb_vg /dev/sdd1
# 扩展逻辑卷
lvextend -L +149.98G /dev/zyb_vg/zyb_lv 
# 扩展文件系统 ext4
resize2fs /dev/zyb_vg/zyb_lv
# 扩展文件系统 xfs
# xfs_growfs /dev/zyb_vg/zyb_lv

3 ntfs格式分区

  • 说明
    • 需求:在linux服务器上挂载一块磁盘,其磁盘格式未ntfs,主要考虑后续会迁移到window
  • 操作步骤如下
    • 安装 ntfsprogs
    # yum 源
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    # 安装
    yum -y install ntfsprogs
    
    • 磁盘分区
    # 本节以一个分区为例
    fdisk /dev/sdb
    # 按 n 一直回车,把所有空间分给一个区,后保存退出
    wq 
    
    • 格式化
    mkfs.ntfs -f /dev/sdb1
    
    • 挂载
    # 先安装以下命令
    yum -y install ntfs-3g
    # 临时挂载
    mount -t ntfs-3g /dev/sdb1 /data
    # 永久挂载
    vim /etc/fstab
    /dev/sdb1   /data ntfs-3g silent,umask=0,locale=zh_CN.utf8 0 0
    
    • 查看分区信息
    [root@share data]# blkid /dev/sdb1
    /dev/sdb1: UUID="149484A8755803BB" TYPE="ntfs" PTTYPE="dos" PARTUUID="0de85c65-53be-419e-abc0-96507db92cdc"