FreeNAS是一套免费的NAS服务器,它能将一部普通PC变成网络存储服务器。该软件基于FreeBSD,Samba 及PHP,支持CIFS (samba), FTP, NFS protocols, Software RAID (0,1,5),ISCSI及 web 界面的设定工具。
用户可通过Windows,linux,Mac来访问存储服务器;FreeNAS可被安装于硬盘或移动介质USB Flash Disk上。FreeNAS 服务器前途无量;它的开发工作十分活跃。单是2006年前4个月就释出11个修正版本。
它是组建简单网络存储服务器的绝佳选择,免去安装整套Linux或 FreeBSD 的烦恼。而且FreddNAS还有监控网络情况的作用,重要的一点Freenas 8及其后续版本不支持系统文件与存储共同使用同一块硬盘,
系统文件单独使用一个设备,该设备可以是USB内存卡、U盘、单独的一块硬盘等,存储使用另一磁盘设备。


这里介绍FreeNAS11安装和iSCSI配置,NFS、CIFS、FTP等配置请期待后续文章,另外后续还会写openfiler虚拟存储。



1、下载FreeNAS 11镜像文件

下载链接:https://download.freenas.org/11.2/STABLE/U1/x64/FreeNAS-11.2-RELEASE-U1.iso



2、安装FreeNAS 11

选择其他---FreeBSD 64位,如下图:

磁盘分配10G,用于安装freenas11,如下图:

添加两个15G磁盘,选择SCSI接口,如下图:

按回车键安装freenas11,如下图:

选中Install/Upgrade,然后选择OK后回车,如下图:

选择Yes后回车后回车,如下图:(freenas服务器最好8G以上内存,用于测试请忽略)

选择将freenas安装在哪个硬盘中,这里选择安装在10G硬盘中,如下图:

设置root账号密码,如下图:

按照默认选择后回车,如下图:

选择OK后按回车,成功完成安装,如下图:

选择Reboot System重启服务器,或者Shutdown System关机服务器,如下图:



3、配置FreeNAS 11

设置freenas管理IP,如下图:

使用root账号密码登陆freenas web控制台,如下图:

确认磁盘,如下图:

Storage---Pools---ADD里面添加池,选择可选择的硬盘,然后选择是“条带(Stripe)”还是“镜像”,如下图:

卷类型说明:
    Stripe: 至少需要一个磁盘
    Mirror: 至少需要两个磁盘
    RAIDZ1: 至少需要三个磁盘
    RAIDZ2: 至少需要四个磁盘
    RAIDZ3: 至少需要五个磁盘
    log device: 至少需要一个专用设备,建议使用快速,低延迟,电源保护的SSD
    cache device: 至少需要一个专用设备,建议使用SSD

备注:可以再在pool1上新建Dataset数据集。


在Services中点击iSCSI后面的编辑按钮,如下图:


Authorized Access---ADD,添加授权访问用户,用户名gxm,密码ab12cd34ef98gh(注意密码需要12到16位,否则SAVE不可点),如下图:

Portals---ADD,新增入口设置iSCSI客户端连接的IP地址和端口。如下图:


Initiators---ADD,设置指定网卡运行访问,这里全部允许,如下图:


Targets---ADD,添加iSCSI目标,Target名称最好以iqn开头,这样可以随机启动,如下图:


Extents---ADD,设置挂载目录,如下图/mnt/pool1/oracle:


Associated Targets---ADD,设置关联Targets,如下图:


备注:如果用不惯新版本的风格,也可以用以前版本的模式设置。



4、windows iSCSI连接




5、linux iSCSI连接

备注:配置文件介绍:
/etc/iscsi/iscsid.conf:主要的配置文件,用来连结到 iSCSI target 的设定;
/sbin/iscsid:启动 iSCSI initiator 的主要服务程序;
/sbin/iscsiadm:用来管理 iSCSI initiator 的主要设定程序;
iscsid服务:让本机模拟成为 iSCSI initiater 的主要服务;
iscsi服务:在本机成为 iSCSI initiator 之后,启动此脚本,让我们可以登入 iSCSI target。所以 iscsid 先启动后,才能启动这个服务。为了防呆,所以 /etc/init.d/iscsi 已经写了一个启动指令, 启动 iscsi 前尚未启动 iscsid ,则会先呼叫 iscsid 才继续处理 iscsid


这里以两台服务器挂载iSCSI分区为例,用于高可用方案。

第一台:

[root@localhost ~]# yum install iscsi-initiator-utils
[root@localhost ~]# systemctl enable iscsid
[root@localhost ~]# systemctl enable iscsi
#不需要启动

[root@localhost ~]# vi /etc/iscsi/iscsid.conf
# *************
# CHAP Settings
# *************
# To enable CHAP authentication set node.session.auth.authmethod
# to CHAP. The default is None.
node.session.auth.authmethod = CHAP
# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = gxm
node.session.auth.password = ab12cd34ef98gh
# To set a CHAP username and password for target(s)
# authentication by the initiator, uncomment the following lines:
#node.session.auth.username_in = username
#node.session.auth.password_in = password
# To enable CHAP authentication for a discovery session to the target
# set discovery.sendtargets.auth.authmethod to CHAP. The default is None.
discovery.sendtargets.auth.authmethod = CHAP
# To set a discovery session CHAP username and password for the initiator
# authentication by the target(s), uncomment the following lines:
discovery.sendtargets.auth.username = gxm
discovery.sendtargets.auth.password = ab12cd34ef98gh

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.146.104
192.168.146.104:3260,1 iqn.freenas
选项与参数:-m discovery   :使用侦测的方式进行 iscsiadmin 指令功能;-t sendtargets :透过 iscsi 的协议,侦测后面的设备所拥有的 target 数据-p IP:port     :就是那部 iscsi 设备的 IP 与埠口,不写埠口预设是 3260 啰!

[root@localhost ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=192.168.146.104:3260,1 iqn.freenas

[root@localhost ~]# iscsiadm -m node -T iqn.freenas -p 192.168.146.104 -l
Logging in to [iface: default, target: iqn.freenas, portal: 192.168.146.104,3260] (multiple)
Login to [iface: default, target: iqn.freenas, portal: 192.168.146.104,3260] successful.

[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b0c8a
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM
磁盘 /dev/mapper/rhel-root:18.8 GB, 18756927488 字节,36634624 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/rhel-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 1048576 字节

[root@localhost ~]# pvcreate /dev/sdb
[root@localhost ~]# vgcreate vg-oracle /dev/sdb
[root@localhost ~]# vgdisplay
[root@localhost ~]# lvcreate -l 5119 -n da_oracle vg-oracle
[root@localhost ~]# lvdisplay
[root@localhost ~]# mkfs -t ext4 /dev/vg-oracle/da_oracle
[root@localhost ~]# mkdir /oracle
[root@localhost ~]# mount /dev/mapper/vg--oracle-da_oracle /oracle/
[root@localhost ~]# df -h

[root@localhost /]# umount /dev/mapper/vg--oracle-da_oracle
[root@localhost /]# iscsiadm -m node -T iqn.freenas -p 192.168.146.104 -u
Logging out of session [sid: 15, target: iqn.freenas, portal: 192.168.146.104,3260]
Logout of [sid: 15, target: iqn.freenas, portal: 192.168.146.104,3260] successful.


第二台:

[root@localhost ~]# yum install iscsi-initiator-utils
[root@localhost ~]# systemctl start iscsi
[root@localhost ~]# systemctl enable iscsi

[root@localhost ~]# vi /etc/iscsi/iscsid.conf
# *************
# CHAP Settings
# *************
# To enable CHAP authentication set node.session.auth.authmethod
# to CHAP. The default is None.
node.session.auth.authmethod = CHAP
# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = gxm
node.session.auth.password = ab12cd34ef98gh
# To set a CHAP username and password for target(s)
# authentication by the initiator, uncomment the following lines:
#node.session.auth.username_in = username
#node.session.auth.password_in = password
# To enable CHAP authentication for a discovery session to the target
# set discovery.sendtargets.auth.authmethod to CHAP. The default is None.
discovery.sendtargets.auth.authmethod = CHAP
# To set a discovery session CHAP username and password for the initiator
# authentication by the target(s), uncomment the following lines:
discovery.sendtargets.auth.username = gxm
discovery.sendtargets.auth.password = ab12cd34ef98gh

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.146.104
192.168.146.104:3260,1 iqn.freenas
选项与参数:-m discovery   :使用侦测的方式进行 iscsiadmin 指令功能;-t sendtargets :透过 iscsi 的协议,侦测后面的设备所拥有的 target 数据-p IP:port     :就是那部 iscsi 设备的 IP 与埠口,不写埠口预设是 3260 啰!

[root@localhost ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=192.168.146.104:3260,1 iqn.freenas

[root@localhost ~]# iscsiadm -m node -T iqn.freenas -p 192.168.146.104 -l
Logging in to [iface: default, target: iqn.freenas, portal: 192.168.146.104,3260] (multiple)
Login to [iface: default, target: iqn.freenas, portal: 192.168.146.104,3260] successful.

[root@localhost ~]# vgchange -ay
  1 logical volume(s) in volume group "vg-oracle" now active
  2 logical volume(s) in volume group "rhel" now active
[root@localhost ~]# lvscan
  ACTIVE            '/dev/vg-oracle/da_oracle' [20.00 GiB] inherit
  ACTIVE            '/dev/rhel/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/rhel/root' [17.47 GiB] inherit
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b0c8a
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM
磁盘 /dev/mapper/rhel-root:18.8 GB, 18756927488 字节,36634624 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/rhel-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 1048576 字节
磁盘 /dev/mapper/vg--oracle-da_oracle:21.5 GB, 21470642176 字节,41934848 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 1048576 字节
[root@localhost ~]# mount /dev/mapper/vg--oracle-da_oracle /oracle
[root@localhost ~]# df -h
文件系统                          容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root              18G  1.3G   17G    7% /
devtmpfs                          903M     0  903M    0% /dev
tmpfs                             913M     0  913M    0% /dev/shm
tmpfs                             913M  8.6M  904M    1% /run
tmpfs                             913M     0  913M    0% /sys/fs/cgroup
/dev/sda1                         497M  125M  373M   26% /boot
tmpfs                             183M     0  183M    0% /run/user/0
/dev/mapper/vg--oracle-da_oracle   20G   45M   19G    1% /oracle

[root@localhost /]# umount /dev/mapper/vg--oracle-da_oracle
[root@localhost /]# iscsiadm -m node -T iqn.freenas -p 192.168.146.104 -u
Logging out of session [sid: 15, target: iqn.freenas, portal: 192.168.146.104,3260]
Logout of [sid: 15, target: iqn.freenas, portal: 192.168.146.104,3260] successful.