linux如何开启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 nmbsystemctl start smb nmb六、从其他设备访问SAMBA文件夹 在同一网络的Windows 设备上,打开此电脑,点击上方选项卡计算机 ,选择选项映射网络驱动器,在文件栏输入\Host ip #你的NAS ip地址\你的共享文件夹名 (此处可以不输入根目录)
然后就可以直接使用了。
参考文章:linux与window文件目录共享——samba配置及在windows映射 [2013-01-21]https://blogcsdnnet/mengfanbo123/article/details/8524924Ubuntu下配置支持Windows访问的samba共享 [2014-02-14] https://blogcsdnnet/i_chips/article/details/19191957samba配置文件注释 [2015-02-06]https://blogcsdnnet/dhgao38/article/details/43567403如何在Ubuntu 1604上安装和配置Samba服务器以进行文件共享 [2017-11-02] https://wwwlinuxidccom/Linux/2017-11/148194htm离线下载和远程控制的配置
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 https://githubcom/ronggang/transmission-web-control/raw/master/release/install-tr-control-cnsh请留意执行结果,如果出现install-tr-control-cnsh1之类的提示,表示文件已存在,请使用 rm install-tr-control-cnsh 删除之前的脚本再重新执行上面的命令。 如果提示 https 获取失败,请使用以下命令获取安装脚本:wget https://githubcom/ronggang/transmission-web-control/raw/master/release/install-tr-control-cnsh --no-check-certificate如果提示文件已存在,可以通过 rm install-tr-control-cnsh 进行删除后再执行下载;或者在 wget 后面添加 -N 参数,如:wget -N https://githubcom/ronggang/transmission-web-control/raw/master/release/install-tr-control-cnsh --no-check-certificate2执行安装脚本
执行安装脚本(如果系统不支持 bash 命令,请尝试将 bash 改为 sh ): bash install-tr-control-cnsh 如果出现 Permission denied 之类的提示,表示没有权限,可尝试添加执行权限: chmod +x install-tr-control-cnsh 如果命令成功执行,将出现文字安装界面: 按照提示,输入相应的数字,按回车即可。安装完成后,用浏览器访问 Transmission Web Interface(如:http://19216811:9091/ )即可看到新的界面;如果无法看到新界面,可能是浏览器缓存了,请按 Ctrl + F5 强制刷新页面或 清空缓存 后再重新打开;注意,路径最后不要加web离线下载
一、关于离线下载软件
离线下载推荐使用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# 同一服务器连接数, 添加时可指定, 默认:1max-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, 默认:falseenable-rpc=true# 允许所有来源, 默认:falserpc-allow-origin-all=true# 允许非外部访问, 默认:falserpc-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 服务需要使用 https 或者 wss 协议连接#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-6999listen-port=51413# 单个种子最大连接数, 默认:55#bt-max-peers=55# 打开DHT功能, PT需要禁用, 默认:trueenable-dht=false# 打开IPv6 DHT功能, PT需要禁用#enable-dht6=false# DHT网络监听端口, 默认:6881-6999#dht-listen-port=6881-6999# 本地节点查找, PT需要禁用, 默认:false#bt-enable-lpd=false# 种子交换, PT需要禁用, 默认:trueenable-peer-exchange=false# 每个种子限速, 对少种的PT很有用, 默认:50K#bt-request-peer-speed-limit=50K# 客户端伪装, PT需要peer-id-prefix=-TR2770-user-agent=Transmission/277# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:10seed-ratio=0# 强制保存会话, 即使任务已经完成, 默认:false# 较新的版本开启后会在任务完成后依然保留aria2文件#force-save=false# BT校验相关, 默认:true#bt-hash-check-seed=true# 继续之前的BT任务时, 无需再次校验, 默认:falsebt-seed-unverified=true# 保存磁力链接元数据为种子文件(torrent文件), 默认:falsebt-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 INFOcase "$1" instart)echo -n "已开启Aria2c"sudo aria2c --conf-path=/etc/aria2/aria2conf -D;;stop)echo -n "已关闭Aria2c"killall aria2c;;restart)killall aria2csudo aria2c --conf-path=/etc/aria2/aria2conf -D;;esacexit修改文件权限:sudo chmod 755 /etc/initd/aria2c
添加aria2c服务到开机启动:sudo update-rcd aria2c defaults
启动服务:sudo service aria2c start
查看服务状态:sudo systemctl status aria2c
Aria2的使用
打开浏览器,在地址栏输入http://aria2ccom打开aria2的web管理器。打开右上角的设置,输入你的NAS机地址和你的aria2配置文件的端口,如果没有更改就是6800。
在chrome下载aria2插件,可以方便直接调用aria2下载东西,如果无响应可以直接拷贝链接下载。
三、关于Docker Docker功能正在研究学习,后续会更新。
参考文章:ubuntu安装配置aria2[2016-08-14] https://blogcsdnnet/crazycui/article/details/52205908ubuntu1804 aria2的安装及使用详解 [2018-08-23] https://blogcsdnnet/qq_29117915/article/details/81986509Ubuntu安装aira2及开机启动配置[2018-03-01]https://wwwjianshucom/p/3c1286c8a19d配置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 https://prdownloadssourceforgenet/webadmin/webmin_1910_alldeb
然后运行安装命令
dpkg --install webmin_1910_alldeb
安装程序将会自动把Webmin安装进 /usr/share/webmin目录内。如果没有任何报错,你就可以在其他设备中输入http://NASIPAddress:10000/,请自行更换NAS的IP。
若遇到缺少依赖的报错,请输入该命令解决依赖: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 adminEnter admin's password:Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4120]Sharename Type Comment--------- ---- -------IPC$ IPC IPC Service ()Public DiskProject DiskPM_Team DiskMember DiskLayout_Team DiskDomain=[WORKGROUP] OS=[Unix] Server=[Samba 4120]Server Comment--------- -------DISKSTATION_SHPROSERVER Main ServerWorkgroup Master--------- -------WORKGROUP PROSERVER
说明连接成功!
如果要使用NAS中的存储,需要挂载到Linux服务器中,例如:
# mount -o username=admin,password= //192168140/BackUp /mnt/nasBackup/
然后就可以使用了。
然而,这样的灵活性有一个条件:物理机能够看到所有虚拟磁盘镜像。这通常会导致存储网络成为一个使用网络文件系统(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集群。
FreeNAS 是开源的 NAS 服务器,它能将一部普通 PC 变成网络存储服务器。该软件基于 FreeBSD,Samba 及
PHP,包含了一套支持多种软 RAID 模式的操作系统和网页用户界面。用户可通过 Windows、Macs、FTP、SSH 及网络文件系统
(NFS) 来访问存储服务器;FreeNAS 可被安装于硬盘或移动介质上,所占空间不足 16MB
FreeNAS 是免费的,安装简易。它是个开源项目,基于 BSD 许可发布的。该软件人气很足,单是上个月的下载次数就超过 2 万。
FreeNAS 066 的 ISO 镜像文件并将其烧录成 CD安装 FreeNAS 的机子最少要有 96MB
内存,一张网卡和一块硬盘。我使用的是一部接有 4 块硬盘的老电脑。我想将 FreeNAS 安装在其中一块硬盘上,剩余的三块硬盘组成 RAID
5由于我测试的电脑只支持 4 块 IDE 硬盘,因此我临时将其中一块硬盘换成 CD-ROM,等 FreeNAS
安装完毕后再将硬盘调回来,然后才开始相关的配置。
用刚烧录的 CD 启动电脑可让 FreeNAS 运行起来,不过仍然需要进行一些配置工作。
初始配置时值得注意的是 FreeNAS 服务器不会自动给网卡分配 IP我起初以为机子只有一张网卡,它会被自动视作系统的网卡的;由于连不上,检查网线连接折腾了一个小时后才发现我错了。用户必须按照用户手册“网卡和 IP 配置”一章的说明文字来设置网卡。
配置完毕后,在网页浏览器的地址栏里键入 FreeNAS 服务器的 IP 地址;输入默认的用户名 admin 和密码 freenas 登入系统。开始页显示出一些系统信息,如版本号及内存使用情况等。左边有一列菜单。
我想做的第一件事是让 RAID 硬盘工作起来。再提一遍,用户手册是您的朋友,里面的说明很清晰,一步一步指导您。
做 RAID 要求用到整块硬盘;所以如果将 FreeNAS 安装到其中一块硬盘 (而不是安装在 U 盘上),则那块硬盘不能成为 RAID
的一部分。同时,为最大限度地利用 RAID 硬盘的空间,请使用尺寸一样或相近的硬盘。FreeNAS
的某些版本由于设计上的缺陷,要求一定要使用尺寸完全一样的硬盘。
另一个值得注意的地方是在创建 RAID 加载点时,必须将分区类型改为软 RAID我开始设置 RAID 时没有这样做,导致 RAID 不工作,差点抓烂头皮。
为了让 RAID 可以通过网络来访问,最后一步是要配置网络服务,如 CIFS 和 FTPWindows 使用 CIFS
协议存取网络上的文件。CIFS 在服务部分的 CIFS 页面中配置。勾上 Enable (启用)
选框,然后输入工作组的名称来启用它。匿名验证方法使用起来最简易;您可以找到有关本地用户验证和域用户验证的选项。点击 Save (保存)
后,Windows 的机子就可以访问 FreeNAS 服务器了。试着复制一些文件便可以看到硬盘指示灯在一起快速地闪烁,证明 RAID
硬盘在协同工作了。
FreeNAS 的网页管理界面的功能已很完备了,因此管理服务器时无需用到命令提示行。其实通过 SSH 可得到一个完整的
Shell,不过我以为没那个必要。从 freenasorg
的技术支持论坛中看到,确实有人利用命令提示行来进行一些特殊的配置工作;但对于一般用户来说,网页管理界面已足够了。
测试过程中,我发现 FreeNAS
的主系统很稳健。不过,如果搞不好,有可能令系统配置变得很混乱。比如,创建第一个本地用户时,我忽视了首先要创建一个组的提示,盲目尝试创建用户;结果
导致了一些内部错误,接下来所有的本地用户验证都通不过。修正错误的唯一方法就是将 FreeNAS
服务器还原到出厂状态,从头再配置一次。如果遵从有关的警告提示,则不应该出现问题的。
要保护服务器的安全,就必须更改网页管理界面的默认密码。如果直接从服务器本机登入系统的权限不加限制,则禁用控制台菜单的做法是必要的。
该软件不尽人意的地方是不能分层级设置共享目录的读写权限。在本地用户验证模式下,用户或完全读写或完全禁止读写。管理员不能为用户设置只读权限,也不能只赋予用户读写某几个共享目录的权限。用户一旦通过验证,他便可完全读写所有的共享目录。
FreeNAS 服务器前途无量;它的开发工作十分活跃。单是 2006 年前 4 个月就释出 11
个修正版本。它是组建简单网络存储服务器的绝佳选择,免去安装整套 Linux 或 FreeBSD
的烦恼。而且,它是善用旧硬件的好办法,毕竟在当今的标准下,它的系统要求已算低了。
•CentOS 54操作系统
•技嘉MAA78GM-US2H主板
•一个AMD Phenom II X4 920处理器
•8GB内存(DDR2-800)
•Linux 2630内核(只有reiser4补丁)
•操作系统和启动盘在一个IBM DTLA-307020硬盘上(在Ultra ATA/100接口上的20GB硬盘)
•/home在一个希捷ST1360827AS硬盘上
•有两个硬盘用于测试。它们是希捷ST3500641AS-RK硬盘,每个硬盘有16MB缓存。它们分别是/dev/sdb和/dev/sdc。
对于这个文件系统,仅使用了第一个希捷硬盘/dev/sdb。这个硬盘在这个案例中是ext4。第二个硬盘/dev/sdc用于这个文件系统的日志部分。这个硬盘分区为正确的尺寸并且只有那个分区用作日志(/dev/sdc1)。
利用现有的服务器创建一个NAS设备的第一步就是设置和启动NFS。我假设你已经在你的系统中安装了NFS,包括NFS服务器组件。检查NFS 是否已经安装在这台服务器上的一种方法是检查是否存在“/etc/exports”文件(这个文件也许没有任何内容,但是,这个文件应该存在)。此外,在 CentOS或者RHEL平台上,你还可以通过查看“/usr/sbin/rpcnfsd”这个文件检查这个NFS服务器是否安装了。
[laytonjb@test64 ]$ ls -s /usr/sbin/rpcnfsd
20 /usr/sbin/rpcnfsd
对于基于rpm(每分钟转速)的系统,你还可以试试下面的方法:
[laytonjb@home8 ]{$selection}nbsp;rpm -qa | grep -i nfs system-config-nfs-128-1 nfs-utils-106-46
(这是一个老式的CentOS 41系统,因此许多数字与比较新的东西是不匹配的)。在这点上,让我们假设NFS的服务器组件已经安装了。
一般来说,我下一步是启动这台服务器上的NFS。检查NFS是否运行的一个简便的方法是使用这个命令“rpcinfo -p”,这个命令报告这个系统上的RPC(远程程序调用)信息。如果NFS服务器还没有启动,你将看到类似于如下的信息:
[root@test64 ]# /usr/sbin/rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 774 status 100024 1 tcp 777 status
在这个输出中最重要的事情是这个“portmapper”(端口映射程序)正在运行,它是NFS的一个重要部分。如果你在这个列表中没有看到“portmapper”,请阅读如何让它运行的说明书。
要启动NFS服务器,或者NFS的服务器部分,在某种程度上取决于你的操作系统发布版。在这个测试的CentOS系统上,这是通过执行下列指令完成的。
[root@test64 ]# /etc/initd/nfs start
然后,我们再一次运行“rpcinfo -p”,看看NFS是否启动。
[root@test64 ]# /usr/sbin/rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 774 status 100024 1 tcp 777 status 100011 1 udp 645 rquotad 100011 2 udp 645 rquotad 100011 1 tcp 648 rquotad 100011 2 tcp 648 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 42049 nlockmgr 100021 3 udp 42049 nlockmgr 100021 4 udp 42049 nlockmgr 100021 1 tcp 54256 nlockmgr 100021 3 tcp 54256 nlockmgr 100021 4 tcp 54256 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100005 1 udp 669 mountd 100005 1 tcp 672 mountd 100005 2 udp 669 mountd 100005 2 tcp 672 mountd 100005 3 udp 669 mountd 100005 3 tcp 672 mountd
注意,你看到NFS列表,看到NFS v2、NFS v3和NFS v4启动了(看第二栏)。还要注意,用于NFS的UDP和TCP协议也列出了。
NFS运行需要一些守护程序。“/etc/initd/nfs”脚本为我们启动一切程序。但是,一般来说,我们需要的守护程序是:
rpcnfsd (服务器)
rpclockd (对于服务器和客户机都是常见的)
rpcstatd (对于服务器和客户机都是常见的)
rpcmountd (对于服务器和客户机都是常见的)
rpcrquotad (服务器)
输出数据
下一步是告诉NFS服务器什么目录能够与其它系统(客户机)共享。在NFS的词汇中,这叫作“输出”目录,具体的目录叫作“输出”。现在,NFS启动了,让我们设置它以便把目录输出到服务器。
要做这个事情,我们通过定义要输出的目录来编辑这个“/etc/exports”文件及其属性。“/etc/exports ”文件中的典型的输入内容如下:
directory machine1(option11,option12) machine2(option21,option22)
在这里:
•目录(directory)是你要输出到客户机的服务器目录。它可以是一个目录或者一个整个的硬盘。然而,它必须用一个文件系统进行格式化。“/etc/exports”文件中的每一行都是一个单独的目录。
•machine1、machine2是你希望与其共享数据的客户机的名字。例如,它们的列表可以使用client1或者client2等系统的名字(要保证客户机在/etc/hosts目录中列出或者通过NIS列出),或者使用IP地址列出,如19216818。你还可以使用通配符 “”来代表任何客户机。这里强烈建议你列出的每一个客户机都能帮助保证没有任何“流氓”客户机能够安装到输出的目录中。维护这个客户机列表是很痛苦的,特别是这个列表很长的话。这点安全性对于不太高级额的攻击是有帮助的。另一方面,如果你是在一个厚厚的防火墙后面,并且相信这个防火墙的能力以及没有人会故意地或者意外地引起故障,那么,你就可以把这些机器的名称列为“”,这个意思是所有的客户机(高性能计算集群经常这样做,因为这个集群在一个专用网络中。这个网络通常在一个厚厚的防火墙后面)。
•(option11, options12, …) 是用于输出到这个目录的选择列表。有许多可以使用的选择。这超出了本文介绍的范围。然而,有些更重要的选择是:
“ro”代表只读。因此,这个服务器可以输出只读的目录。这样,客户机就不能向它们写入内容。
“rw”代表读写。这意味着客户机能够对那个输出的目录做读写操作。
“no_root_squash”意思是在客户机上的用户的“root”将拥有与在服务器上的用户“root”相同的访问这些文件的级别。再说一次,围绕这个事情有许多安全问题,建议你在客户机上不要使用“no_root_squash”。
“sync”告诉NFS等待,一直到这个数据在返回之前发送到存储设备。另一个选择是“async”,它允许NFS服务器在数据发送到这就和个设备之前返回到客户机应用程序(也就是说,它可能在缓存的某个地方)。建议你使用“sync”选择,以保证这个数据写道永久性的存储设备中。然而,这种选择有性能方面的影响,使用“sync”选择的安装的NFS文件系统比使用“async”选择的系统慢。
你把目录输出到客户机有许多方法。这完全取决于你要完成什么任务和你如何完成这个任务。例如,你可以输出包含应用程序的服务器上的一个目录。客户机只需要下面显示的“/etc/exports”目录中的一行内容。
/opt 19216818(ro)
在这个例子中,服务器正在向一个IP地址为19216818的客户机输出(共享)包含一些应用程序的/opt目录。这个客户机能够以只读的方式(不允许写盘)安装这个目录。这是在一台服务器上安装应用程序并且与其它客户机共享这些应用程序的一种常见的方式。
NFS应用最多的是用于根目录。把用户的根目录放在一台服务器上,然后再把它安装在客户机上,是很容易的和常见的。在“/etc/exports”目录中输入的内容看起来也许像如下的样子:
0条评论