目录
# NFS文件存储
关闭防火墙 上下文
(一)基础配置
1.NFS服务安装
[root@localhost ~]# yum install -y nfs-utils
#服务端客户端都要装
#查看是否启动
[root@nfs-server ~]# netstat -anptul | grep 2049
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp6 0 0 :::2049 :::* LISTEN -
[root@nfs-server ~]# netstat -anptul | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 17838/rpcbind
tcp 0 0 192.168.157.168:39998 111.13.18.31:443 TIME_WAIT -
tcp6 0 0 :::111 :::* LISTEN 17838/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 17838/rpcbind
udp6 0 0 :::111 :::* 17838/rpcbind
2.修改配置文件
[root@nfs-server ~]# vim /etc/exports
###默认是空的
/data 192.168.157.0/24(rw,sync,no_root_squash)
共享的目录 ip 权限,写入方式,降级
重载配置文件
重启 或 exportfs -arv
3.重载配置文件
#重启 或 exportfs -arv
[root@nfs-server ~]# mkdir /data
[root@nfs-server ~]# exportfs -arv
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.157.0/24:/data".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
exporting 192.168.157.0/24:/data
4.查看共享目录
#在本地
[root@nfs-server ~]# showmount -e
Export list for nfs-server:
/data 192.168.157.0/24
#不在本地 需要指向服务器ip
[root@web1 ~]# showmount -e 192.168.157.168
Export list for 192.168.157.168:
/data 192.168.157.0/24
5.客户端挂载
#客户端挂载
[root@web1 ~]# mount 192.168.157.168:/data /mnt/
[root@web1 ~]# df -Th
文件系统 类型 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root ext4 69G 2.1G 63G 4% /
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 713M 0 713M 0% /dev/shm
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 285M 5.5M 280M 2% /run
tmpfs tmpfs 713M 0 713M 0% /tmp
/dev/sda2 ext4 974M 174M 733M 20% /boot
/dev/mapper/openeuler-home ext4 125G 24K 119G 1% /home
192.168.157.168:/data nfs4 69G 2.1G 63G 4% /mnt
6.更换共享目录
#需要先将服务端 挂载卸掉
[root@web1 ~]# umount /mnt
[root@web1 ~]# df -Th
文件系统 类型 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root ext4 69G 2.1G 63G 4% /
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 713M 0 713M 0% /dev/shm
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 285M 5.5M 280M 2% /run
tmpfs tmpfs 713M 0 713M 0% /tmp
/dev/sda2 ext4 974M 174M 733M 20% /boot
/dev/mapper/openeuler-home ext4 125G 24K 119G 1% /home
#在/home 下新建共享目录
[root@nfs-server ~]# cd /home
[root@nfs-server home]# mkdir data
[root@nfs-server home]# ls
data lost+found
#修改配置文件
[root@nfs-server home]# vim /etc/exports
/home/data 192.168.157.0/24(rw,sync,no_root_squash)
#重载配置文件
[root@nfs-server home]# exportfs -arv
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.157.0/24:/home/data".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
exporting 192.168.157.0/24:/home/data
#客户端重新挂载
[root@web1 home]# mount 192.168.157.168:/home/data /mnt/
[root@web1 home]# df -Th
文件系统 类型 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root ext4 69G 2.1G 63G 4% /
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 713M 0 713M 0% /dev/shm
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 285M 5.5M 280M 2% /run
tmpfs tmpfs 713M 0 713M 0% /tmp
/dev/sda2 ext4 974M 174M 733M 20% /boot
/dev/mapper/openeuler-home ext4 125G 24K 119G 1% /home
192.168.157.168:/home/data nfs4 125G 0 119G 0% /mnt
7.基础实验
让两台web服务器访问相同内容
#安装nginx
[root@web1 home]# yum install -y nginx
#把共享目录 挂载到/usr/share/nginx/html/
[root@web1 html]# mount 192.168.157.168:/home/data /usr/share/nginx/html/
[root@web1 html]# !d
df -Th
文件系统 类型 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root ext4 69G 2.1G 63G 4% /
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 713M 0 713M 0% /dev/shm
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 285M 5.5M 280M 2% /run
tmpfs tmpfs 713M 0 713M 0% /tmp
/dev/sda2 ext4 974M 174M 733M 20% /boot
/dev/mapper/openeuler-home ext4 125G 24K 119G 1% /home
192.168.157.168:/home/data nfs4 125G 0 119G 0% /usr/share/nginx/html
#启动nginx
[root@web1 html]# systemctl start nginx
#nfs服务端
[root@nfs-server home]# ls
data lost+found
[root@nfs-server home]# cd data
[root@nfs-server data]# vim index.html
cc2505
#web2配置
[root@web2 ~]# showmount -e 192.168.157.168
Export list for 192.168.157.168:
/home/data 192.168.157.0/24
[root@web2 ~]# mount 192.168.157.168:/home/data /usr/share/nginx/html/
[root@web2 ~]# systemctl start nginx
测试
web1
web2
(二)布置lnmp平台
1.php
安装软件
#正常情况应安装以下软件 在上述操作已安装nginx mysql-server
[root@web1 html]# yum install -y nginx mysql-server php php-mysqlnd php-fpm
###
[root@web1 html]# yum install -y php php-mysqlnd php-fpm
php语言 php-mysqlnd连接数据库驱动,php对数据库进行操作 php-fpm 让nginx识别php
[root@web1 html]# rpm -ql php-fpm
#/etc/php-fpm.d
#/etc/php-fpm.d/www.conf
#由于openEuler关于php的配置已经配置好 所有不用改配置文件
#php-fpm 和 nginx 在同一主机
[root@web1 conf.d]# systemctl start php-fpm
[root@web1 conf.d]# systemctl restart nginx
[root@nfs-server data]# vim index.html
<?php
phpinfo();
?>
root@nfs-server data]# mv index.html index.php
[root@nfs-server data]# ls
index.php
[root@web2 ~]# yum install -y php php-mysqlnd php-fpm
[root@web2 ~]# systemctl start php-fpm
[root@web2 ~]# systemctl restart nginx
检测
**php-fpm 和 nginx 不在同一主机** 拓展
[root@web1 php-fpm.d]# vim www.conf
listen = /run/php-fpm/www.sock
#改为
listen = 192.168.157.169:9000
修改
listen.allowed_clients = 127.0.0.1
2.连接MySQL
#nfs 添加
#nfs web1 web2 都 启动mysql
root@nfs-server data]# ls
index.php mysql_conn.php
[root@nfs-server data]# vim mysql_conn.php
<?php
$link = mysqli_connect('localhost', 'root', '');
if ($link) {
echo "connect successful";
} else {
echo "connect fail ";
}
mysqli_close($link);
?>
测试
3.软件实施
#访问http://192.168.157.169/upload
#进入安装界面
#发现权限不够 缺少依赖
#查看php-fpm
[root@web1 php-fpm.d]# ps aux | grep php-fpm
root 45460 0.0 1.9 195744 28644 ? Ss 20:42 0:00 php-fpm: master process (/etc/php-fpm.conf)
apache 45461 0.0 1.3 196296 19612 ? S 20:42 0:00 php-fpm: pool www
apache 45462 0.0 1.3 196296 20300 ? S 20:42 0:00 php-fpm: pool www
apache 45463 0.0 1.6 270292 24568 ? S 20:42 0:00 php-fpm: pool www
apache 45464 0.0 1.2 196296 18816 ? S 20:42 0:00 php-fpm: pool www
apache 45465 0.0 1.6 270292 23604 ? S 20:42 0:00 php-fpm: pool www
apache 68624 0.0 0.9 196296 14472 ? S 21:52 0:00 php-fpm: pool www
root 69603 0.0 0.5 21988 8104 pts/0 S+ 21:55 0:00 grep --color=auto php-fpm
#查看nginx
[root@web1 php-fpm.d]# ps aux | grep nginx
root 62712 0.0 0.2 30404 3256 ? Ss 21:34 0:00 nginx: master process /usr/sbin/nginx
nginx 62713 0.0 0.4 31416 7228 ? S 21:34 0:00 nginx: worker process
nginx 62714 0.0 0.4 31416 7152 ? S 21:34 0:00 nginx: worker process
root 70146 0.0 0.5 21988 7920 pts/0 S+ 21:57 0:00 grep --color=auto nginx
#选择用哪个账户
#测试之后发现用apache账户
#在nfs上安装 php-fpm 但是不用启动
[root@nfs-server data]# yum install -y php-fpm
[root@nfs-server data]# cd upload/
#更改属主
[root@nfs-server upload]# chown apache ./ -R
[root@nfs-server upload]# ls -l
总计 108
-rw-r--r--. 1 apache root 2869 2024年 5月20日 admin.php
drwxr-xr-x. 10 apache root 4096 2024年 5月20日 api
-rw-r--r--. 1 apache root 727 2024年 5月20日 api.php
drwxr-xr-x. 2 apache root 4096 2024年 5月20日 archiver
drwxr-xr-x. 2 apache root 4096 2024年 5月20日 config
-rw-r--r--. 1 apache root 1040 2024年 5月20日 connect.php
-rw-r--r--. 1 apache root 106 2024年 5月20日 crossdomain.xml
drwxr-xr-x. 12 apache root 4096 2024年 5月20日 data
-rw-r--r--. 1 apache root 5558 2024年 5月20日 favicon.ico
-rw-r--r--. 1 apache root 2357 2024年 5月20日 forum.php
-rw-r--r--. 1 apache root 906 2024年 5月20日 group.php
-rw-r--r--. 1 apache root 1325 2024年 5月20日 home.php
-rw-r--r--. 1 apache root 6920 2024年 5月20日 index.php
drwxr-xr-x. 5 apache root 4096 2024年 5月20日 install
-rw-r--r--. 1 apache root 998 2024年 5月20日 member.php
-rw-r--r--. 1 apache root 2410 2024年 5月20日 misc.php
-rw-r--r--. 1 apache root 1790 2024年 5月20日 plugin.php
-rw-r--r--. 1 apache root 1086 2024年 5月20日 portal.php
-rw-r--r--. 1 apache root 639 2024年 5月20日 robots.txt
-rw-r--r--. 1 apache root 1755 2024年 5月20日 search.php
drwxr-xr-x. 10 apache root 4096 2024年 5月20日 source
drwxr-xr-x. 7 apache root 4096 2024年 5月20日 static
drwxr-xr-x. 3 apache root 4096 2024年 5月20日 template
drwxr-xr-x. 8 apache root 4096 2024年 5月20日 uc_client
drwxr-xr-x. 13 apache root 4096 2024年 5月20日 uc_server
#然后就可以安装了
软件安装配置
#web1上 新建 给软件连接用的账户
[root@web1 php-fpm.d]# mysql
mysql> create user ultrax@127.0.0.1 identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on ultrax.* to ultrax@127.0.0.1;
Query OK, 0 rows affected (0.01 sec)
#web2上 新建 给软件连接用的账户
[root@web2 php-fpm.d]# mysql
mysql> create user ultrax@127.0.0.1 identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on ultrax.* to ultrax@127.0.0.1;
Query OK, 0 rows affected (0.01 sec)
#安装软件
#WEB2
[root@web1 ~]# mysqldump --databases ultrax > ultrax.sql
[root@web1 ~]# scp ultrax.sql 192.168.157.170:/root
The authenticity of host '192.168.157.170 (192.168.157.170)' can't be established.
ED25519 key fingerprint is SHA256:1+6pwJp4PGRy3pTuY4/lM2+SKaA3eNsCqwvp/0Dd9BQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.157.170' (ED25519) to the list of known hosts.
Authorized users only. All activities may be monitored and reported.
root@192.168.157.170's password:
Permission denied, please try again.
root@192.168.157.170's password:
ultrax.sql
#
[root@web2 ~]# mysql < ultrax.sql
(三)iSCSI布置
1.识别磁盘
#添加两块磁盘
#热识别
[root@target ~]# for i in `ls /sys/class/scsi_host`;do echo "- - -" >/sys/class/scsi_host/$i/scan;done
[root@target ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 199G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 2G 0 lvm [SWAP]
└─openeuler-home 253:2 0 127G 0 lvm /home
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
#安装
[root@target ~]# yum install -y scsi-target-utils
#新建target
[root@target ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.20250710.com.jx.www:sda
#查看
[root@target ~]# tgtadm -o show -m target
Target 1: iqn.20250710.com.jx.www:sda
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:
#查看
[root@target ~]# tgt-admin -s
Target 1: iqn.20250710.com.jx.www:sda
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:
#生成lun
[root@target ~]# tgtadm -o new -m logicalunit -t 1 -l 1 -b /dev/sda
#删除lun
[root@target ~]# tgtadm -o delete -m logicalunit -t 1 -l 1
#新建
#先建target 在建lun
[root@target ~]#tgtadm -L iscsi -o new -m target -t 1 -T iqn.20250710.com.jx.www:sda
[root@target ~]# tgtadm -o new -m logicalunit -t 1 -l 1 -b /dev/sda
#查看
[root@target ~]# tgt-admin -s
Target 1: iqn.20250710.com.jx.www:sda
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 214748 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/sda
Backing store flags:
Account information:
ACL information:
##配置访问ACL
[root@target ~]# tgtadm -L iscsi -m target -o bind -t 1 -I ALL
##保存配置
[root@target ~]# tgt-admin --dump >> /etc/tgt/targets.conf
2.配置另一台
#新建target
[root@target ~]# tgtadm -L iscsi -o new -m target -t 2 -T iqn.20250710.com.jx.www:sdb
#新建lun
[root@target ~]# tgtadm -o new -m logicalunit -t 2 -l 1 -b /dev/sdb
##配置访问ACL
[root@target ~]# tgtadm -L iscsi -m target -o bind -t 2 -I ALL
##保存配置
[root@target ~]# tgt-admin --dump > /etc/tgt/targets.conf
3.Windows连接
打开iSCSI程序
计算机 右键管理 磁盘管理 重新格式化
4.linux客户端连接
#先安装
[root@web1 ~]# yum install -y scsi-initiator-utils
[root@web1 ~]# systemctl start iscsid
#识别
[root@web1 ~]# iscsiadm -m discoverydb -t sendtargets -p 192.168.157.168:3260 -D
192.168.157.168:3260,1 iqn.20250710.com.jx.www:sda
192.168.157.168:3260,1 iqn.20250710.com.jx.www:sdb
[root@web1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 199G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 2G 0 lvm [SWAP]
└─openeuler-home 253:2 0 127G 0 lvm /home
sdb 8:16 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
#分区
[root@web1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.39.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
Created a new DOS (MBR) disklabel with disk identifier 0x224616b8.
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-41943039, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039):
创建了一个新分区 1,类型为“Linux”,大小为 20 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
#格式化
[root@web1 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.47.0 (5-Feb-2023)
创建含有 5242624 个块(每块 4k)和 1310720 个 inode 的文件系统
文件系统 UUID:cd9b36d3-1849-4e5f-b754-9df79dc68d71
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
正在分配组表:完成
正在写入 inode表:完成
创建日志(32768 个块):完成
写入超级块和文件系统账户统计信息:已完成
#挂载
[root@web1 ~]# mount /dev/sddb1 /mnt/
mount: /mnt: 特殊设备 /dev/sddb1 不存在.
dmesg(1) may have more information after failed mount system call.
[root@web1 ~]# mount /dev/sdb1 /mnt/
[root@web1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 199G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 2G 0 lvm [SWAP]
└─openeuler-home 253:2 0 127G 0 lvm /home
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /mnt
sr0 11:0 1 1024M 0 rom
5.服务端测试
分区
[root@target ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.39.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
该磁盘目前正在使用 - 不建议您重新分区。
推荐您卸载此磁盘上所有的文件系统,并关闭(swapoff)上面的交换分区。
命令(输入 m 获取帮助):q
#这个被Windows挂载 不能再用了
#查看另一块 挂载在Linux上的 发现已经分区
[root@target ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.39.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x224616b8
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 41943039 41940992 20G 83 Linux
命令(输入 m 获取帮助):
#直接挂载
root@target ~]# mount /dev/sdb1 /mnt/
[root@target ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 199G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 2G 0 lvm [SWAP]
└─openeuler-home 253:2 0 127G 0 lvm /home
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /mnt
sdc 8:32 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
#linux 不能与Windows 共用一块
#两个linux可以同时挂载一个,但是不能实时同步 需卸载重挂