如何使用NFS和NAS解决虚拟服务器存储问题?

如何使用NFS和NAS解决虚拟服务器存储问题?,第1张

然而,这样的灵活性有一个条件:物理机能够看到所有虚拟磁盘镜像。这通常会导致存储网络成为一个使用网络文件系统(NFS)和虚拟网络附属存储(NAS)集群的开放网络。
在传统基于块的存储中,如iSCSI和光纤通道存储区域网络(FC SAN),这意味着我们必须能够分配和 *** 作逻辑单元号(LUN),以便在迁移虚拟机时可以迅速重新分配LUN给其它物理机。这个 *** 作不仅是在最初部署时很难执行,随着环境越来越大和复杂,它也会很难执行。要为每个虚拟机分配一个LUN,然后还要能够迅速地将它重新分配给其它物理主机,这对IT人士来说已然是一个越来越严重的问题。
在越来越多的环境里,IT管理员都开始使用更大的LUN来承载多个虚拟机。尽管这可以减轻分配多个LUN给多个虚拟机的重担,但无法解决分区和LUN增长的问题。
NFS解决方案
现在,VMware支持通过NFS启动部署虚拟机。通过可启动的NFS加载(mount)部署虚拟机是解决这个问题的一个理想方法,而且也被越来越广泛地接受。
NFS是一个客户端或服务器系统,允许用户跨网络访问文件,并能够像 *** 作本地文件目录一样 *** 作这些远程文件。它是通过输出(exporting)和载入(mounting)两个过程完成的。输出过程是指NFS服务器向远程客户端提供文件访问的过程;载入过程是指文件系统对 *** 作系统和用户变为可用的过程。NFS主要用于Unix-to-Unix文件共享,即使你的所有虚拟机都是基于Windows的,你也可以选用NFS。尽管Windows无法引导NFS,但VMware将NFS建立在它的磁盘虚拟层,所以Windows无需引导NFS。
NFS工作站很容易创建和 *** 作。每个物理服务器都能看到所有的虚拟磁盘镜像,而且VMotion等功能也更加容易 *** 作。与iSCSI或FC SAN中的每个VMDK创建一个LUN不同,你可以在一个NFS卷中共置多个VMDK(VMware Virtual Disk)文件。因为VMDK只是文件,而不是真正的磁盘。为什么使用NFS NFS让存储和VMware管理员的工作变得容易得多,而且在很多VMware环境下都不会有任何性能损失。除了一些例外的存储厂商提供虚拟化解决方案以外,LUN管理对存储和VMware管理员来说都很具有挑战性。而有了NFS执行,与单个文件系统的交互让VMware镜像供应更加容易。
访问控制通过内置NFS安全性被启用后,可以向一组VMware管理员提供NFS文件系统。有了NFS,就不需要微 *** 作每一个LUN了。例如,VMware镜像在文件夹中可以根据应用类型进行分组,而且可以同时提供给一系列应用使用。
此外,访问路径是基于传统的以太网,这不仅节省了成本,也更加易于进行故障检修。因为,大多数企业对于IP管理的了解要远远多于对FC管理的了解。
NFS有一个优点就是访问简易。所有ESX服务器都可以连接到载入点(mount point),这使得VMotion的使用更加容易。在FC部署中,每个ESX服务器都必须能够看到所有其它ESX服务器的LUN,这很不利于配置和管理。NFS是一项共享技术,所有共享访问都是内置的。
NFS的另一优势在于数据保护方面。尽管通过NFS提供的VMware镜像无法使用VMware VCB,但Unix或Linux主机可以载入这些镜像来进行备份。利用支持NDMP的备份软件可以备份这些镜像。通过Linux主机的方法可以访问VMware镜像,而且可以通过这种方法可以载入快照和备份卷。此外,你还可以综合利用NFS主机的复制工具保障业务持续性和灾难恢复,而不用购买VMware专门的复制工具。
说得直白一点,NFS不是唯一的协议,它也有不太适合的时候。例如,Microsoft Cluster Service必须有成组存取(block access),而且有些情况下就需要光纤通道。iSCSI有一些很独特的功能,其中一个是它能够直接分配一个LUN给一个子 *** 作系统,而不用通过VMware磁盘虚拟层。这些独特的功能可以快速地将特定的LUN转移出VMware环境。
这个执行需要的不仅仅是一个标准的文件服务器或NAS,因为除了保存用户数据以外,它还是架构的一个关键部分。
利用虚拟NAS集群解决I/O问题
通过NAS集群虚拟化可以缓解某些物理存储相关问题,如I/O限制。
随着负荷的不断增加,传统的NAS无法有效地扩展升级。部署多个物理服务器会迅速加重I/O带宽的负担,这样的负荷比在多数文件服务器环境中的负荷要大得多。要减轻I/O带宽负担,就必须部署更多的NAS,而这又会导致NAS蔓延。
这使得我们必须在满足额外的NAS系统需求以解决文件服务需求的同时,还要让这些NAS系统必须能处理虚拟服务器环境不断变化的I/O需求。有了单独的NAS head,VMotion就很难适用了,唯一的其它选择是购买更大的单一的NAS head。在VMware环境下,这样的升级不是因为容量限制而进行的,而是为了提供更高的性能而升级。
下面,我们说说虚拟NAS集群。一个虚拟NAS集群代表着整个ESX环境的一个NAS对象,即使这个对象是多个NAS head。一个虚拟NAS集群是一系列NAS节点,这些节点是作为一个整体被管理的。性能或容量的升级就成为相互独立的事了,I/O性能升级只是连接更多的节点到集群,而容量升级则是连接更多的磁盘,互不影响。
此外,虚拟NAS集群还可以为环境提供冗余。如果集群的其中一个节点出错,该节点的文件系统会自动转向集群中的其它节点。这个功能可以保障数据访问不受中断,对于虚拟服务器环境非常重要。因为,虚拟服务器环境下的一个错误可能会导致几十个虚拟机受到严重影响,多层冗余对于这样的环境就显得尤为重要。
Global Files System
将虚拟服务器从一台物理机迁移到另一台物理机是一项势在必行的工作,它可以给数据中心带来很大的灵活性。而数据中心的灵活性也正是客户所寻求的。相关虚拟磁盘的迁移,尤其是从一个阵列到另一阵列或一个NAS head到另一NAS head的迁移,并不是不可能的任务,但是会非常耗费时间,并且会中断服务。
而在虚拟NAS集群环境下,这就是一件非常简单的工作,而且不会造成服务中断。这进一步提高了虚拟环境的灵活性。例如,如果某台物理机中的好几个虚拟机存在I/O带宽需求高峰期,那么你可以将其它虚拟机磁盘镜像移开它们所在的节点来应对I/O高峰期。这个功能还可以用于虚拟NAS集群中的标准文件系统,因为它们可以根据需求进行重新分配。
虚拟NAS和FC
在VMware近期的白皮书中,基于FC的块I/O仍是一个尚未成熟的I/O性能领导者。尽管有些NAS供应商会对这些结果存在争议,但这并不影响我们对这二者的利用。
首先,不到万不得已不要使用FC。现在市场上有两种不同的产品。第一种是NAS供应商(如Network Appliance)为他们的NAS head提供的FC和iSCSI服务。NAS head必须在NAS文件系统中创建一个封装的FC LUN。第二种是EMC和OnStor等公司提供的网关(Gateway)解决方案,这些解决方案允许本地FC访问存储系统。在EMC的解决方案中,这当然是一个通向Clarriion阵列的网关。OnStor允许你通过它们的NAS网关(NAS gateway)为你现有的存储添加一个有Global Files System的虚拟NAS集群。

NAS服务器(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。

Linux的系统选择

我选择的是Ubuntu 1804。但是对于NAS来说,稳定且更新少是必要需求,所以我更加推荐Arch Linux。简洁干净,最好减少桌面配置,减少GPU占用。

系统安装

下载好iso文件以后,用UltraISO烧录进U盘里。然后重启,按F12进入BIOS,检查启动列表,要打开UEFI启动选项。然后保存设置退出,按F8打开启动列表,选择UEFI 你的U盘。进入系统选择第一项,直接安装。关于硬盘配置,我只有一个SSD和一个HDD,所以把系统安装在SSD,让安装程序自动分区,HDD自动挂载用来做数据盘。其余没什么好说的,按照自己的需求一直下一部就行了。

SAMBA配置

一、安装Ubuntu SAMBA服务器 更新软件源:输入命令sudo apt-get update更新软件源

安装SAMBA服务:输入命令sudo apt-get install samba安装SAMBA服务器。

二、创建SAMBA配置文件

备份原配置文件:sudo cp /etc/samba/smbconf /etc/samba/smbconfbak

创建共享目录:sudo mkdir -p /你的共享文件夹路径 #mkdir -p 用来创建路径中不存在的路径。

更新目录权限:sudo chmod -R 777 /你的共享文件夹路径 #chmod -R 可以给你共享的目录和该目录下所有文件和子目录进行相同的权限变更。777即所有用户对该目录都有读写权。

修改配置文件:sudo vim /etc/samba/smbconf #没有vim的请输入命令sudo apt-get vim vim的使用方法

进入配置文件之后,按i进入编辑模式,把所有字段全部删除,输入以下配置(#号后注释文字可删除):

[global] #这里是全局设置workgroup = WORKGROUP #与Windows的工作组名保持一致security = user #这里是访问安全级别,user为最低安全等级,需要输入用户名和密码。(网上的教程中的的share权限在更新之后已经关闭了,输入share权限默认最高安全等级。)usershare owner only = false #给予其他设备访问权限public = yesbrowseable = yes[你的NAS Name] #这里是分享路径配置comment = User's NAS #这一段是标记,对配置没有影响。path = /你的共享文件夹路径 #写上你自己的共享路径read only = no #是否只读writeable = yes #是否可写browseable = yes #是否可浏览guest ok = yes #是否可以给其他用户使用public = yes #是否公开create mask = 0777 #创建权限directory mask = 0777 #目录权限vaild users = user #输入当前用户名 [你的NAS名字]#如果同一台机子你想分开共享路径,就把上面的配置复制到这里。

三、创建SAMBA用户

输入命令

sudo smbpasswd -a username

注意!在创建samba用户之前请确保有一个同名的linux用户。

如果想创建其他linux用户来使用samba,请输入命令sudo adduser username来创建新用户

四、重启SAMBA服务 输入命令

sudo systemctl restart smbd

五、检查SAMBA服务是否正在运行 要检查samba 服务是否正在运行,请输入命令:

systemctl status smbd

systemctl status nmbd

要启用这两个服务,请运行以下命令:

sudo systemctl start smbd

sudo systemctl start nmbd

开始运行后,smbd将在139和445端口上侦听,若有无法访问,可以检查是否为端口封锁。

PS:Manjaro等Arch系用户请使用下面的命令来启用samba服务。

systemctl enable smb nmb
systemctl start smb nmb

六、从其他设备访问SAMBA文件夹 在同一网络的Windows 设备上,打开此电脑,点击上方选项卡计算机 ,选择选项映射网络驱动器,在文件栏输入\Host ip #你的NAS ip地址\你的共享文件夹名 (此处可以不输入根目录)

然后就可以直接使用了。

参考文章:
linux与window文件目录共享——samba配置及在windows映射 [2013-01-21]
Ubuntu下配置支持Windows访问的samba共享 [2014-02-14] 
samba配置文件注释 [2015-02-06]
如何在Ubuntu 1604上安装和配置Samba服务器以进行文件共享 [2017-11-02] 

离线下载和远程控制的配置

BT下载

一、BT软件下载

BT软件推荐: Transmission、Deluge

以下以Transmission为例进行介绍

输入命令:sudo apt-get install transmission 下载transmission。

输入命令:sudo apt-get install transmission-daemon 下载transmission的web管理端

这样你就可以在桌面打开了,可以在应用程序页面中找到启动应用程序应用,把transmission勾选进开机自启动。

二、web管理BT下载

打开Transmission,点击编辑选项,点击首选项选项卡,点击远程选项卡。打开远程连接选项,输入你觉得比较好记的端口。

在其他设备上打开浏览器,在地址栏输入你的NASIP和你刚刚设置好的端口,例如1921681100:12345, 你就已经可以使用web来管理BT下载了。

如果想要更加美观的界面和更多的设置选项,可以继续以下步骤:
Transmission-web-control 安装

1获取最新脚本

输入命令:

wget
请留意执行结果,如果出现install-tr-control-cnsh1之类的提示,表示文件已存在,请使用 rm install-tr-control-cnsh 删除之前的脚本再重新执行上面的命令。 如果提示
如果提示文件已存在,可以通过 rm install-tr-control-cnsh 进行删除后再执行下载;或者在 wget 后面添加 -N 参数,如:wget -N

2执行安装脚本

执行安装脚本(如果系统不支持 bash 命令,请尝试将 bash 改为 sh ): bash install-tr-control-cnsh 如果出现 Permission denied 之类的提示,表示没有权限,可尝试添加执行权限: chmod +x install-tr-control-cnsh 如果命令成功执行,将出现文字安装界面: 按照提示,输入相应的数字,按回车即可。
安装完成后,用浏览器访问 Transmission Web Interface(如:

离线下载

一、关于离线下载软件

离线下载推荐使用aria2,功能齐全,下载性能强悍,比迅雷会员下载还猛。

二、Aria2安装与配置 Aria2 下载 输入命令: sudo apt-get install aria2

Aria2完整安装:

sudo mkdir /etc/aria2 #新建aria2文件夹
sudo touch /etc/aria2/aria2session #新建session文件
sudo chmod 777 /etc/aria2/aria2session    #设置aria2session可写
sudo vim /etc/aria2/aria2conf    #创建配置文件

Aria2 配置 vim 打开aria2conf,将下列配置直接拷贝进文档内再自行进行编辑。

注意!注释号内的配置皆为不生效使用默认配置,如果要自定义配置一定要把配置前的注释号删除!

#'#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改
#被注释的选项填写的是默认值, 建议在需要修改时再取消注释
#文件保存相关
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=~/downloads
# 启用磁盘缓存, 0为禁用缓存, 需116以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=none
# 断点续传
continue=true
#下载连接相关
# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
#split=5
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0
#max-upload-limit=0
# 禁用IPv6, 默认:false
#disable-ipv6=true
# 连接超时时间, 默认:60
#timeout=60
# 最大重试次数, 设置为0表示不限制重试次数, 默认:5
#max-tries=5
# 设置重试等待的秒数, 默认:0
#retry-wait=0
#进度保存相关
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2session
# 定时保存会话, 0为退出时才保存, 需1161以上版本, 默认:0
#save-session-interval=60
#RPC相关设置
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1184新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 协议连接
#rpc-secure=true
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
# 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
#rpc-certificate=/path/to/certificatepem
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
#rpc-private-key=/path/to/certificatekey
#BT/PT下载相关
# 当下载的是一个种子(以torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/277
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:10
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(torrent文件), 默认:false
bt-save-metadata=true

启动aria2

输入命令:sudo aria2c --conf-path=/etc/aria2/aria2conf

如果没有提示错误,按ctrl+c停止运行命令,转为后台运行:

sudo aria2c --conf-path=/etc/aria2/aria2conf -D

设置开机自动启动

输入命令创建:sudo vim /etc/initd/aria2c

添加以下内容

#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
echo -n "已开启Aria2c"
sudo aria2c --conf-path=/etc/aria2/aria2conf -D
;;
stop)
echo -n "已关闭Aria2c"
killall aria2c
;;
restart)
killall aria2c
sudo aria2c --conf-path=/etc/aria2/aria2conf -D
;;
esac
exit

修改文件权限:sudo chmod 755 /etc/initd/aria2c

添加aria2c服务到开机启动:sudo update-rcd aria2c defaults

启动服务:sudo service aria2c start

查看服务状态:sudo systemctl status aria2c

Aria2的使用

打开浏览器,在地址栏输入>

在chrome下载aria2插件,可以方便直接调用aria2下载东西,如果无响应可以直接拷贝链接下载。

三、关于Docker Docker功能正在研究学习,后续会更新。

参考文章:
ubuntu安装配置aria2[2016-08-14] 
ubuntu1804 aria2的安装及使用详解 [2018-08-23] 
Ubuntu安装aira2及开机启动配置[2018-03-01]

配置NAS的远程管理

一、关于远程管理

对Linux的远程连接可以使用SSH连接terminal来控制,也可以用Webmin来图形化控制

个人推荐SSH多一些,毕竟Linux用命令还是多一些的,而Webmin会稍微直观一些。

二、SSH的配置 安装SSH

输入命令:sudo apt-get install ssh

启动服务:service sshd start

配置端口:vim /etc/ssh/sshd_config

去除Port前的注释键,自定义端口。

查看服务是否启动:ps -e | grep ssh

无报错且ssh-agent和sshd两个程序在运行即可。

Windows下载putty,输入你的NAS地址和端口即可远程使用Terminal来管理NAS主机。

三、Web管理

Webmin安装

由于包管理器中的源并没有webmin,我们需要去官网下载软件的包来进行安装

使用wget来下载包:

cd /你的下载目录

wget >

然后运行安装命令

dpkg --install webmin_1910_alldeb

安装程序将会自动把Webmin安装进 /usr/share/webmin目录内。如果没有任何报错,你就可以在其他设备中输入>

若遇到缺少依赖的报错,请输入该命令解决依赖:apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python

若安装依赖库的过程中报错为无法找到包,请输入vim /etc/apt/sourceslist,检查最后一行是否以universe结尾。

在使用NAS时,需要先确定NAS上的NFS服务和SMB的服务都开启了;

然后需要用NAS上的用户去登录,这里用的是admin:

# smbclient -L 192168140 -U admin
Enter admin's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4120]
Sharename       Type      Comment
---------       ----      -------
IPC$            IPC       IPC Service ()
Public          Disk
Project         Disk
PM_Team         Disk
Member          Disk
Layout_Team     Disk
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4120]
Server               Comment
---------            -------
DISKSTATION_SH
PROSERVER            Main Server
Workgroup            Master
---------            -------
WORKGROUP            PROSERVER

说明连接成功!

如果要使用NAS中的存储,需要挂载到Linux服务器中,例如:

# mount -o username=admin,password= //192168140/BackUp /mnt/nasBackup/

然后就可以使用了。

nas文件夹中的文件夹上传不到服务器解决办法:第一步,你要确保自己按照群晖官网的 ,正确地完成 NAS 端的配置。如果没有,请根据文中的步骤,一步一步做下去,等到在 NAS 后台中的配置完成,停住,然后可以跳过第二步。
第二步,如果你已经在电脑上进行了 Time Machine 备份尝试并收到了报错提醒,那么你可以在 NAS 相应的文件夹里看到一个 sparsebundle 文件,不管它叫什么名字,删除掉,确保这个文件夹里除了回收站没有其它文件 / 子文件夹。第三步,打开「系统偏好设置-共享」,点击「编辑」按钮,然后复制你的本地主机名(不需要 local 字符)。
第五步,继续在终端 app 中输入命令 sudo hdiutil create -size 320g -type SPARSEBUNDLE -nospotlight -volname "Backup of " -fs "Case-sensitive Journaled HFS+" -verbose ~/Desktop/_sparsebundle ,其中 替换为第三步中获得的本地主机名, 替换为第四步中获得的 MAC 地址,敲击回车键,输入密码,稍等一下,你的桌面上就会生成一个正确的 sparsebundle 文件。
第六步,打开访达 app,使用快捷键 ⌘Command+K 来连接到服务器,填入 NAS 对应的 SMB 地址,并输入 Time Machine 专属账户的用户名和密码。等待成功挂载 Time Machine 共享文件夹后,将桌面上的 sparsebundle 文件复制到这个文件夹中。在这一步中,千万要记住要通过访达 app 来上传文件,而不能在 NAS 后台上传。第七步,等待上传完毕后,重新打开「系统偏好设置-时间机器」来进行接下去正常的流程 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10756981.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存