存储+调优:存储-IP-SAN

存储+调优:存储-IP-SAN


数据一致性问题
    硬盘(本地,远程同步rsync)
    存储设备(网络)
    
网络存储
    不同接口的磁盘
    1.速率
    2.支持连接更多设备
    3.支持热拔插
存储设备什么互联
   千兆或者万兆的网卡 ip
   光纤网卡,光纤交换机 
   怎么解决大家都去访问存储设备数据的时候的一个竞争性问题
   尽可能减小网络延时,瓶颈不出在网络上
   I/O的效率更高一些


硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。

IDE
IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”
IDE最高的传输速度133 MB/S

SATA  
使用SATA(Serial ATA)口的硬盘又叫串口硬盘
SATA1.0 100MB/s
SATA2.0 7200rpm 3Gb/秒 

SCSI
SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口)
Ultra Wide SCSI        40MB
Ultra2 Wide SCSI    80MB
Ultra160 SCSI        160MB
Ultra320 SCSI         320MB

SAS(Serial Attached SCSI)即串行连接SCSI
SAS2 15000rpm 6.0Gb/秒 

固态硬盘(Solid State Disk、IDE FLASH DISK)
SATA3.0 500MB/s

DAS—直连式存储
  直连式存储依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常数据备份常常在深夜或业务系统不繁忙时进行,以免影响正常业务系统的运行。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。 
PC---> 主板---》接口---》数据总线---》硬盘

SCSI 小型计算机系统接口(直连式)
    1.SCSI协议信息
    2.本服务器承担I/O消耗
    


NAS(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。目前国际著名的NAS企业有Netapp、EMC、OUO等。

PC-----》交换机----------》  nfs | cifs     lvm     RAID

1.可扩展
2.I/O转移到网络


SAN(存储区域网络及其协议Storage Area Network and SAN Protocols)
  存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。一个 SAN 网络由负责网络连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统构成,从而保证数据传输的安全性和力度。 
SAN (NAS+DAS)


        PC
         |
         |
        交换机
             /    \
           /       \
       lvm      lvm
      raid      raid

1.SAN存储被前端使用存储的设备识别为块设备
2.需要实现在网络上传输scsi协议数据
3.光纤协议 FC

ISCSI------》 IP SAN
FC -------》 FC SAN

1.存储节点 iscsi_target
2.前端节点 iscsi_initiator


        -------       ----------
        server1        server2
        -------       ---------
      172.16.1.10       172.16.1.20
           \               /
             \            /
        交换机
              /           \
            /                \
      172.16.1.1       172.16.1.2
       -------           ------
       node1            node2
       --------          -------

node1  node2
[root@node1 ~]# yum install scsi-target-utils
[root@node1 ~]# vim /etc/tgt/targets.conf 
default-driver iscsi


# Continue if tgtadm exits with non-zero code (equivalent of
# --ignore-errors command line option)
#ignore-errors yes


# Sample target with one LUN only. Defaults to allow access for all initiators:

<target iqn.2012-02.com.uplooking:node1.target1>
    backing-store /dev/sdb
    vendor_id node1
    product_id storage1
    initiator-address 172.16.1.10
    initiator-address 172.16.1.20
</target>

[root@node1 ~]# service tgtd start
Starting SCSI target daemon: Starting target framework daemon
  
[root@node1 ~]# netstat -tunpl | grep tgtd
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      3710/tgtd           
tcp        0      0 :::3260                     :::*                        LISTEN      3710/tgtd           
[root@node1 ~]# tgt-admin --show
Target 1: iqn.2012-02.com.uplooking:node1.target1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 21475 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
    Account information:
    ACL information:
        172.16.1.10
        172.16.1.20


server1 server2

[root@server2 ~]# yum install iscsi-initiator-utils
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.1:3260
iscsiadm: can not connect to iSCSI daemon (111)!
iscsiadm: Could not scan /sys/class/iscsi_transport.
iscsiadm: Could not scan /sys/class/iscsi_transport.
iscsiadm: can not connect to iSCSI daemon (111)!
iscsiadm: Cannot perform discovery. Initiatorname required.
iscsiadm: Discovery process to 172.16.1.1:3260 failed to create a discovery session.
iscsiadm: Could not perform SendTargets discovery.

[root@server2 ~]# service iscsid start
Starting iSCSI daemon:                                     [  OK  ]
                                                           [  OK  ]
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.1:3260
172.16.1.1:3260,1 iqn.2012-02.com.uplooking:node1.target1
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.2:3260
172.16.1.2:3260,1 iqn.2012-02.com.uplooking:node2.target1

[root@server2 ~]# iscsiadm -m node -T iqn.2012-02.com.uplooking:node1.target1 -l
Logging in to [iface: default, target: iqn.2012-02.com.uplooking:node1.target1, portal: 172.16.1.1,3260]
Login to [iface: default, target: iqn.2012-02.com.uplooking:node1.target1, portal: 172.16.1.1,3260]: successful

[root@server2 ~]# iscsiadm -m node -T iqn.2012-02.com.uplooking:node2.target1 -l
Logging in to [iface: default, target: iqn.2012-02.com.uplooking:node2.target1, portal: 172.16.1.2,3260]
Login to [iface: default, target: iqn.2012-02.com.uplooking:node2.target1, portal: 172.16.1.2,3260]: successful


[root@server2 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2610    20860402+  8e  Linux LVM

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

[root@server2 ~]# udevinfo -a -p /sys/block/sdb/

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    SYSFS{stat}=="      17       27      352       51        0        0        0        0        0       51       51"
    SYSFS{size}=="41943040"
    SYSFS{removable}=="0"
    SYSFS{range}=="16"
    SYSFS{dev}=="8:16"

  looking at parent device '/devices/platform/host1/session1/target1:0:0/1:0:0:1':
    ID=="1:0:0:1"
    BUS=="scsi"
    DRIVER=="sd"
    SYSFS{ioerr_cnt}=="0x1"
    SYSFS{iodone_cnt}=="0x20"
    SYSFS{iorequest_cnt}=="0x20"
    SYSFS{iocounterbits}=="32"
    SYSFS{timeout}=="60"
    SYSFS{state}=="running"
    SYSFS{rev}=="0001"
    SYSFS{model}=="storage1"
    SYSFS{vendor}=="node1"
    SYSFS{scsi_level}=="6"
    SYSFS{type}=="0"
    SYSFS{queue_type}=="none"
    SYSFS{queue_depth}=="32"
    SYSFS{device_blocked}=="0"

  looking at parent device '/devices/platform/host1/session1/target1:0:0':
    ID=="target1:0:0"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform/host1/session1':
    ID=="session1"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform/host1':
    ID=="host1"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform':
    ID=="platform"
    BUS==""
    DRIVER==""

[root@server2 ~]# vim /etc/udev/rules.d/90-iscsi.rules
[root@server2 ~]# cat /etc/udev/rules.d/90-iscsi.rules
SUBSYSTEM=="block",  SYSFS{size}=="41943040", SYSFS{model}=="storage1", SYSFS{vendor}=="node1", SYMLINK="iscsi/node1-disk"
SUBSYSTEM=="block",  SYSFS{size}=="41943040", SYSFS{model}=="storage2", SYSFS{vendor}=="node2", SYMLINK="iscsi/node2-disk"
[root@server2 ~]# start_udev 
Starting udev:                                             [  OK  ]
[root@server2 ~]# ls -l /dev/iscsi/
total 0
lrwxrwxrwx 1 root root 6 Feb 23 01:35 node1-disk -> ../sdb
lrwxrwxrwx 1 root root 6 Feb 23 01:37 node2-disk -> ../sdc

[root@server2 ~]# scp /etc/udev/rules.d/90-iscsi.rules 172.16.1.10:/etc/udev/rules.d/


[root@server2 ~]# pvcreate /dev/iscsi/node1-disk 
  Physical volume "/dev/iscsi/node1-disk" successfully created
[root@server2 ~]# pvcreate /dev/iscsi/node2-disk 
  Physical volume "/dev/iscsi/node2-disk" successfully created
[root@server2 ~]# 
[root@server2 ~]# vgcreate vgiscsi /dev/iscsi/node1-disk /dev/iscsi/node2-disk
  /dev/hdc: open failed: Read-only file system
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "vgiscsi" successfully created
[root@server2 ~]# 
[root@server2 ~]# lvcreate -l 250 -n lviscsi vgiscsi
  /dev/hdc: open failed: Read-only file system
  Logical volume "lviscsi" created

[root@server1 ~]# pvscan 
  PV /dev/sdc   VG vgiscsi   lvm2 [20.00 GB / 19.02 GB free]
  PV /dev/sdd   VG vgiscsi   lvm2 [20.00 GB / 20.00 GB free]
  Total: 2 [39.99 GB] / in use: 2 [39.99 GB] / in no VG: 0 [0   ]
[root@server1 ~]# vgchange -ay vgiscsi
  1 logical volume(s) in volume group "vgiscsi" now active
[root@server1 ~]# lvs
  LV      VG      Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  lviscsi vgiscsi -wi-a- 1000.00M   

[root@server2 ~]# yum install gfs2-utils
[root@server2 ~]# yum install kmod-gfs
[root@server2 ~]# modprobe gfs
[root@server2 ~]# lsmod | grep gfs
gfs                   269540  0 
gfs2                  349833  1 lock_dlm
dlm                   113749  12 gfs,lock_dlm
configfs               28753  2 dlm

[root@server2 ~]# mkfs.gfs2 -t iscsi_cluster:lvsicsi -p lock_nolock /dev/vgiscsi/lviscsi 
This will destroy any data on /dev/vgiscsi/lviscsi.

Are you sure you want to proceed? [y/n] y

Device:                    /dev/vgiscsi/lviscsi
Blocksize:                 4096
Device Size                0.98 GB (256000 blocks)
Filesystem Size:           0.98 GB (255997 blocks)
Journals:                  1
Resource Groups:           4
Locking Protocol:          "lock_nolock"
Lock Table:                "iscsi_cluster:lvsicsi"
UUID:                      220DA71F-D2B2-23FC-BE5E-66F90A104D34


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/633820.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iOS 17.5 release notes

文章目录 iOS 17.5 更新恢复了多年前删除的一些图片新增彩虹壁纸欧盟用户可直接从网站下载应用新增了追踪通知改进 Apple News图书应用"阅读目标"设计更新颜色匹配的播客小部件Web浏览器安全权限的访问下一代“Beats Pill”扬声器在iOS 17.5代码中得到确认店内Vision…

学硕都考11408的211院校!河北工业大学计算机考研考情分析!

河北工业大学&#xff08;Hebei University of Technology&#xff09;&#xff0c;简称河北工大&#xff0c;坐落于天津市&#xff0c;由河北省人民政府、天津市人民政府与中华人民共和国教育部共建&#xff0c; 隶属于河北省&#xff0c;是国家“双一流”建设高校、国家“211…

企业微信主体机构如何修改?

企业微信变更主体有什么作用&#xff1f; 做过企业运营的小伙伴都知道&#xff0c;很多时候经常会遇到现有的企业需要注销&#xff0c;切换成新的企业进行经营的情况&#xff0c;但是原来企业申请的企业微信上面却积累了很多客户&#xff0c;肯定不能直接丢弃&#xff0c;所以这…

OpenAI宫斗剧番外篇: “Ilya与Altman联手对抗微软大帝,扫除黑恶势力”,“余华”和“莫言”犀利点评

事情是这样的。 小编我是一个重度的智谱清言用户&#xff0c;最近智谱清言悄悄上线了一个“划词引用”功能后&#xff0c;我仿佛打开了新世界的大门。我甚至用这个小功能&#xff0c;玩出来了即将为你上映的《OpenAI宫斗剧番外篇》。 3.5研究测试&#xff1a;hujiaoai.cn 4研…

Stable Diffusion vs Midjunery的区别和选择

现在网上最多的关于AI绘画的工具莫过于stable diffusion&#xff08;sd&#xff09;和midjunery&#xff08;mj&#xff09;了&#xff0c;最近尝试了一番&#xff0c;稍作总结吧算是。我们对于工具的使用通常考虑的无非就是好不好用&#xff0c;效果如何&#xff0c;当然还有费…

学习_C语言下使用ringbuffer实现任意数据类型的FIFO

思考及注意看&#xff1a;调试中的任意。 https://www.cnblogs.com/dreamboy2000/p/12982423.html

Mac虚拟机工具 CrossOver 24.0.0 Beta3 Mac中文版

CrossOver是一款在Mac上运行Windows应用程序的软件&#xff0c;无需安装虚拟机或重启计算机&#xff0c;简化了操作过程&#xff0c;提高了工作效率&#xff0c;为用户带来便捷体验。前往Mac青桔下载&#xff0c;享受前所未有的便利和高效。摘要由作者通过智能技术生成 CrossOv…

vulnhub靶场之FunBox-7

一.环境搭建 1.靶场描述 Boot2root in 6 steps for script-kiddies.Timeframe to root this box: 20 mins to never ever. Its on you.HINTS: Enum without sense, costs you too many time:Use "Daisys best friend" for information gathering. Visit "Karl…

使用决策树对金融贷款数据进行分析

使用决策树对金融贷款数据进行分析 在本篇博客中&#xff0c;我们将通过使用 Python、Pandas 和多种机器学习技术&#xff0c;对一组贷款数据进行全面分析。通过详细的步骤展示&#xff0c;你将学会如何进行数据预处理、可视化分析以及构建预测模型。 第一步&#xff1a;导入…

vscode添加代办相关插件,提高开发效率

这里写目录标题 前言插件添加添加TODO Highlight安装TODO Highlight在项目中自定义需要高亮显示的关键字 TODO Tree安装TODO Tree插件 单行注释快捷键 前言 在前端开发中&#xff0c;我们经常会遇到一些未完成、有问题或需要修复的部分&#xff0c;但又暂时未完成或未确定如何处…

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…

多线程(八)

一、wait和notify 等待 通知 机制 和join的用途类似,多个线程之间随机调度,引入 wait notify 就是为了能够从应用层面上,干预到多个不同线程代码的执行顺序.( 这里说的干预,不是影响系统的线程调度策略 内核里的线程调度,仍然是无序的. 相当于是在应用程序…

RA-RISK ANALYSIS

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、咨询 一、期刊简介 Risk Analysis代表风险分析学会出版&#xff0c;在ISI期刊引文报告中的社会科学、数学方法类别中排名前10位&#xff0c;为风险分析领域的新发展提供了焦点。这本国际同行评审期刊致力于发表…

VC++学习(3)——认识MFC框架,新建项目,添加按钮

目录 引出第三讲 MFC框架新建项目Windows搜索【包含内容的搜索】如何加按钮添加成员变量添加成功 添加按钮2杂项 总结 引出 VC学习&#xff08;3&#xff09;——认识MFC框架&#xff0c;新建项目&#xff0c;添加按钮 MFC(Microsoft Foundation Classes)&#xff0c;是微软公…

基于springboot+vue的学生考勤管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(九)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 16 节&#xff09; P16《15.ArkUI-状态管理-任务统计案例》 1、实现任务进度卡片 怎么让进度条和进度展示文本堆叠展示&#xff1…

【UE5.1 多线程 异步】“Async Blueprints Extension”插件使用记录

目录 一、异步生成Actor示例 二、异步计算示例 参考视频 首先需要在商城中下载“Async Blueprints Extension”插件 一、异步生成Actor示例 2. 创建一个线程类&#xff0c;这里要指定父类为“LongAsyncTask”、“InfiniteAsyncTask”、“ShortAsyncTask”中的一个 在线程类…

KVM虚拟化基础

一、虚拟化基础 1.传统物理机部署方案 IDC机房优点&#xff1a; IDC机房是分布式的&#xff0c;是全国连锁的。我们将物理服务器部署到IDC机房&#xff0c;由IDC机房帮我们上架服务&#xff0c;管理其内部的网络以及路由转发、服务器资源的分发&#xff1b;而且IDC机房带宽接…

运行Android项目时,提示错误: 程序包javax.annotation.processing不存在

今天在运行项目时提示错误: 错误: 程序包javax.annotation.processing不存在 import javax.annotation.processing.Generated; 最后是修改了Android Studio的JDK的路径修改为你安装的JDK路径&#xff0c;完成的修复&#xff1a;

JPHS-JMIR Public Health and Surveillance

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 JMIR Public Health and Surveillance是一本多学科期刊&#xff0c;专注于公共卫生创新与技术的交叉领域&#xff0c;包括公共卫生信息学、监测&#xff08;监测系统和快速报告&#xff…