[内容] Linux 常见存储和存储类型介绍

内容一:常见的存储

1) DAS(直连存储),就是接在主板上的硬盘
2) NAS(网络附加存储),例如:NFS、Samba、FTP、HTTP,优点是管理简单,缺点是单点故障
3) SAN(网络块存储),例如:Iscsi
4) 分布时云存储,例如:Ceph、Swift

内容二:常见的存储类型

1) Block-based access(基于块存储的访问),对应的是块存储(block),例如:直接接在主板上的硬盘、Iscsi、Ceph
2) File-based access(基于文件系统的访问),对应的是文件系统存储(filesystem),例如:NFS、Samba、FTP、HTTP、Ceph
3) Object-based access(基于对象的访问),对应的是对象存储(object),例如:Ceph

[内容] Linux 格式化特点

内容一:格式化后会产生的分区

格式化会格式出 inode 区和 block 区

内容二:inode 区和 block 区的作用

inode 区默认一格大小是 512 个字节,存储哪一份数据存在了哪些 block 里以及数据的所属者、权限创建时间等 metadata 元数据
block 区默认一格大小是 4k,只存储数据本身

内容三:Linux 文件格式的特点

ext3 和 ext4 的 inode 区每一格较小,而 xfs 的 inode 区每一格更大,可以存储更多种类,例如快照等 metadata 元数据

[项目] server.scripts.os_sub.py(LOAMAW v1.0)

import subprocess

def script_os_distributor(os_distributor_server):
    distributor_out = subprocess.check_output('ansible -m shell -a \'lsb_release -a\' %s | grep \'Distributor ID:\' | awk -F\':\' \'{print $2}\''%os_distributor_server, shell=True)
    return distributor_out

def script_os_release(os_release_server):
    release_out = subprocess.check_output('ansible -m shell -a \'lsb_release -a\' %s | grep \'Release:\' | awk -F\':\' \'{print $2}\''%os_release_server, shell=True)
    return release_out

def script_os_kernel(os_kernel_server):
    kernel_out = subprocess.check_output('ansible -m shell -a \'uname -r\' %s | grep \-'%os_kernel_server, shell=True)
    return kernel_out

def script_os_uptime(os_uptime_server):
    uptime_out = subprocess.check_output('ansible -m shell -a \'uptime\' %s | grep \, | awk \'{print $3,$4}\' | awk -F\',\' \'{print $1}\''%os_uptime_server, shell=True)
    return uptime_out

[项目] server.scripts.nc_sub.py(LOAMAW v1.0)

import subprocess

def script_nc_name(space_nc_name):
    nc_name_out = subprocess.check_output('ansible -m shell -a \'ifconfig\' %s | ifconfig | egrep flags= | awk \'{print $1}\' | awk -F\':\' \'{print $1}\''%space_nc_name, shell=True)
    return nc_name_out

def script_nc_ip(space_nc_name):
    nc_ip_out = subprocess.check_output('ansible -m shell -a \'ifconfig\' %s | egrep \"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\" | awk \'{print $2}\''%space_nc_name, shell=True)
    return nc_ip_out

[项目] server.scripts.mem_sub.py(LOAMAW v1.0)

import subprocess

def script_mem_size(sname):
    mem_size_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $2}\''%sname, shell=True)
    return(mem_size_out)

def script_mem_usage(sname):
    mem_usage_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $3}\''%sname, shell=True)
    return(mem_usage_out)

def script_mem_idleness(sname):
    mem_idleness_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $4}\''%sname, shell=True)
    return(mem_idleness_out)