转载请注明连接。
一、安装CentOS 7.6.18 系统
- 下载镜像文件:CentOS 7.6.18 64位服务器镜像
- 制作光盘启动或是U盘启动:工具采用iSOUltra,具体方式谷歌一下即可。
- 系统安装
- 分区:可以选择一个磁盘进行自动分区,也可以手动分区,自动分区会创建一个PV并加入一个名称为centos的VG中。然后创建home、swap、root三个LV。手动分区就自己划分就行,此处不作详解。
- 软件选择Software Selection:我选的是Basic Web Server,并勾选了Debugging Tools。
- 设置root密码,添加用户和设置用户密码
- 等待安装完成,重启即可。
1.1 有时候系统无法启动 Non-System disk or disk error. replace and strike any key when ready
最终解决:
- 修改启动顺序,将Hard Disk放在第一位:
- 格式化除了系统盘之外的所有磁盘:因为之前有一块其他盘也安装了系统,后来调换了磁盘位置。
二、搭建Apache + Subversion 服务器
2.1. 安装httpd服务:
yum install httpd
# 下面两步无关紧要
# 移除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 的时候会创建配置文件:
/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中提供关于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 //用户、用户组授权文件 AuthzSVNAccessFile /var/www/svn/authz //用户密码文件 Require valid-user </Location>
-
解决启动httpd服务的警告信息, 配置文件
/etc/httpd/conf/httpd.conf
#ServerName www.example.com:80 ServerName localhost:80
2.4 创建svn仓库和授权文件
//创建仓库,名称为my_svn_coderepo
svnadmin create /var/www/svn/my_svn_coderepo
//修改所属组
sudo chown -R apache:apache my_svn_coderepo
创建授权文件:
//10-subversion.conf中配置的路径
//AuthUserFile /var/www/svn/svn-auth //用户、用户组授权文件
//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
给用户和用户组添加授权:
sudo htpasswd -m /var/www/svn/svn-auth user1
sudo htpasswd -m /var/www/svn/svn-auth user2
mkdir -p /var/www/svn/authz
# 添加内容
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 //组具有读写权限
@repo1_trainee=r
2.5 启动httpd服务和svn服务
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo systemctl start svnserve.service
sudo systemctl enable svnserve.service
systemctl 提供服务的管理操作,如:
restart
status
enable
disable
stop
start
2.6 防火墙设置
注意:此步非常关键,如果不设置,那么将提示找不大page,因为http 80端口的流量被refuse了。
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
2.7 Selinux 设置
通常创建仓库是在根路径 /var/www/svn
下创建,这并不会带来访问的问题。但是有时候服务器/var/www/svn
下的空间不够,迫使我们要在其他新的磁盘上创建仓库,然后建立一个链接。如下:
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>
猜测原因是改变路径,建立链接之后,没有访问文件系统的权限了。而关闭selinux就可以不受限制。
关闭Selinux的方法:
1.查看命令:getenforce
2.临时关闭【enforcing—->permissive】
setenforce 0
3.永久关闭【enforcing—->disabled或者permissive—->disabled】
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled;设置后保存,需要重启才能生效。
至此,全部配置已经完成,最终效果如下:访问 http://192.168.1.104/svn/eq/
地址,出现如下:
三、LVM 创建大容量LV给SVN仓库使用
需求场景:有时候一个svn仓库可能非常大,比如10T,而你的服务器磁盘单个容量只有2T或4T,那么此时就需要借助LVM的技术创建动态灵活的分区。
3.1. LVM简介
LVM 是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、 'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。
从上图可知,LVM就是创建一个虚拟的VG卷组,它相当于一个磁盘容器,然后将多个物理卷PV加入到VG,这样VG的容量就变大了。然后再对这个大容量的VG进行逻辑分区,创建1个或多个LV逻辑卷。整个过程就是先融合,再分拆,一来一去,就将原来的物理磁盘分区变为了逻辑卷。并且可以动态的向容器VG中添加和移除PV,以动态的改变整个容器的总容量。
3.2 LVM基本术语
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:
- 物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
- 物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
- 卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
- 逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
- PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
- LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
3.3. 安装lvm
# CentOS 7 安装lvm2
yum install lvm2
3.4. 创建和管理LVM
物理磁盘分区
分区工具:2T以上使用parted工具,2T以下可以使用fdisk工具。这里因为磁盘都是4TB大小,因此采用parted工具进行分区。
parted命令常用选项。
当在命令行输入parted后,进入parted命令的交互模式。输入help会显示帮助信息。下面就简单介绍一下常用的功能
1、Check 简单检查文件系统。建议用其他命令检查文件系统,比如fsck
2、Help 显示帮助信息
3、mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
4、mkfs 创建文件系统。该命令不支持ext3 格式,因此建议不使用,最好是用parted分好区,然后退出parted交互模式,用其他命令进行分区,比如:mkfs.ext3
5、mkpart 创建新分区。
格式:mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE 类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。
fs-type 文件系统类型,主要有fs32,NTFS,ext2,ext3等
start end 分区的起始和结束位置。
6、mkpartfs 建立分区及其文件系统。目前还不支持ext3文件系统,因此不建议使用该功能。最后是分好区后,退出parted,然后用其他命令建立文件系统。
7、print 输出分区信息。该功能有3个选项,
free 显示该盘的所有信息,并显示磁盘剩余空间
number 显示指定的分区的信息
all 显示所有磁盘信息
8、resize 调整指定的分区的大小。目前对ext3格式支持不是很好,所以不建议使用该功能。
9、rescue 恢复不小心删除的分区。如果不小心用parted的rm命令删除了一个分区,那么可以通过rescue功能进行恢复。恢复时需要给出分区的起始和结束的位置。然后parted就会在给定的范围内去寻找,并提示恢复分区。
10、rm 删除分区。命令格式 rm number 。如:rm 3 就是将编号为3的分区删除
11、select 选择设备。当输入parted命令后直接回车进入交互模式是,如果有多块硬盘,需要用select 选择要操作的硬盘。如:select /dev/sdb
12、set 设置标记。更改指定分区编号的标志。标志通常有如下几种:boot hidden raid lvm 等。boot 为引导分区,hidden 为隐藏分区,raid 软raid,lvm 为逻辑分区。如:set 3 boot on 设置分区号3 为启动分区
注意:LVM管理的分区必须是LVM分区类型。对应下面的toggle 1 lvm
设置步骤。
[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 支持大磁盘分区
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 //删除之前的分区
(parted) p
Model: HP MB4000JFEPB (scsi) //注意:此磁盘已经创建了分区表,所以没有调用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
分区名称? []? sdb1 //随便定义一个分区Label名称
文件系统类型? [ext2]? //直接回车
起始点? 0%
结束点? 100% //可以用百分比表示磁盘的最大容量,因为我这里一个物理磁盘只需要一个分区
(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
总结:整个过程就是:
mklabel //创建分区表,输入gpt
mkpart //输入分区label名称,设置分区的容量大小
toggle 1 lvm //设置为LVM分区类型
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 字节,7814037168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 7322DA71-AE1C-4317-AE72-27B5539E2206
# 类型就是Linux LVM
# Start End Size Type Name
1 2048 7814035455 3.7T Linux LVM sdb1
不重启读取分区表信息:
不重启读取分区信息:
[root@localhost ~]# partprobe
分区格式化:
//格式化为ext4文件系统
mkfs.ext4 /dev/sdb1
用pvcreate命令创建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命令创建VG
创建卷组名为svn_repo_vg
,并将物理卷加入卷组。创建完成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命令创建LV
创建完卷组后,就可以创建逻辑卷了(我这里是3块4T的硬盘)。这里我们创建一个逻辑卷,因为想当一个大磁盘来用。
[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)
文件系统标签=
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
第一个数据块=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块磁盘分区格式化、创建物理卷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
文件系统 容量 已用 可用 已用% 挂载点
/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 //进行新的物理磁盘分区,LVM分区 partprobe mkfs.ext4 /dev/newDisk1 //格式化LVM分区 pvcreate /dev/newDisk1 //创建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 //执行重设大小,对于当前正在使用的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分区 1、parted /dev/sdb 2、parted (m for help): p 3、parted (m for help): rm 1 4、parted (m for help): p <--在显示分区情况,发现已经没了 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中的数据容量大小,缩小容量值不应超过剩余空间容量,而且要知道减少LV容量后的新大小。可以通过lvscan来查看LV容量,通过vgdisplay来查看剩余容量。
//lvreduce减小LV容量 lvreduce -L 8TG /dev/svn_repo_vg/svn_logical_volume
3.5 错误显示 关于centos7的LVM出现[unknown]
的PV错误
vgdisplay/lvdisplay/pvdisplay
命令均会提示找不到物理卷设备。
解决:yum install lvm2 安装lvm2
四、FAQ
4.1. SVN Error: Unexpected HTTP status 413 Request Entity Too Large
修改:vim /etc/httpd/conf/httpd.conf
增加如下内容:
LimitXMLRequestBody 0
LimitRequestBody 0
网友评论