轉(zhuǎn)載請注明連接。
一、安裝CentOS 7.6.18 系統(tǒng)
- 下載鏡像文件:CentOS 7.6.18 64位服務(wù)器鏡像
- 制作光盤啟動或是U盤啟動:工具采用iSOUltra,具體方式谷歌一下即可。
- 系統(tǒng)安裝
- 分區(qū):可以選擇一個磁盤進行自動分區(qū),也可以手動分區(qū),自動分區(qū)會創(chuàng)建一個PV并加入一個名稱為centos的VG中。然后創(chuàng)建home、swap、root三個LV。手動分區(qū)就自己劃分就行,此處不作詳解。
- 軟件選擇Software Selection:我選的是Basic Web Server,并勾選了Debugging Tools。
- 設(shè)置root密碼,添加用戶和設(shè)置用戶密碼
- 等待安裝完成,重啟即可。
1.1 有時候系統(tǒng)無法啟動 Non-System disk or disk error. replace and strike any key when ready
最終解決:
- 修改啟動順序,將Hard Disk放在第一位:
- 格式化除了系統(tǒng)盤之外的所有磁盤:因為之前有一塊其他盤也安裝了系統(tǒng),后來調(diào)換了磁盤位置。
二、搭建Apache + Subversion 服務(wù)器
2.1. 安裝httpd服務(wù):
yum install httpd
# 下面兩步無關(guān)緊要
# 移除Apache默認的welcome首頁
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
# 防止Apache顯示在“/var/www/html”目錄中的文件:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
2.2. 安裝subversion和mod_dav_svn模塊:
sudo yum install subversion mod_dav_svn
2.3. 配置svn
主要由兩個部分:
-
安裝subversion 的時候會創(chuàng)建配置文件:
/etc/sysconfig/svnserve,此文件配置指定svn倉庫的根路徑。[root@localhost autoscripts]# cat /etc/sysconfig/svnserve # OPTIONS is used to pass command-line arguments to svnserve. # # Specify the repository location in -r parameter: #OPTIONS="-r /var/svn" OPTIONS="-r /var/www/svn/" -
另外一個apache httpd中提供關(guān)于svn模塊的配置文件:
/etc/httpd/conf.modules.d/10-subversion.conf[root@localhost autoscripts]# cat /etc/httpd/conf.modules.d/10-subversion.conf # 加載svn模塊 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so LoadModule dontdothat_module modules/mod_dontdothat.so # # Example configuration to enable HTTP access for a directory # containing Subversion repositories, "/var/www/svn". Each repository # must be both: # # a) readable and writable by the 'apache' user, and # # b) labelled with the 'httpd_sys_content_t' context if using # SELinux # # # To create a new repository "http://localhost/repos/stuff" using # this configuration, run as root: # # # cd /var/www/svn # # svnadmin create stuff # # chown -R apache.apache stuff # # chcon -R -t httpd_sys_content_t stuff # #<Location /repos> # DAV svn # SVNParentPath /var/www/svn # # # Limit write permission to list of valid users. # <LimitExcept GET PROPFIND OPTIONS REPORT> # # Require SSL connection for password protection. # # SSLRequireSSL # # AuthType Basic # AuthName "Authorization Realm" # AuthUserFile /path/to/passwdfile # Require valid-user # </LimitExcept> #</Location> <Location /svn> ErrorDocument 404 default DAV svn SVNParentPath /var/www/svn //svn倉庫路徑 SVNListParentPath off AuthType Basic AuthName "Subversion repositories" #AuthUserFile /var/www/svn/usvn-1.0.7/files/htpasswd #AuthzSVNAccessFile /var/www/svn/usvn-1.0.7/files/authz AuthUserFile /var/www/svn/svn-auth //用戶、用戶組授權(quán)文件 AuthzSVNAccessFile /var/www/svn/authz //用戶密碼文件 Require valid-user </Location> -
解決啟動httpd服務(wù)的警告信息, 配置文件
/etc/httpd/conf/httpd.conf#ServerName www.example.com:80 ServerName localhost:80
2.4 創(chuàng)建svn倉庫和授權(quán)文件
//創(chuàng)建倉庫,名稱為my_svn_coderepo
svnadmin create /var/www/svn/my_svn_coderepo
//修改所屬組
sudo chown -R apache:apache my_svn_coderepo
創(chuàng)建授權(quán)文件:
//10-subversion.conf中配置的路徑
//AuthUserFile /var/www/svn/svn-auth //用戶、用戶組授權(quán)文件
//AuthzSVNAccessFile /var/www/svn/authz //用戶密碼文件
mkdir -p /var/www/svn/svn-auth
sudo chown root:apache /var/www/svn/svn-auth
sudo chmod 640 /var/www/svn/svn-auth
給用戶和用戶組添加授權(quán):
sudo htpasswd -m /var/www/svn/svn-auth user1
sudo htpasswd -m /var/www/svn/svn-auth user2
mkdir -p /var/www/svn/authz
# 添加內(nèi)容
sudo vi /var/www/svn/authz
authz配置示例:
//組
[groups]
admin=user1
repo1_user=user2 user3 user4 ...
repo1_trainee=user3 user5
[/]
@admin=rw
[repo1:/]
@repo1_user=rw //組具有讀寫權(quán)限
@repo1_trainee=r
2.5 啟動httpd服務(wù)和svn服務(wù)
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo systemctl start svnserve.service
sudo systemctl enable svnserve.service
systemctl 提供服務(wù)的管理操作,如:
restart
status
enable
disable
stop
start
2.6 防火墻設(shè)置
注意:此步非常關(guān)鍵,如果不設(shè)置,那么將提示找不大page,因為http 80端口的流量被refuse了。
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
2.7 Selinux 設(shè)置
通常創(chuàng)建倉庫是在根路徑 /var/www/svn 下創(chuàng)建,這并不會帶來訪問的問題。但是有時候服務(wù)器/var/www/svn下的空間不夠,迫使我們要在其他新的磁盤上創(chuàng)建倉庫,然后建立一個鏈接。如下:
svnadmin create /home/newdisk/repo
ln -sf /home/newdisk/repo /var/www/svn/REPO
如果通過:http://<server_ip_address>/svn/REPO 去訪問,會提示錯誤:
<D:error xmlns:D="DAV:" xmlns:m="http://apache.org/dav/xmlns" xmlns:C="svn:">
<C:error/>
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable>
</D:error>
猜測原因是改變路徑,建立鏈接之后,沒有訪問文件系統(tǒng)的權(quán)限了。而關(guān)閉selinux就可以不受限制。
關(guān)閉Selinux的方法:
1.查看命令:getenforce
2.臨時關(guān)閉【enforcing—->permissive】
setenforce 0
3.永久關(guān)閉【enforcing—->disabled或者permissive—->disabled】
vim /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled;設(shè)置后保存,需要重啟才能生效。
至此,全部配置已經(jīng)完成,最終效果如下:訪問 http://192.168.1.104/svn/eq/地址,出現(xiàn)如下:

三、LVM 創(chuàng)建大容量LV給SVN倉庫使用
需求場景:有時候一個svn倉庫可能非常大,比如10T,而你的服務(wù)器磁盤單個容量只有2T或4T,那么此時就需要借助LVM的技術(shù)創(chuàng)建動態(tài)靈活的分區(qū)。
3.1. LVM簡介
LVM 是 Logical Volume Manager(邏輯卷管理)的簡寫,LVM將一個或多個硬盤的分區(qū)在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續(xù)將其它的硬盤的分區(qū)加入其中,這樣可以實現(xiàn)磁盤空間的動態(tài)管理,相對于普通的磁盤分區(qū)有很大的靈活性。
在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統(tǒng)工具進行升級)。LVM也允許按用戶組對存儲卷進行管理,允許管理員用更直觀的名稱(如"sales'、 'development')代替物理磁盤名(如'sda'、'sdb')來標識存儲卷。

從上圖可知,LVM就是創(chuàng)建一個虛擬的VG卷組,它相當于一個磁盤容器,然后將多個物理卷PV加入到VG,這樣VG的容量就變大了。然后再對這個大容量的VG進行邏輯分區(qū),創(chuàng)建1個或多個LV邏輯卷。整個過程就是先融合,再分拆,一來一去,就將原來的物理磁盤分區(qū)變?yōu)榱诉壿嬀?。并且可以動態(tài)的向容器VG中添加和移除PV,以動態(tài)的改變整個容器的總?cè)萘俊?/p>
3.2 LVM基本術(shù)語
LVM是在磁盤分區(qū)和文件系統(tǒng)之間添加的一個邏輯層,來為文件系統(tǒng)屏蔽下層磁盤分區(qū)布局,提供一個抽象的盤卷,在盤卷上建立文件系統(tǒng)。首先我們討論以下幾個LVM術(shù)語:
- 物理存儲介質(zhì)(The physical media):這里指系統(tǒng)的存儲設(shè)備:硬盤,如:/dev/hda1、/dev/sda等等,是存儲系統(tǒng)最低層的存儲單元。
- 物理卷(physical volume):物理卷就是指硬盤分區(qū)或從邏輯上與磁盤分區(qū)具有同樣功能的設(shè)備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(zhì)(如分區(qū)、磁盤等)比較,卻包含有與LVM相關(guān)的管理參數(shù)。
- 卷組(Volume Group):LVM卷組類似于非LVM系統(tǒng)中的物理硬盤,其由物理卷組成??梢栽诰斫M上創(chuàng)建一個或多個“LVM分區(qū)”(邏輯卷),LVM卷組由一個或多個物理卷組成。
- 邏輯卷(logical volume):LVM的邏輯卷類似于非LVM系統(tǒng)中的硬盤分區(qū),在邏輯卷之上可以建立文件系統(tǒng)(比如/home或者/usr等)。
- PE(physical extent):每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。
- LE(logical extent):邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,并且一一對應(yīng)。
3.3. 安裝lvm
# CentOS 7 安裝lvm2
yum install lvm2
3.4. 創(chuàng)建和管理LVM
物理磁盤分區(qū)
分區(qū)工具:2T以上使用parted工具,2T以下可以使用fdisk工具。這里因為磁盤都是4TB大小,因此采用parted工具進行分區(qū)。
parted命令常用選項。
當在命令行輸入parted后,進入parted命令的交互模式。輸入help會顯示幫助信息。下面就簡單介紹一下常用的功能
1、Check 簡單檢查文件系統(tǒng)。建議用其他命令檢查文件系統(tǒng),比如fsck
2、Help 顯示幫助信息
3、mklabel 創(chuàng)建分區(qū)表, 即是使用msdos(MBR)還是使用gpt,或者是其他方式分區(qū)表
4、mkfs 創(chuàng)建文件系統(tǒng)。該命令不支持ext3 格式,因此建議不使用,最好是用parted分好區(qū),然后退出parted交互模式,用其他命令進行分區(qū),比如:mkfs.ext3
5、mkpart 創(chuàng)建新分區(qū)。
格式:mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE 類型主要有primary(主分區(qū)), extended(擴展分區(qū)), logical(邏輯區(qū)). 擴展分區(qū)和邏輯分區(qū)只對msdos。
fs-type 文件系統(tǒng)類型,主要有fs32,NTFS,ext2,ext3等
start end 分區(qū)的起始和結(jié)束位置。
6、mkpartfs 建立分區(qū)及其文件系統(tǒng)。目前還不支持ext3文件系統(tǒng),因此不建議使用該功能。最后是分好區(qū)后,退出parted,然后用其他命令建立文件系統(tǒng)。
7、print 輸出分區(qū)信息。該功能有3個選項,
free 顯示該盤的所有信息,并顯示磁盤剩余空間
number 顯示指定的分區(qū)的信息
all 顯示所有磁盤信息
8、resize 調(diào)整指定的分區(qū)的大小。目前對ext3格式支持不是很好,所以不建議使用該功能。
9、rescue 恢復不小心刪除的分區(qū)。如果不小心用parted的rm命令刪除了一個分區(qū),那么可以通過rescue功能進行恢復?;謴蜁r需要給出分區(qū)的起始和結(jié)束的位置。然后parted就會在給定的范圍內(nèi)去尋找,并提示恢復分區(qū)。
10、rm 刪除分區(qū)。命令格式 rm number 。如:rm 3 就是將編號為3的分區(qū)刪除
11、select 選擇設(shè)備。當輸入parted命令后直接回車進入交互模式是,如果有多塊硬盤,需要用select 選擇要操作的硬盤。如:select /dev/sdb
12、set 設(shè)置標記。更改指定分區(qū)編號的標志。標志通常有如下幾種:boot hidden raid lvm 等。boot 為引導分區(qū),hidden 為隱藏分區(qū),raid 軟raid,lvm 為邏輯分區(qū)。如:set 3 boot on 設(shè)置分區(qū)號3 為啟動分區(qū)
注意:LVM管理的分區(qū)必須是LVM分區(qū)類型。對應(yīng)下面的toggle 1 lvm 設(shè)置步驟。
[root@localhost svn]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: HP MB4000JFEPB (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt //gpt 支持大磁盤分區(qū)
Disk Flags:
Number Start End Size File system Name 標志
1 17.4kB 4001MB 4001MB ext4 sdb1 lvm
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
(parted) rm 1 //刪除之前的分區(qū)
(parted) p
Model: HP MB4000JFEPB (scsi) //注意:此磁盤已經(jīng)創(chuàng)建了分區(qū)表,所以沒有調(diào)用mklabel
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 標志
(parted) mkpart
分區(qū)名稱? []? sdb1 //隨便定義一個分區(qū)Label名稱
文件系統(tǒng)類型? [ext2]? //直接回車
起始點? 0%
結(jié)束點? 100% //可以用百分比表示磁盤的最大容量,因為我這里一個物理磁盤只需要一個分區(qū)
(parted) p
Model: HP MB4000JFEPB (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 標志
1 1049kB 4001GB 4001GB sdb1
(parted) toggle 1 lvm
(parted) p
Model: HP MB4000JFEPB (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 標志
1 1049kB 4001GB 4001GB sdb1 lvm
(parted) quit
總結(jié):整個過程就是:
mklabel //創(chuàng)建分區(qū)表,輸入gpt
mkpart //輸入分區(qū)label名稱,設(shè)置分區(qū)的容量大小
toggle 1 lvm //設(shè)置為LVM分區(qū)類型
quit //退出
查看信息:
[root@localhost svn]# fdisk -l /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
磁盤 /dev/sdb:4000.8 GB, 4000787030016 字節(jié),7814037168 個扇區(qū)
Units = 扇區(qū) of 1 * 512 = 512 bytes
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標簽類型:gpt
Disk identifier: 7322DA71-AE1C-4317-AE72-27B5539E2206
# 類型就是Linux LVM
# Start End Size Type Name
1 2048 7814035455 3.7T Linux LVM sdb1
不重啟讀取分區(qū)表信息:
不重啟讀取分區(qū)信息:
[root@localhost ~]# partprobe
分區(qū)格式化:
//格式化為ext4文件系統(tǒng)
mkfs.ext4 /dev/sdb1
用pvcreate命令創(chuàng)建PV
[root@localhost svn]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@localhost svn]# pvcreate /dev/sdc1
WARNING: ext4 signature detected on /dev/sdc1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdc1.
Physical volume "/dev/sdc1" successfully created.
[root@localhost svn]# pvcreate /dev/sdd1
WARNING: ext4 signature detected on /dev/sdd1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdd1.
Physical volume "/dev/sdd1" successfully created.
[root@localhost svn]#
[root@localhost svn]# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name centos
PV Size <3.64 TiB / not usable 0
Allocatable yes
PE Size 4.00 MiB
Total PE 953605
Free PE 1
Allocated PE 953604
PV UUID Au8tWW-O3ad-Rsye-axGh-8B1O-vA1v-rEiR9L
"/dev/sdd1" is a new physical volume of "<3.64 TiB"
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size <3.64 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID WxJSgH-s5B3-wsaF-oJJQ-nTkg-eVNs-3BNlHq
"/dev/sdc1" is a new physical volume of "<3.64 TiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size <3.64 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 7ozVr7-rL0u-kSkb-lfT9-SWBu-QY64-fYVUgh
"/dev/sdb1" is a new physical volume of "<3.64 TiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <3.64 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2LLND8-Z1ST-XucC-8JrH-8NC2-BTYO-At4uEx
用vgcreate命令創(chuàng)建VG
創(chuàng)建卷組名為svn_repo_vg,并將物理卷加入卷組。創(chuàng)建完成VG之后,才能從VG中劃分LV。
[root@localhost svn]# vgcreate svn_repo_vg /dev/sdb1 /dev/sdc1 /dev/sdd1
Volume group "svn_repo_vg" successfully created
[root@localhost svn]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <3.64 TiB
PE Size 4.00 MiB
Total PE 953605
Alloc PE / Size 953604 / <3.64 TiB
Free PE / Size 1 / 4.00 MiB
VG UUID pDz4nM-O7dF-1HVp-dx5Y-qCnW-baTF-6X9PGe
--- Volume group ---
VG Name svn_repo_vg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <10.92 TiB
PE Size 4.00 MiB
Total PE 2861583
Alloc PE / Size 0 / 0
Free PE / Size 2861583 / <10.92 TiB
VG UUID 10L43F-XhJ3-8hNu-F5VU-zYo6-gcj6-i33EOr
以后要新加物理卷PV的時候也可以通過vgextend 向svn_repo_vg組添加物理卷。
用lvcreate命令創(chuàng)建LV
創(chuàng)建完卷組后,就可以創(chuàng)建邏輯卷了(我這里是3塊4T的硬盤)。這里我們創(chuàng)建一個邏輯卷,因為想當一個大磁盤來用。
[root@localhost svn]# lvcreate -L 11T -n svn_logical_volume svn_repo_vg
Volume group "svn_repo_vg" has insufficient free space (2861583 extents): 2883584 required.
[root@localhost svn]#
[root@localhost svn]#
[root@localhost svn]# lvcreate -L 10T -n svn_logical_volume svn_repo_vg
Logical volume "svn_logical_volume" created.
注意:LV Size不能超過VG的size。
lvdisplay
...
--- Logical volume ---
LV Path /dev/svn_repo_vg/svn_logical_volume
LV Name svn_logical_volume
VG Name svn_repo_vg
LV UUID TISO2g-1Bgr-yDe2-ElMu-FtKQ-bWZD-tHnM8B
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-01-15 04:19:11 -0500
LV Status available
# open 0
LV Size 10.00 TiB
Current LE 2621440
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
...
LV格式化及掛載
下一步需要對LV進行格式化(使用mksf進行格式化操作),然后LV才能存儲資料。
root@localhost svn]# mkfs.ext4 /dev/svn_repo_vg/svn_logical_volume
mke2fs 1.42.9 (28-Dec-2013)
文件系統(tǒng)標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
335544320 inodes, 2684354560 blocks
134217728 blocks (5.00%) reserved for the super user
第一個數(shù)據(jù)塊=0
Maximum filesystem blocks=4294967296
81920 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
2560000000
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information:
完成
[root@localhost svn]# blkid
/dev/sda2: UUID="d263050c-26dc-4a77-aac1-2b720f594a91" TYPE="xfs" PARTUUID="66102ab5-4d77-4d1c-8e0e-8ef73e8ab5fb"
/dev/sda3: UUID="Au8tWW-O3ad-Rsye-axGh-8B1O-vA1v-rEiR9L" TYPE="LVM2_member" PARTUUID="cd5d5817-b7d3-40e6-b7db-d61132ab6621"
/dev/sdf: UUID="638bfc4a-adf6-4a83-ba41-5cc15fe4bcb6" TYPE="ext4"
/dev/sde: UUID="2123b229-b596-4dcd-bf74-c81736a4f4d2" TYPE="ext4"
/dev/mapper/centos-root: UUID="0849139d-9e53-487e-a518-99f6d4d96758" TYPE="xfs"
/dev/mapper/centos-swap: UUID="9df3f5b5-0eda-49ef-a7cc-f477268dd4c4" TYPE="swap"
/dev/mapper/centos-home: UUID="858a126d-ff31-4c4c-9045-3367fd899e44" TYPE="xfs"
/dev/sdb1: UUID="2LLND8-Z1ST-XucC-8JrH-8NC2-BTYO-At4uEx" TYPE="LVM2_member" PARTLABEL="sdb1" PARTUUID="e0066e55-094c-4419-b0af-e3a375deb90e"
/dev/sdc1: UUID="7ozVr7-rL0u-kSkb-lfT9-SWBu-QY64-fYVUgh" TYPE="LVM2_member" PARTLABEL="sdc1" PARTUUID="240365c1-7c54-410a-90df-29b69a913281"
/dev/sdd1: UUID="WxJSgH-s5B3-wsaF-oJJQ-nTkg-eVNs-3BNlHq" TYPE="LVM2_member" PARTLABEL="sdd1" PARTUUID="a614748c-c0f6-47a6-8acc-10720dbb4167"
/dev/sda1: PARTUUID="9f2bb6da-6e4e-4347-a525-e83aadfef07a"
/dev/mapper/svn_repo_vg-svn_logical_volume: UUID="95b7be8a-f146-4ea3-93b7-16678db325f4" TYPE="ext4"
至此,將3塊磁盤分區(qū)格式化、創(chuàng)建物理卷PV、并將3個PV加入一個svn_repo_vg的VG,然后再從VG中分出一個LV邏輯卷,最后對邏輯卷LV進行格式化,最終LV看起來就像是一個虛擬的大硬盤。
掛載LV到指定掛載點
[root@localhost svn]# mkdir /svn_repo
[root@localhost svn]# mount /dev/svn_repo_vg/svn_logical_volume /svn_repo/
[root@localhost svn]# df -h
文件系統(tǒng) 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 50G 1.6G 49G 4% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/centos-home 3.6T 47G 3.6T 2% /home
/dev/sda2 1014M 148M 867M 15% /boot
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/svn_repo_vg-svn_logical_volume 10T 73M 9.5T 1% /svn_repo
擴容和刪除
-
擴容
parted /dev/newdisk //進行新的物理磁盤分區(qū),LVM分區(qū) partprobe mkfs.ext4 /dev/newDisk1 //格式化LVM分區(qū) pvcreate /dev/newDisk1 //創(chuàng)建PV vgdisplay vgextend svn_repo_vg /dev/newDisk1 //向vg中添加新的pv lvdisplay lvextend -L 13T /dev/svn_repo_vg/svn_logical_volume //擴展LV svn_logical_volume resize2fs /dev/svn_repo_vg/svn_logical_volume //執(zhí)行重設(shè)大小,對于當前正在使用的svn_logical_volume有效 df -h //查看掛載與容量情況 -
刪除
//從卷組里刪除PV 1、先查看VG里的PV情況: vgdisplay -v 2、從VG里刪除PV: vgreduce svn_repo_vg /dev/sdb1 3、檢查確認是否刪除PV: vgdisplay -v svn_repo_vg | grep "/dev/sdb1" //刪除PV 1、確認pv信息 pvdisplay "/dev/sdb1" is a new physical volume of "290.24 MB" 這里的/dev/sdb1就是要刪除的pv 2、刪除pv pvremove /dev/sdb1 3、確認pv是否成功刪除 pvdisplay | grep "/dev/sdb1" //刪除硬盤上的LVM分區(qū) 1、parted /dev/sdb 2、parted (m for help): p 3、parted (m for help): rm 1 4、parted (m for help): p <--在顯示分區(qū)情況,發(fā)現(xiàn)已經(jīng)沒了 5、 Command (m for help): w //刪除lv 1、卸載掛載 umount /dev/vg00/lv01 2、移除lv lvremove /dev/vg00/lv01 3、確認是否成功移除lv lvdisplay | grep "/dev/vg00/lv01" -
減小LV容量:縮小LV需要事先知道LV中的數(shù)據(jù)容量大小,縮小容量值不應(yīng)超過剩余空間容量,而且要知道減少LV容量后的新大小??梢酝ㄟ^lvscan來查看LV容量,通過vgdisplay來查看剩余容量。
//lvreduce減小LV容量 lvreduce -L 8TG /dev/svn_repo_vg/svn_logical_volume
3.5 錯誤顯示 關(guān)于centos7的LVM出現(xiàn)[unknown]的PV錯誤
vgdisplay/lvdisplay/pvdisplay命令均會提示找不到物理卷設(shè)備。
解決:yum install lvm2 安裝lvm2
四、FAQ
4.1. SVN Error: Unexpected HTTP status 413 Request Entity Too Large
修改:vim /etc/httpd/conf/httpd.conf
增加如下內(nèi)容:
LimitXMLRequestBody 0
LimitRequestBody 0