DL服务器配置升级--多磁盘合并技术&home分区更换

深度学习服务器一开始的时候因为预算等原因,home分区选择的是2T的希捷企业级磁盘,系统则是SSD。随着实验室大家使用人员越来越多,决定升级下服务器配置。

最初设想:
* 选择加2*1T固态,用来存放需要快速存取的训练数据。
* 选择加4*10T机械硬盘,用来存放一般的数据

最先到货的是2*1T固态,打算合并成一个lvm分区,用来替换原本机械硬盘的/home分区。


rsync:自动同步目录文件

rsync可以用来同步两个文件目录,不管两者是处在同一个机器上或是不同的机器上;同时还可以在同步时保证文件的属性信息和执行权限等保持不变;需要以管理员身份去运行,保证不会因为权限的问题导致一系列其它问题

这里将2块1T 固态硬盘通过lvm(逻辑卷管理)技术合并成一个lv分区,临时挂载到/new_home下,下面就需要使用rsync命令同步/home目录

rsync -avXS --exclude='/*/.gvfs' /home/ /new_home/
"""
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude='/*/.gvfs' [排除|跳过]/*/目录下的.gvfs目录;防止提示gvfs权限问题
"""

参数更详细说明,请参考:http://man.linuxde.net/rsync

命令更一般用法:

# 指同步 zoe 和 zm文件夹,其它的跳过
rsync -aXS --include="zoe" --include="zm" --exclude="/*" /home /new_home/
# 除了zoe 和 zm 之外,全部 同步
rsync -aXS --exclude="zoe" --exclude="zm" /home /new_home/
# 完全同步两个文件夹,目标文件夹中和源文件夹存在的不一样的地方都会被删除
rsync -avXS --delete /data/ /home/backup/

终于,通过rsync -avXS --exclude='/*/.gvfs' /home/ /new_home/命令,将/home目录下的所有文件和目录一模一样的同步至/new_home;然后重新挂载home分区( # vim /etc/fstab 修改/home 分区挂在位置,重启服务器生效)

# 修改之前
# /etc/fstab: static file system information.
#
#                
# / was on /dev/sda1 during installation
UUID=e6c07a8a-8e81-42d9-9822-981615f17881 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sdb1 during installation
UUID=5785ccdb-1015-4208-9557-982745e56c4c /home           ext4    defaults        0       2
# lv分区,uuid方式指向磁盘
UUID=7edae0d5-a370-4607-9d5d-fafeec9292ef /new_home auto nosuid,nodev,nofail,x-gvfs-show 0 0

# 修改之后
# /etc/fstab: static file system information.
#
#                
# / was on /dev/sda1 during installation
UUID=e6c07a8a-8e81-42d9-9822-981615f17881 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sdb1 during installation
UUID=7edae0d5-a370-4607-9d5d-fafeec9292ef /home auto nosuid,nodev,nofail,x-gvfs-show 0 0

注意:blkid /dev/sdc 可以查看磁盘的uuid


lvm 多磁盘合并

基本介绍

LVM是Logical Volume Manager的简写。其是Linux环境下对磁盘分区进行管理的一种机制。LVM由Heinz Mauelshagen在Linux 2.4内核上实现。其主要作用是在不损坏磁盘数据的情况下对磁盘空间进行增加,缩减。LVM的做法是将几块物理硬盘通过软件的方式组合成一块空间相对大的Volume Group,简称VG,然后将这块大磁盘通过Physical Extend组成可以使用的分区Logical Volume,简称LV。将LV格式化之后挂载既能使用

常见名词
PV:Physical Volume,物理卷
PE:Physical Extend,物理块
VG:Volume Group,卷组
LV:Logical Volume,逻辑卷

抽象表示
DL服务器配置升级--多磁盘合并技术&home分区更换_第1张图片

新加的两块固态是sdc和sdd,通过下面的命令一步步创建lv分区

# 1.初始化磁盘为物理卷 pv
pvcreate /dev/sdc
pvcreate /dev/sdd

# 创建卷组 volgroup00
vgcreate volgroup00 /dev/sdc
# 将sdd 添加进 volgroup00卷组
vgextend volgroup00 /dev/sdd
# 显示卷组信息
vgdisplay

--- Volume group ---
  VG Name               volgroup00
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.82 TiB
  PE Size               4.00 MiB
  Total PE              476934
  Alloc PE / Size       475076 / 1.81 TiB
  Free  PE / Size       1858 / 7.26 GiB
  VG UUID               4GSVOH-Q2kF-cCfa-GDXe-g3ME-vpBB-sC8zJ4

# 显示物理卷
pvdisplay

--- Physical volume ---
  PV Name               /dev/sdc
  VG Name               volgroup00
  PV Size               931.51 GiB / not usable 1.71 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              238467
  Free PE               0
  Allocated PE          238467
  PV UUID               YyVFW3-Vd3z-X1r4-A07Z-Bhry-ZRkR-vlwVNz

  --- Physical volume ---
  PV Name               /dev/sdd
  VG Name               volgroup00
  PV Size               931.51 GiB / not usable 1.71 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              238467
  Free PE               1858
  Allocated PE          236609
  PV UUID               cLCcPs-XFO9-9djK-oojq-ImOI-5bGt-SVKrq1

# 逻辑卷lv: home 创建
# lvcreate -L 1800G -n home VolGroup00
# lvcreate -l 98%FREE -n home VolGroup00
lvcreate -l 98%VG -n home VolGroup00

# 显示 lv
lvdisplay

  --- Logical volume ---
  LV Path                /dev/volgroup00/home
  LV Name                home
  VG Name                volgroup00
  LV UUID                GODkNf-sGXK-ElhT-ZTSf-7z3H-VpRL-4G83Wc
  LV Write Access        read/write
  LV Creation host, time visint, 2018-01-19 12:45:36 +0800
  LV Status              available
  # open                 1
  LV Size                1.81 TiB
  Current LE             475076
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

# 格式化
mkfs.ext4 /dev/volgroup00/home

# 到此步,物理卷pv-->逻辑卷组vg-->逻辑卷lv 创建完成,并且可以挂载文件系统

# 逻辑卷扩展 +500M
lvextend -L +500M /dev/volgroup00/home
#lvextend -L +500M /dev/mapper/volgroup00-home
#lvextend -l 50%VG /dev/mapper/volgroup00-home

# 上一步操作保是增加了逻辑卷的大小, /new_home文件系统大小并未改变,使用resize2fs命令,重定义文件系统大小

resize2fs /dev/volgroup00/home

扩展:当系统重装时,存放在/home(lvm分区)里面的数据如何恢复?

# 查看存在哪些 vg
root # vgscan
# 查看 vg 从 哪些 pv里划分出来的
root # pvdisplay 

# 通知系统逻辑卷组的更改
# 卷组名来自于第一步: vgscan
root # vgimport 卷组名

root # vgchange -a y

# 然后就是 mount 到挂载点,然后 既可以使用里面的数据了


扩展二:如何将磁盘或分区独立出来?
机器升级,新增加了2块10TB的希捷企业级机械硬盘(sdesdf),组成数据盘,之前的2TB机械磁盘(sdb)独立出来用作其它方面。

sdesdf磁盘加入到数据盘(逻辑磁盘),并将2TB的sdb磁盘上的数据转移到这2块新磁盘上,完成后即可移除sdb磁盘,问题解决!

第一步:查看需要独立出来的目标磁盘的占用情况

pvdisplay # 查看物理磁盘信息
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               volgroup-hd
  PV Size               1.82 TiB / not usable 1.09 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              476932
  Free PE               0      # 磁盘全部被占用了
  Allocated PE          476932
  PV UUID               CQ6TDO-TNej-Fl0g-RhZD-3CVV-xgPY-tu396m

  --- Physical volume ---
  PV Name               /dev/sde
  VG Name               volgroup-hd
  PV Size               9.10 TiB / not usable 4.00 MiB
  Allocatable           yes (but full) # 未分配状态,该磁盘不可以
  PE Size               4.00 MiB
  Total PE              2384383
  Free PE               0
  Allocated PE          2384383
  PV UUID               svf7uc-xWvt-D6of-aLTe-blGU-S0GP-imlplH

  --- Physical volume ---
  PV Name               /dev/sdf
  VG Name               volgroup-hd
  PV Size               9.10 TiB / not usable 4.00 MiB
  Allocatable           yes # 已分配,该磁盘处于可用状态
  PE Size               4.00 MiB
  Total PE              2384383
  Free PE               1621347 # 有大量的已分配空闲空间
  Allocated PE          763036 # 已分配的空间(不一定被使用)
  PV UUID               USNcyh-anLS-uDcT-gg4p-BKi2-SbsV-Pa8yiU

移动数据到其它磁盘上

# 将2TB的磁盘sdb的内容移动到10TB的sdf磁盘中
pvmove /dev/sdb /dev/sdf
"""
/dev/sdb: Moved: **.*%
/dev/sdb: Moved: 16.6%
/dev/sdb: Moved: **.*%
/dev/sdb: Moved: 99.9%
/dev/sdb: Moved: 100.0%
"""

注销要删除的硬盘/dev/sdb

pvchange -xn /dev/sdb  # 注销sdb
"""
 Physical volume "/dev/sdb" changed
  1 physical volume changed / 0 physical volumes not changed
"""
pvdisplay
"""
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               volgroup-hd
  PV Size               1.82 TiB / not usable 1.09 MiB
  Allocatable           NO # 不再是激活状态
  PE Size               4.00 MiB
  Total PE              476932
  Free PE               476932
  Allocated PE          0
  PV UUID               CQ6TDO-TNej-Fl0g-RhZD-3CVV-xgPY-tu396m
"""

将硬盘或分区从逻辑卷组中删除,并删除物理盘

vgreduce volgroup-hd /dev/sdb # 从逻辑卷组中删除,此时物理卷中还存在
"""
  Removed "/dev/sdb" from volume group "volgroup-hd"
"""
pvremove /dev/sdb # 从物理卷中删除
"""
  Labels on physical volume "/dev/sdb" successfully wiped
"""  
pvdisplay # 此时没有了 /dev/sdb

参考:
https://jingyan.baidu.com/article/fedf0737772d2835ac897790.html
http://www.178linux.com/44303
http://blog.51yip.com/linux/1779.html

新补充
https://jingyan.baidu.com/article/cb5d6105f318af005c2fe0dd.html
https://blog.csdn.net/a351945755/article/details/38089349

你可能感兴趣的:(Linux,系统)