ceph iscsi (SCST)

简介:

ceph结合iscsi

iscsi Target 安装

1、安装SCST

  • tar -jxf scst-3.0.1.tar.bz2
  • cd scst-3.0.1
  • make && make install

2、安装iscsi-scst

  • tar -jxf iscsi-scst-3.0.1.tar.bz2
  • cd iscsi-scst-3.0.1
  • make && make install

3、安装scstadmin

  • tar -jxf scstadmin-3.0.1.tar.bz2
  • cd scstadmin-3.0.1
  • make && make install

4、载入内核

  • modprobe scst
  • modprobe scst_vdisk
  • modprobe iscsi-scst

5、启动进程

  • /etc/init.d/scst start
  • /usr/local/sbin/iscsi-scstd

配置Target

1、创建target:

  • scstadmin -add_target {TARGET_NAME} -driver iscsi

2、激活target:

  • enable系统scst: echo 1 > /sys/kernel/scst_tgt/targets/iscsi/enabled

3、激活target:

  • scstadmin -enable_target {TARGET_NAME} -driver iscsi

4、创建ceph rbd并映射到系统:

  • rbd create --size 10240 rbd/{RBD_NAME}

5、映射到系统:

  • rbd map rbd/{rbd_name}

6、分配Lun(logic unit number)

  • 创建lun: scstadmin -open_dev {自定义DEVNAME} -handler vdisk_blockio -attributes filename=/dev/rbd/rbd/{RBDNAME}

7、将lun加入target端【lun 号,这个号必须在这个机器唯一】:

  • scstadmin -add_lun 0 -driver iscsi -target {TARGETNAME} -device {'6'中定义的DEVNAME}

8、写入配置文件

  • scstadmin -write_config /etc/scst.conf

9、启停服务命令

  • service scst start/stop/restart/status

在Initiator端测试Target配置 ### [open-iscsi initiator-utils提供的管理命令为iscsiadm]

1、查找target:

  • iscsiadm -m discovery -t st -p {TARGET_IP}

2、连接target:

  • iscsiadm -m node -T {TARGET_NAME} -p {TARGET_IP}:{PORT,default:3260} -l

3、登出target:

  • iscsiadm -m node -T {TARGET_NAME} -p {TARGET_IP}:{PORT,default:3260} -u

4、查看已连接的target

  • iscsiadm -m session

5、lsscsi命令查看target端的lun映射的块设备

  • lsscsi

6、断开所有targets的连接

  • iscsiadm -m node --logoutall=all

iscsi 认证

1、使用iscsiadm命令对登录某个target的CHAP认证参数进行修改

  • iscsiadm -m node -T {TARGET_NAME} -p {TARGET_IP}:{PORT,default:3260} -o update --name=node.session.auth.authmethod --value=CHAP
  • iscsiadm -m node -T {TARGET_NAME} -P {TARGET_IP}:{PORT, default:3260} -o update --name=node.session.auth.username --value={USERNAME}
  • iscsiadm -m node -T {TARGET_NAME} -P {TARGET_IP}:{PORT, default:3260} -o update --name=node.session.auth.password --value={PASSWORD} #强制至少12个字符

多路径配置

1、编辑/etc/multipath.conf

# This is a template multipath-tools configuration file
# Uncomment the lines relevent to your environment

defaults {
    udev_dir /dev
    polling_interval 10
    selector "round-robin 0"
    path_grouping_policy multibus
    getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
    prio const
    path_checker directio
    rr_min_io 100
    flush_on_last_del no
    max_fds 8192
    rr_weight priorities
    failback immediate
    no_path_retry fail
    queue_without_daemon no
    user_friendly_names no
    mode 644
    uid 0
    gid disk
}

blacklist {
    wwid 26353900f02796769
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^hd[a-z][[0-9]*]"
    device {
        vendor DEC.*
        product MSA[15]00
    }
}

blacklist_exceptions {
    devnode "^dasd[c-d]+[0-9]*"
    wwid "IBM.75000000092461.4d00.34"
}

2、启动multipath-tool 进程

  • 安装multipath: yum install -y device-mapper-multipath.x86_64
  • 启动multipath-tools: systemctl start multipathd
  • 查看多路径:multipath -ll

Q&A

1、scst target开机无法自启动问题:

  • 修改/etc/scst.conf文件:

    TARGET_DRIVER iscsi {
        enabled 0
    }
    
  • 更改scstadmin-3.0.1的Makefile文件

    echo $$chr update-rc.d "$(1)" defaults;
    改为:
    $$chr update-rc.d "$(1)" defaults;
相关文章
|
Web App开发 Rust 算法
【密码学】一文读懂ChaCha20
好久没写新的加密算法的原理了, 这次所选取的加密算法结构比较简单, 一起来看一下吧。
10676 154
【密码学】一文读懂ChaCha20
|
8月前
|
人工智能 网络协议 NoSQL
在性能优化时,如何避免盲人摸象
盲人摸象最早出自于《大般涅槃经》,讲述一群盲人触摸大象的不同部位,由于每人触及部位不同,却各自认为自己摸到的才是大象的全部,并为此争吵。比喻对事物了解不全面,以偏概全。
690 29
在性能优化时,如何避免盲人摸象
|
消息中间件 运维 Serverless
商业版vs开源版:一图看懂云消息队列 RocketMQ 版核心优势
自建开源 RocketMQ 集群,为保证业务稳定性,往往需要按照业务请求的峰值去配置集群资源。云消息队列 RocketMQ 版 Serverless 实例通过资源快速伸缩,实现资源使用量与实际业务负载贴近,并按实际使用量计费,有效降低企业的运维压力和使用成本。
1018 124
|
Java 测试技术 数据库
使用benchmarksql测试数据库处理能力
传统的OLTP业务,应用系统使用 java 开发,并且不建议使用存储过程,使用 benchmarksql 压测数据库最公平,既可以测试数据库性能,也可以测试JDBC驱动
993 88
|
弹性计算 算法 Linux
使用SM4算法加密LUKS格式磁盘
本文介绍了在Anolis 8操作系统使用cryptsetup对磁盘进行分区、加密和挂载的过程。采用SM4加密算法。具体步骤包括:初始化加密卷、解锁加密分区、格式化并挂载设备。最后,展示了如何取消挂载并关闭加密卷以确保数据安全。整个过程确保了磁盘数据的安全性和隐私保护。
1178 2
使用SM4算法加密LUKS格式磁盘
|
容器
Qt6学习笔记七(ToolButton、RadioButton、GroupBox、CheckBox、ListWidget、TreeWidget、TableWidget)
Qt6学习笔记七(ToolButton、RadioButton、GroupBox、CheckBox、ListWidget、TreeWidget、TableWidget)
914 0
|
Ubuntu
蓝易云 - 解决ubuntu文件系统变成只读的方法
请注意,上述操作可能会导致数据丢失,所以在操作前最好备份重要数据。如果问题依然存在,可能需要考虑更深入的系统诊断或者重装系统。
1132 1
|
算法 Go
Golang限流器time/rate正确打开姿势
本文详细探讨了 Go 语言限流工具 `golang.org/x/time/rate` 包下的 `Limiter` 类,并通过示例展示了如何使用该工具实现 QPS 限流功能。作者深入分析了 `Limiter` 的内部工作机制,揭示了其独特的算法设计,并指出了在动态调整限流参数时可能遇到的问题及解决方法。此外,还对比了该算法与传统令牌桶和滑动窗口算法的区别,总结了其优缺点。最后,作者给出了修正限流问题的具体代码示例。
408 0
Golang限流器time/rate正确打开姿势
|
NoSQL Java Redis
Redis 从入门到精通之Redis操作测试指定key是否存在
在Redis中,可以使用`EXISTS`命令来测试指定的key是否存在。 `EXISTS`命令的基本语法如下: ``` EXISTS key ``` 其中,`key`是要测试的key的名称。如果指定的key存在,命令返回1;如果指定的key不存在,命令返回0。jedis.exists("foo");RedisTemplate的操作,包括测试指定key是否存在。使用该类可以方便地进行Redis操作,而无需关注底层细节。`exists`方法使用`hasKey`方法测试指定key是否存在,如果存在,则返回true;如果不存在,则返回false。
2426 109
|
存储 前端开发 JavaScript
深入Web前端:栈与堆的优缺点全解析,让你大开眼界!
【8月更文挑战第23天】本文以问答形式解析了Web前端开发中至关重要的内存管理概念——栈与堆。栈采用后进先出(LIFO)原则存储执行上下文,适用于函数调用管理;而堆则灵活存储如对象和数组等复杂数据类型。栈操作迅速但访问受限,堆则提供动态空间分配但可能牺牲内存效率。理解两者特性有助于提升JavaScript编程技巧。
410 1