深度學習服務器一開始的時候因爲預算等原因,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.
#
# <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 到掛載點,然後 既可以使用裏面的數據了
擴展二:如何將磁盤或分區獨立出來?
機器升級,新增加了2塊10TB的希捷企業級機械硬盤(sde
,sdf
),組成數據盤,之前的2TB機械磁盤(sdb
)獨立出來用作其它方面。
將sde
和sdf
磁盤加入到數據盤(邏輯磁盤),並將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