深度学习服务器一开始的时候因为预算等原因,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 --exclude='/*/.gvfs' /home/ /new_home/
命令,将/home
目录下的所有文件和目录一模一样的同步至/new_home
;然后重新挂载home分区( # vim /etc/fstab
修改/home
分区挂在位置,重启服务器生效)
# 修改之前
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / 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.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / 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,逻辑卷
抽象表示
新加的两块固态是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 到挂载点,然后 既可以使用里面的数据了
参考:
https://jingyan.baidu.com/article/fedf0737772d2835ac897790.html
http://www.178linux.com/44303