首页 > 系统相关 >记录:使用Hyper-V搭建Centos作为Iscsi Server端

记录:使用Hyper-V搭建Centos作为Iscsi Server端

时间:2024-01-15 18:45:28浏览次数:34  
标签:Hyper Centos 创建 Iscsi dev mylv vgroup1 设置 iSCSI

目录

0.背景

由于我的笔记本存储空间告急,但是NAS上的空间还很富裕,于是尝试将NAS的空间挂载到笔记本上使用。我想用来做新创建虚拟机的硬盘,smb/cifs共享肯定不适用在这方面,于是转头看向了ISCSI。
但由于我的NAS为了方便管理,使用的是Windows 10 LTSC系统,无法创建ISCSI Server,但好在电脑有Hyper-V,于是设想创建一个Centos虚拟机,在虚拟机上安装ISCSI服务。
NAS是低功耗的J1900,4G内存,带一个2t的酷狼硬盘,带一个centos的虚拟机应该还没啥问题
创建虚拟机
创建一个Centos 8的虚拟机,交换机选择桥接模式,分配了30G的空间作为系统盘,打算随后挂载数据盘。

1.系统环境设置

首先设置系统环境

1.1 固定ip

使用ip addr命令获取到网卡接口名称为eth0

# 设置ip地址
nmcli connection modify eth0 ipv4.address 192.168.1.113
# 设置网关地址
nmcli connection modify eth0 ipv4.gateway 192.168.1.1
# 设置DNS地址
nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4"
# 重新启动网络
nmcli connection down eth0 && nmcli connection up eth0

随后使用新ip即可连接网络。

1.2 换源

由于centos 8已经停止支持,所以需要更换一下软件源

# 备份原文件
mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*repo /etc/yum.repos.d/backup
# 下载阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
# 清理缓存
yum clean all && yum makecache

测试可以正常使用。
yum测试

2.设置数据盘

将虚拟机关机,随后在Hyper-V的“虚拟机设置/IDE控制器”中,新建一块硬盘驱动器。
新建一块“VHDX”格式的虚拟硬盘,类型选择扩展,大小先设置为512GB,名字设置成data.vhdx并修改存储路径。
新建虚拟硬盘
随后启动虚拟机,使用lsblk确定硬盘是否添加成功

lsblk

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   30G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   29G  0 part
  ├─cl-root 253:0    0   26G  0 lvm  /
  └─cl-swap 253:1    0    3G  0 lvm  [SWAP]
sdb           8:16   0  512G  0 disk
sr0          11:0    1 1024M  0 rom

可以看到,系统已经成功识别了一个512G的硬盘,并将其命名为“sdb”。

2.1 格式化数据盘并挂载

注意:以下命令均建立在root权限上:
使用 fdisk 创建一个新的分区:

fdisk /dev/sdb

随后:
g创建一个新的GPT分区表
n创建新分区

  分区号 (1-128, 默认  1): 按回车选择默认
  第一个扇区 (2048-1073741790, 默认 2048):按回车选择默认
  上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-1073741790, 默认 1073741790):按回车选择默认

选择默认即可
w保存更改并退出

创建一个物理卷(Physical volume)

pvcreate /dev/sdb1

创建一个卷组

vgcreate vgroup1 /dev/sdb1

创建逻辑卷

lvcreate -l 100%FREE -n mylv vgroup1

将逻辑卷格式化为ext4

mkfs.ext4 /dev/vgroup1/mylv

创建一个挂载点目录

mkdir /mnt/iscsidata

挂载目录

mount /dev/vgroup1/mylv /mnt/iscsidata


随后设置开机自动挂载此目录

echo '/dev/vgroup1/mylv /mnt/iscsidata ext4 defaults 0 0' | tee -a /etc/fstab

3.配置iscsi服务

3.1 安装软件包

yum install targetcli -y
systemctl start target
systemctl enable target


同时为文件夹设置权限,防止出现奇奇怪怪的问题

chmod -R 0755 /mnt/iscsidata

3.2

# 卸载之前可能挂载在 /mnt/iscsidata 上的文件系统,确保无冲突
umount /mnt/iscsidata

# 进入targetcli环境
targetcli

# 创建一个存储对象,关联到 LVM 逻辑卷 /dev/vgroup1/mylv
cd /backstores/block
create mylvmbackstore /dev/vgroup1/mylv

# 切换到 iSCSI 目录,创建一个新的 iSCSI Target,名称为 iqn.2024-01.cn.foxhank:mytarget
# 这里的名称可以自行设置,格式为iqn.yyyy-mm.reverse.domain.name:identifier
# yyyy-mm 表示年份和月份,用于确保名称的唯一性;
# reverse.domain.name 是反向域名格式,比如com.example;
# 最后的 identifier 是自定义部分,用来区分不同的目标。
cd /iscsi
create iqn.2024-01.cn.foxhank:mytarget

# 进入新创建的 iSCSI Target 的 TPG1下的 LUNs 子目录
cd iqn.2024-01.cn.foxhank:mytarget/tpg1/luns

# 在当前 TPG 中创建一个 LUN ,将之前创建的 backstore 'mylvmbackstore' 关联到此 LUN
create /backstores/block/mylvmbackstore

# 保存配置并退出
exit

结果如下:

[root@bogon ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> cd /backstores/block
/backstores/block> create mylvmbackstore /dev/vgroup1/mylv
Created block storage object mylvmbackstore using /dev/vgroup1/mylv.

> /iscsi create iqn.2024-01.cn.foxhank:mytarget
Created target iqn.2024-01.cn.foxhank:mytarget.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/iscsi/iqn.20...get/tpg1/luns> create /backstores/block/mylvmbackstore
Created LUN 0.

/iscsi/iqn.20...get/tpg1/luns> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

至此,iscsi设备已经配置完毕。

3.3 设置授权

虽然现在已经配置完毕,但是使用iSCSI发起程序直接连接,会提示“授权失败”。
观察/var/log/messages日志文件,显示

Jan 15 16:40:17 bogon kernel: iSCSI Initiator Node: iqn.1991-05.com.microsoft:honor-magicbook14 is not authorized to access iSCSI target portal group: 1.
Jan 15 16:40:17 bogon kernel: iSCSI Login negotiation failed.

问题出在没有授权上。
本机名为iqn.1991-05.com.microsoft:honor-magicbook14,所以需要对本机进行授权

# 进入命令行
cd targetcli

# 进入到目标的TPG 1
cd /iscsi/iqn.2024-01.cn.foxhank:mytarget/tpg1/acls/

# 创建新的ACL授权发起程序访问
create iqn.1991-05.com.microsoft:honor-magicbook14

# 保存配置并退出
saveconfig
exit

然后在Windows系统中打开iSCSI发起程序(开始/Windows工具/iSCSI发起程序),目标栏中输入服务器ip地址,随后点击“快速链接”。
若成功,状态就变成“已连接”

随后进入计算机管理/磁盘管理中,就可以看到一块新磁盘
image

初始化此硬盘,新建一个简单卷并指定盘符,随后就可使用此块硬盘了。
image
image
由于我的服务端存在瓶颈,速度不是很快,但也能接受,拿来存一些冷数据还是很好的
image

标签:Hyper,Centos,创建,Iscsi,dev,mylv,vgroup1,设置,iSCSI
From: https://www.cnblogs.com/foxhank/p/17966024

相关文章

  • centos 开机自启动设置
    #进入/etc/init.d/cd/etc/init.d/#创建启动脚本touchstart.sh#编写启动脚本前三行为必填vim start.sh#!/bin/bash#chkconfig:-8515#description:开机自启脚本<F2>/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf#开启自动方式一:/usr/lib/sy......
  • element-forge在Linux Centos中打包构建时遇到的异常问题解决方案
    环境:LinuxCentOS8x64electron:27.1.0electron-forge:7.1.0electrondev依赖包"devDependencies":{"@electron-forge/cli":"^7.1.0","@electron-forge/maker-deb":"^7.1.0","@electron-forge/maker-rpm&quo......
  • Centos7 yum方式安装 mysql 5.6
    Centos7安装mysql5.6[root@server1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.4.1708(Core)[root@server1~]#uname-r3.10.0-693.el7.x86_64一、安装MySQL前准备1)查看系统是否存在旧版本rpm-qa|grepmysql可能出现一到多个结果,也可能没有2)卸载旧版......
  • Centos创建一个Python虚拟环境
      在CentOS上创建一个Python虚拟环境,可以使用virtualenv工具。以下是创建和激活虚拟环境的基本步骤:1.安装virtualenv  如果还没有安装virtualenv,可以使用以下命令安装:sudo yum install python3-virtualenv  请注意,这里假设使用的是Python3。如果使用的是Py......
  • Centos部署xxl-job记录
    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,使用JAVA语言开发,底层依赖mysql1、安装MySQL1.下载MySQLyum包wgethttp://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm2.安装MySQL源rpm-Uvhmysql57-community-rele......
  • 用实验来证实CentOS7中yum之update与upgrade之间的异同
    一、实验环境主机IP:10.1.1.21与10.1.1.22操作系统版本:CentOSLinuxrelease7.2.1511(Core)内核版本:3.10.0-327.el7.x86_64二、实验过程1.检查2台机器的初始环境。[root@GeekDevOps~]#cat/etc/redhat-releaseCentOSLinuxrelease7.2.1511(Core)[root@GeekDevOps~]#......
  • centos安装gcc 4.9.4 版本
    系统:centos7.6因为在安装hyperf热加载时需要用到fswatch,安装fswatch需要gcc4.9以上的版本,但是系统自带的gcc只有4.8的版本,所以我们需要安装4.9的,这里我安装的是4.9.4的版本:yuminstall-ygccgcc-c++#因为我有自带的gcc所以不用安装,如果没有的话。需要先安装yum自带的gcc......
  • hyperf 3.1安装和配置php-zookeeper扩展
    Hyperf提供了分布式系统的外部化配置支持,默认适配了:由携程开源的 ctripcorp/apollo,由 hyperf/config-apollo 组件提供功能支持。阿里云提供的免费配置中心服务 应用配置管理(ACM,ApplicationConfigManager),由 hyperf/config-aliyun-acm 组件提供功能支持。ETCDNac......
  • Centos安装docker步骤
    安装docker1、Docker要求CentOS系统的内核版本高于3.10,查看本页面的前提条件来验证你的CentOS版本是否支持Docker。  通过uname-r命令查看你当前的内核版本:$uname-r2、使用root权限登录Centos。确保yum包更新到最新。   $sudoyumupdate移除旧......
  • CentOS7虚拟机突然远程连不上了
    1、检查一下本机的VMnet82、看一下跟虚拟机配置的网了是不是同一个网段3、如果不是编辑一下VMnet8......