Proxmox VE pve添加nfs/smb/iscsi/NTFS储存
liebian365 2024-11-20 18:21 26 浏览 0 评论
PVE识别储存,无非就是通过lvm,和目录。iscsi磁盘,挂载系统之后,创建lvm,然后pve面板添加就行,或者直接创建分区,然后挂载到一个目录下,再去pve面板添加这个目录就ok。同理smb/nfs,也就是挂载成一个目录!然后添加
目录
- 总起!
- 一:配置iscsi
- 1.1查看iqn
- 1.2 在iscsi服务器上,映射磁盘
- 1.3在pve里添加iscsi磁盘
- 1.4,创建iscsi磁盘分区
- 1.5 使用LVM挂载iscsi
- 1.6,PVE面板添加LVM
- 1.7,使用EXT4挂载iscsi。
- 1.8。在pve中使用EXT4目录
- 1.9使用NTFS挂载磁盘(推荐)
- 实践操作
- 1、创建iscsi磁盘,并且进行分区操作。
- 2、pve连接iscsi(参照1.3)
- 3、PVE里挂载NTFS磁盘
- 4、在pve里挂载目录
- 5、进行扩容操作
- iscsi完美收工
- 二:配置nfs
- 1、创建nfs服务
- 2、进PVE面板挂载nfs
- 三 pve挂载smb教程
- 1、创建smb账号.
- 2、创建共享文件夹
- 3、在PVE里添加smb
- 全部完成。
一:配置iscsi
1.1查看iqn
在shell里,输入
cat /etc/iscsi/initiatorname.iscsi
即可看到iqn。比如我这里的是 iqn.1993-08.org.debian:01:ace95f49189b
PVE基于debian定制开发,很多命令与Ubuntu一样。
查找iSCSItargets主机的targetname:
iscsiadm --mode discovery --type sendtargets --portal 192.168.1.1
注:假设target主机ip为192.168.1.1
一、安装iSCSI 客户端
apt-getinstall open-iscsi
二、修改iscsid.conf配置文件(这样就能开机启动!)
vim/etc/iscsi/iscsid.conf
设置node.starup为automatic:
node.startup = automatic
三、查找iSCSItargets主机的targetname
iscsiadm --mode discovery --type sendtargets --portal 192.168.1.1
注:假设target主机ip为192.168.1.1
四、登录iscsi
iscsiadm --mode node --targetname iqn.target-2.aa56d02bb5--portal 192.168.1.1:3260 --login
注:假设target name为iqn.target-2.aa56d02bb5,3260为iSCSI服务默认端口
五、查看iscsitargets映射过来的卷
fdisk -l
或用dmesg 或tail-f /var/log/messages 命令查看
六、创建分区
fdisk /dev/sdb
按m可以看菜单,一般就直接n根据需要新建分区
注:fdisk一般只用来建立MBR的分区表,所以一般只用于2T以下的分区
七、格式化分区
mkfs.ext4 /dev/sdb1
现在一般用ext4的比较多了
八、挂载文件系统
mkdir /mnt/iscsi
mount /dev/sdb1 /mnt/iscsi
但是这样没法开机挂载,下面有一个挂载方法,但是我实际使用下来,不行,测试了一下,发现在运行rc.local的时候,iscsi都还没有挂载上去, 所以写在分区表里面是不行的,这个后面解决,先把挂载方法记录一下:
设置开机自动加载文件系统
在/etc/fstab中添加
/dev/sdb1 /data ext4 _netdev 0 0
但是,Linux系统重启后,磁盘设备的名称可能会发生飘移,从而引起文件系统不能挂载上来或者不能正确挂载,
使用UUID的方式进行挂载可以解决这个问题
命令tune2fs -l /dev/sdb可以查到文件系统的UUID
在/etc/fstab中添加
UUID=xxxxxxx /data ext4 _netdev 0 0 替换掉原来的那行
九、注销iSCSIinitiator登录
不需要时可以注销iSCSI initiator登录,先umount文件系统,再把第四步命令的login参数改成logout执行即可:
umount /mnt/iscsi
iscsiadm --mode node --targetname iqn.target-2.aa56d02bb5--portal 192.168.1.1:3260 --logout
十、删除指定Target
用logout只是暂时登出,发现的target信息会保存在数据库中,下次重启iscsi服务时(service iscsi restart),仍会找回该Target卷。如果想从数据库中删除该Target,需用以下命令:
查询数据库中Target内容:
iscsiadm -m node
删除指定的Target:
iscsiadm --mode node -o delete –targetname iqn.target-2.aa56d02bb5--portal 192.168.1.1:3260
因为直接挂载不行,所以就写个测试脚本,看看是不是脚本没有执行;这样也能知道几个文件的执行顺序,分别把脚本写在/etc/bash.bashrc /etc/rc.local /etc/init.d/rc.local
发现/etc/init.d/rc.local在ubuntu不执行。
#/bin/echo "by /etc/bash.bashrc ">> /root/tmp
#/bin/date >> /root/tmp
#/bin/ls /dev/sd* >> /root/tmp
#/bin/echo "======E N D=====">> /root/tmp
因为直接写在分区表,包括rc.local都不行,于是我就只能直接写在/etc/bash.bashrc里面
#/root/ds.sh
#: << End
#! /bin/bash
chk=$(du -s /mnt/iscsi |awk '{print $1}')
#空文件的话,只有du出来只有8
#echo $chk
des=20
#ch2=2
if [ $chk -lt $des ]
#如果小于20,说明没有挂载,就直接挂载
then #if iscsi is not mount then mount
mount /dev/sdg /mnt/iscsi
echo $?
echo "mount success !"
else
echo "Already mount !"
fi
#End
1.2 在iscsi服务器上,映射磁盘
每种服务器都不一样,我这里用的server2016,如果用专有的存储服务器,直接进控制台设置就行.
2020.4.20补充:最好不使用chap映射,如果要使用chap,只能在shell里挂载,不能使用GUI-web挂载。
1.3在pve里添加iscsi磁盘
在服务端设置好了,就可以在pve里设置。
选中【数据中心】——【储存】——【添加iscsi】
这里有3个值必须填写
ID: ==>就是这个磁盘的id,随意填写,不过需要字母portal: ==> iscsi服务器的地址target: ==>在输入以上2个信息后,iscsi会自动搜索服务器存在的target,这里选择自己需要的target节点:选择使用刚才查找iqn的节点直接使用LUN 不要勾选!lun就是直接作为虚拟机磁盘使用
填好之后,点击添加,即可看到储存里有个iscsi了,但是不能用
1.4,创建iscsi磁盘分区
在挂载iscsi的节点shell里
输入
fdisk -l
可以看到很多磁盘,找到一个新的磁盘
这里开始新建磁盘
fdisk /dev/sdc
1.5 使用LVM挂载iscsi
可以不使用lvm,使用普通的分区,等下介绍,看1.7。LVM好扩容,但是不支持
具体的细节如下。
Welcome to fdisk(util-linux 2.25.2).
Changes will remainin memory only, until you decide to write them.
Be careful beforeusing the write command.
Command (m forhelp):g (建立GPT分区表)
…………
Command (m forhelp):n (建立一个新的分区,输入分区号、起始结束扇区等)
…………
Command (m forhelp):t (改变分区类型31)
Selected partition1
Partition type(type L to list all types):31 (分区1的类型改变为Linux LVM)
Command(m for help): w (写入磁盘并退出fdisk)
再次在终端输入fdisk -l,可以查看磁盘已经分好区了
然后创建lvm
pvcreate /dev/sdc1 创建pv
vgcreate iscsi1 /dev/sdc1 创建一个名为iscsi1的vg
1.6,PVE面板添加LVM
找到数据中心-储存,点添加lvm
这里ID,自己填,方便记忆,卷组填 选择刚才创建的pv iscsi1。勾选共享的,然后添加。在pve节点中,就可以看到这个lvm了,内容也有了
1.7,使用EXT4挂载iscsi。
注1:原理就是挂载iscsi磁盘到一个文件夹下,然后通过pve挂载目录,但是我发现有一个缺陷就是不能开机挂载。可能我技术不行,lvm到是可以开机自动挂载。
注2:按照我发表的另一篇文章 Proxmox VE磁盘/目录详解,并且安装第二个硬盘,修改ISO/虚拟机存放位置(挂载第二张磁盘)的操作,理论上也同样适用于iscsi。就是挂载iscsi磁盘之后,进入pve节点——磁盘,可以看到磁盘,并且初始化,但是我这篇文章在撰稿时,识别不了。百思不得其解,于是乎有了下面的手动挂载磁盘。导致,开机不能自动挂载。坑!
我这里又分配了一个20G的硬盘,来做实验
首先还是新建分区
fdisk /dev/sde
具体过程如下
root@pve:~# fdisk /dev/sde
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2c01a8e9.
Command (m for help): g (输入g,新建gpt分区表)
Created a new GPT disklabel (GUID: F386FD07-EE67-7B4F-9745-F79C23610CFE).
Command (m for help): n (输入n,新建分区)
Partition number (1-128, default 1): //回车
First sector (2048-41943006, default 2048): //回车
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943006, default 41943006): //回车
Created a new partition 1 of type 'Linux filesystem' and of size 20 GiB.
Command (m for help): w (输入w 保存)
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
再次在终端输入fdisk -l 可以看到磁盘已经分区了
接着 格式化分区,然后挂载到目录
mkfs.ext4 /dev/sde1
mkdir /iscsi2 //创建iscsi2目录,用来挂载分区
mount /dev/sde1 /iscsi2 //挂载/dev/sde1 到iscsi2
再输入 df -h 查看是否挂载成功,出现在列表里,成功挂载。
1.8。在pve中使用EXT4目录
依旧在数据中心,储存,这里选择添加目录
这里id,自己填写目录 刚才挂载的那个路径内容 自己按需添加共享 开启
回到节点页,可以看到已经添加进去了。
测试一下
在可以看到通过目录方式挂载的lvm,已经可以正常识别了
通过lvm挂载的iscsi也可以看到。
1.9使用NTFS挂载磁盘(推荐)
上面说到了LVM/EXT4,都是linux常用的。如果要进行扩容,缩减就必须技术人员技术扎实咯。介于我这半吊子技术,我还懒得写lvm、ext扩容教程,于是乎,有了一个非常nb的想法。
linux下的磁盘扩容很难,那我就在windows下呗。gui操作,多简单。ext和lvm在windows下操作不容易,所以干脆就用NTFS吧!
NTFS完美的解决了新手使用linux的问题!
使用ntfs优点1、通用性强。ntfs可以在windows下识别,可以在linux下识别。2、数据修改和恢复简单。ntfs直接在windows识别,直接操作,不讲道理,如果使用ext合适,还得下专业的软件,比如dg分区,还收费!3、对分区的操作十分简单。把iscsi挂载到windows下,直接通过windows的磁盘管理就可以进行分区操作,比如扩容,缩减空间。缺点:不能开机挂载,可能我技术垃圾。
实现原理把iscsi磁盘挂载到windows下,新建分区。然后挂载到pve下面就ok
实践操作
1、创建iscsi磁盘,并且进行分区操作。
(我这里用的server2016。使用存储服务器的话,请在存储服务器上操作)
创建了一个5GB的iscsi的磁盘。
因为windows的iscsi利用的是vhdx,所以我这里不需要额外的去找个windows来挂载,直接禁用这个分配(不禁用的话,是无法编辑vhdx的),然后去编辑vhdx就行
已经成功装载,只是没分区信息,现在去磁盘管理 ,进行初始化,分区。
这里初始化
这里初始化成gpt
再格式化为ntfs
接着在磁盘里,新建一个文件
脱离vhdx,然后再启用iscsi
分离vhd
启用iscsi
2、pve连接iscsi(参照1.3)
成功登陆iscsi
3、PVE里挂载NTFS磁盘
先安装ntfs-3g
apt update
apt-get -y install ntfs-3g
有点慢,我没换源,算了换个源,写个换源教程先
proxmox ve换个源教程 https://foxi.buduanwang.vip/linux/298.html/
安装成功
终端输入fdisk- l 然后找到5G的磁盘,挂载到/ntfs
fdisk -l //查看5G磁盘
mkdir /ntfs2 //创建挂载点
mount /dev/sdd2 /ntfs //挂载操作
看到5G磁盘分区为/dev/sdd2
通过df -h 可以看到挂载成功,同时进入磁盘,发现还是有一个刚才新家的文件,自己还新建一个inedx.html
4、在pve里挂载目录
5、进行扩容操作
1、对iscsi磁盘进行操作,必须取消挂载,登出节点
卸载挂载点
umount /dev/sdd2
已经卸载
登出iscsi
root@pve:~# iscsiadm -m discovery -t st -p 10.13.14.205 //查看刚才挂载的node
10.13.14.205:3260,1 iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target
root@pve:~# iscsiadm -m node -T iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target -p 10.13.14.205 -u //临时登出node
Logging out of session [sid: 1, target: iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target, portal: 10.13.14.205,3260]
Logout of [sid: 1, target: iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target, portal: 10.13.14.205,3260] successful. //登出成功
iscsiadm -m discovery -t st -p iscsi_ip:port //查看node iqn命令 不加port就是默认3260
iscsiadm -m node -T node_iqn -p iscsi_ip:port -u //临时登出node命令
2、回到iscsi服务器,对磁盘扩容。
这里进行扩展,扩展成40G
禁用分配
装载磁盘进行扩容
启用分配
3、重新挂载iscsi
登录iscsi
iscsiadm -m node -T iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target -p 10.13.14.205 -l
iscsiadm -m node -T node_iqn -p iscsi_ip:port -l //登入命令
我在进行这步操作之后,发现找不到扩容之后的iscsi磁盘,删除原来的磁盘分配,重启iscsi服务器,再分配磁盘就行了。使用存储服务器的可以忽略
已经有了,再挂载一下
mount /dev/sdd2 /ntfs
iscsi完美收工
二:配置nfs
nfs很简单,作为文件储存,不涉及分区块,就不需要执行分区操作,挂载就能用,十分高效和快捷。而且可以在server上直接对文件进行操作。维护/备份十分方便
这里还是使用的是server2016创建的nfs服务
1、创建nfs服务
进入文件和储存服务,找到共享,然后添加匿名的共享,因为pve面板上没有用户验证,只能通过匿名访问
2、进PVE面板挂载nfs
还是进入数据中心——储存——添加nfs
依旧像ISCSI那样,直接输入ID(自定义),服务器IP,export会自动识别出来。内容就需要根据自己的意思选中咯。还有勾选高级选项,会出现nfs版本,这里要对应server,server2016默认是4.1,所以我选择了4.1
需要注意的是,在集群环境中,需要nfs做客户端映射的,就需要在节点选择nfs映射的节点。我这里是未映射就能访问,所以我这集群中,2个pve都能挂载,我就没选了。
哦豁,出错了
这里提示权限问题,应该是server2016权限问题,我把这里设置为允许未映射的用户访问。
然后就已经成功添加/访问。
在server2016里成功的看到了文件们
三 pve挂载smb教程
smb这里需要详细说一下服务器端的配置。我这里使用的是server2016。linux的smb服务端我不讲。
smb的难点是权限设置。
1、创建smb账号.
在计算机管理里面,找到本地用户和组,新建一个smb账号
2、创建共享文件夹
直接创建一个文件夹,然后,点击高级共享
勾选共享此文件夹,点击权限,添加刚才创建的smb用户,并把权限设置成完全控制
3、
3、在PVE里添加smb
点击数据中心,储存,添加 CIFS
ID自己定义服务器smb服务器用户名和密码就是刚才创建的账号密码share:这里会自动出现文件夹,选择刚才创建的文件夹节点:按需填写内容:按需添加
完成!
全部完成。
更多pve教程请看 https://foxi.buduanwang.vip/pve/
佛西 2020年2月3日 LEAVE A COMMENTON PROXMOX VE PVE添加NFS/SMB/ISCSI/NTFS储存
相关推荐
- go语言也可以做gui,go-fltk让你做出c++级别的桌面应用
-
大家都知道go语言生态并没有什么好的gui开发框架,“能用”的一个手就能数的清,好用的就更是少之又少。今天为大家推荐一个go的gui库go-fltk。它是通过cgo调用了c++的fltk库,性能非常高...
- 旧电脑的首选系统:TinyCore!体积小+精简+速度极快,你敢安装吗
-
这几天老毛桃整理了几个微型Linux发行版,准备分享给大家。要知道可供我们日常使用的Linux发行版有很多,但其中的一些发行版经常会被大家忽视。其实这些微型Linux发行版是一种非常强大的创新:在一台...
- codeblocks和VS2019下的fltk使用中文
-
在fltk中用中文有点问题。英文是这样。中文就成这个样子了。我查了查资料,说用UTF-8编码就行了。edit->Fileencoding->UTF-8然后保存文件。看下下边的编码指示确...
- FLTK(Fast Light Toolkit)一个轻量级的跨平台Python GUI库
-
FLTK(FastLightToolkit)是一个轻量级的跨平台GUI库,特别适用于开发需要快速、高效且简单界面的应用程序。本文将介绍Python中的FLTK库,包括其特性、应用场景以及如何通过代...
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
-
IT之家1月29日消息,去年6月份,中科院大学教授、中科院计算所研究员包云岗,发布了开源高性能RISC-V处理器核心——香山。近日,包云岗在社交平台晒出图片,香山芯片已流片,回片后...
- Linux 5.13内核有望合并对苹果M1处理器支持的初步代码
-
预计Linux5.13将初步支持苹果SiliconM1处理器,不过完整的支持工作可能还需要几年时间才能完全完成。虽然Linux已经可以在苹果SiliconM1上运行,但这需要通过一系列的补丁才能...
- Ubuntu系统下COM口测试教程(ubuntu port)
-
1、在待测试的板上下载minicom,下载minicom有两种方法:方法一:在Ubuntu软件中心里面搜索下载方法二:按“Ctrl+Alt+T”打开终端,打开终端后输入“sudosu”回车;在下...
- 湖北嵌入式软件工程师培训怎么选,让自己脱颖而出
-
很多年轻人毕业即失业、面试总是不如意、薪酬不满意、在家躺平。“就业难”该如何应对,参加培训是否能改变自己的职业走向,在湖北,有哪些嵌入式软件工程师培训怎么选值得推荐?粤嵌科技在嵌入式培训领域有十几年经...
- 新阁上位机开发---10年工程师的Modbus总结
-
前言我算了一下,今年是我跟Modbus相识的第10年,从最开始的简单应用到协议了解,从协议开发到协议讲解,这个陪伴了10年的协议,它一直没变,变的只是我对它的理解和认识。我一直认为Modbus协议的存...
- 创建你的第一个可运行的嵌入式Linux系统-5
-
@ZHangZMo在MicrochipBuildroot中配置QT5选择Graphic配置文件增加QT5的配置修改根文件系统支持QT5修改output/target/etc/profile配置文件...
- 如何在Linux下给zigbee CC2530实现上位机
-
0、前言网友提问如下:粉丝提问项目框架汇总下这个网友的问题,其实就是实现一个网关程序,内容分为几块:下位机,通过串口与上位机相连;下位机要能够接收上位机下发的命令,并解析这些命令;下位机能够根据这些命...
- Python实现串口助手 - 03串口功能实现
-
串口调试助手是最核心的当然是串口数据收发与显示的功能,pzh-py-com借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在pzh-py-com发挥功能的。一、...
- 为什么选择UART(串口)作为调试接口,而不是I2C、SPI等其他接口
-
UART(通用异步收发传输器)通常被选作调试接口有以下几个原因:简单性:协议简单:UART的协议非常简单,只需设置波特率、数据位、停止位和校验位就可以进行通信。相比之下,I2C和SPI需要处理更多的通...
- 同一个类,不同代码,Qt 串口类QSerialPort 与各种外设通讯处理
-
串口通讯在各种外设通讯中是常见接口,因为各种嵌入式CPU中串口标配,工业控制中如果不够还通过各种串口芯片进行扩展。比如spi接口的W25Q128FV.对于软件而言,因为驱动接口固定,软件也相对好写,因...
- 嵌入式linux为什么可以通过PC上的串口去执行命令?
-
1、uboot(负责初始化基本硬bai件,如串口,网卡,usb口等,然du后引导系统zhi运行)2、linux系统(真正的操作系统)3、你的应用程序(基于操作系统的软件应用)当你开发板上电时,u...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- go语言也可以做gui,go-fltk让你做出c++级别的桌面应用
- 旧电脑的首选系统:TinyCore!体积小+精简+速度极快,你敢安装吗
- codeblocks和VS2019下的fltk使用中文
- FLTK(Fast Light Toolkit)一个轻量级的跨平台Python GUI库
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
- Linux 5.13内核有望合并对苹果M1处理器支持的初步代码
- Ubuntu系统下COM口测试教程(ubuntu port)
- 湖北嵌入式软件工程师培训怎么选,让自己脱颖而出
- 新阁上位机开发---10年工程师的Modbus总结
- 创建你的第一个可运行的嵌入式Linux系统-5
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)