Storage

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Storage 관련 사항을 정리 합니다.

Storage 종류

Storage 상세
DAS
(Direct Attached Storage)

NAS
(Network Attached Storage)
File Storage
  • 이더넷으로 클라이언트와 통신
  • NFS (Network File System) 지원
  • CIFS (Common Internet File System) 방식 지원
  • Windows에서 네트워크 드라이브로 연결
  • SMB (Server Message Block)의 확장 프로토콜
SAN
(Storage Area Network)
Block Storage
  • 다수의 Storage와 Host를 스위치 패브릭으로 연결
  • Oracle의 OCFS (Oracle Cluster File System), Veritas의 Senergy, Red Hat의 GFS (Global File System)

NAS

NAS (Network Attached Storage)

  • NFS Client
mount  –u:$uid  –p:$passwd  $server:/c/$folder  $driver:
umount  k:				#--- unmount
showmount –e 서버			#--- NFS 서버 속성 보기
Sample) mount –u:kisinger –p:Imsi0000 daou-kisinger4:/c/SugarPro k:

RAID 구성

  • RAID (Redundant Array of Independents Disks)
저장 방식 상세
RAID Level 0
  • Striping (스트라이핑)
  • 하나의 데이터를 여러개의 디스크에 분산하여 저장
  • 장점 : 빠른 I/O
  • 단점 : 낮은 안정성
RAID Level 1
  • Mirroring (미러링)
  • 하나의 데이터를 두개의 디스크에 중복하여 저장
  • 장점 : 데이터의 안전성 보장
  • 단점 : Disk의 저장 용량의 50% 감소
RAID Level 3
  • Disk 3개와 별도의 패리티 디스크로 구성, 순차적 파일 저장에 유리
  • 장점 : 1개의 디스크 손상을 복구, 서비스 무중단
  • 단점 : 디스크 한개만큼 용량 감소
  • RAID 3 + Spare : Disk 3개 중 하나가 비어 있고 하나의 디스크 장애시 이 빈 디스크를 사용하여 복구
  • 단점 : 디스크 2개만큼 용량 감소
RAID Level 4
  • Parity
  • N - 1개의 그룹은 데이터를 저장하고 1개의 그룹은 parity 데이터를 저장
  • 장점 : RAID 0 대비 높은 안정성, RAID 1 대비 뛰어난 성능
  • 단점 : 쓰기시 부하가 걸림
RAID Level 5
  • Distribute Parity
  • RAID 4와 유사하나 Parity disk가 그룹별로 분산 되어 있음
  • 최소 3개 이상의 디스크에서 특정 블록을 패리티 블록으로 사용, 무작위 읽기에 유리
  • 장점 : RAID 4 대비 병목 현상을 줄임
  • 장점 : 1개의 디스크 손상을 복구, 서비스 무중단
RAID Level 6
  • 두개의 패리티 블록을 사용
  • RAID 5에서 Parity disk를 2개씩 가져감
  • 장점 : RAID 5 대비 안정성 증가 (디스크 2개까지의 손상을 허용)
  • 단점 : RAID 5 대비 비용 증가
RAID 0 + 1
  • RAID 0를 먼저 적용하고 RAID 1을 적용
RAID 10
  • RAID 1 + 0
  • 미러링된 세트의 스트라이프
  • RAID 1를 먼저 적용하고 RAID 0을 적용
JBOD
  • Just a Bunch Of Disks
  • 여러개의 디스크를 하나의 논리적인 디스크로 결합
HYPERDUO
  • 일반 HDD와 SSD를 RAID로 엮어서 속도 향상

Data 전송 방식

  • PATA (Parallel Advanced Tachnology Attachment, IDE) : 병렬 방식
  • SATA (Serial Advanced Technology Attachment, Serial ATA) : 직렬 방식
  • SATA 1 : 초당 150MB
  • SATA 2 : 초당 300MB
  • AHCI (Advanced Host Controller Interface) : SATA 장치들과 신호를 주고 받을 수 있는 H/W 구조
  • NCQ(Native Command Queuing) : SATA 장치의 성능을 향상하기 위해 입출력(I/O) 요청을 우선 큐에 보관한 다음, 전체 헤드의 움직임을 최소화할 수 있도록 요청의 순서를 재배열한 다음 실행하는 방식
    • SCSI (Small Computer System Interface) : 병렬 방식
  • iSCSI : Ethernet망에서 TCP/IP 상에 SCSI를 구현하는 기술
  • SAS (Serial Attached SCSI) : 직렬 방식
  • FC (Fibre Channel)
  • FCoE (Fibre Channel over Ethernet) : Ethernet망에서 TCP/IP를 사용하지 않고 SCSC를 구현하는 기술
    • 10Gb 이더넷 기반의 CEE/DCE는 해당 기능이 지원되는 Switch와 CNA가 필요
    • CEE (Converged Enhanced Ethernet) 또는 DCE (Data Centre Ethernet)를 지원하는 Ethernet 환경에서 동작
    • CNA (Converged Network Adapter) : NIC (Network Interface Card, Ethernet용 카드) 와 HBA (Host Bus Adaper, FC용 카드) 기능을 수행하는 네트워크 어댑터
  • Memory
  • DIMM (Dual In-Line Memory Module) : 여러 개의 DRAM 칩을 회로 기판 위에 탑재한 메모리 모듈
  • ECC (Error-Correcting Code) : 입력 테이타에 일정한 redundancy를 추가해 error를 검출 및 수정하는 code


참고 문헌

iSCSI

참고 문헌

Linux Storage

Disk 정보 조회

lsblk
lsblk --output "NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,LABEL"
fdisk -l
parted --list

blkid

df -h
df -m
du -m

Disk Partition

partition's system id

ID Description
83 Linux
8e Linux LVM (Logical Volume Manager)
ee GPT (GUID Partition Table) <--> MBR (Master Boot Record)
2 TB 이상의 Partition 지정 가능
fd Linux raid auto


Partition 생성

yum -y install parted

#--- parted /dev/vdb print
parted /dev/vdb
  help [~]
  mklabel gpt
  print
  quit

parted /dev/vdb mkpart primary xfs 0 100%
parted /dev/vdb print


Partition 생성

fdisk /dev/xvdb
//--- n p 1 엔터 엔터
//--- w
fdisk -l

RAID 생성

yum install mdadm
modprobe raid456

#--- RAID 0
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/vdd1 /dev/vde1
mdadm --detail --scan /dev/md0 >> /etc/mdadm.conf
mdadm --detail --scan
mdadm --detail /dev/md0

cat /proc/mdstat


RAID 삭제

mdadm --detail /dev/md0

mdadm -S /dev/md0
mdadm --zero-superblock /dev/vdd
mdadm --zero-superblock /dev/vde
# mdadm --remove /dev/md0


참고 문헌

LVM (Logical Volume Manager)

yum -y install lvm2 lvm2-*

fdisk /dev/sdb
//--- n p 1 엔터 엔터
//--- t 8e
//--- w
fdisk -l

pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -l 100%FREE -n lv_data vg_data

# lvcreate -L 19.99G -n lv_data vg_data
pvscan
pvdisplay

vgscan
vgdisplay

lvscan
lvdisplay

Disk format

yum -y install xfsprogs                            #--- For mkfs.xfs

mkfs.ext4 /dev/vg_data/lv_data
mkfs.xfs /dev/vg_data/lv_data


참고 문헌

Disk mount

  • 마운트
mkdir /nas
lvdisplay
mount /dev/vg_BigData001/lv_BigData001 /nas
### mount -t ext4 /dev/vg_BigData001/lv_BigData001 /nas
mount                #--- Mount 상태 보기
umount /dev/vg_BigData001/lv_BigData001
df -m

#--- 원격 파일 시스템 마운트
mount  -t  nfs  172.18.38.398:/vol/CCHDATA01A/diska  /user

#--- 윈도우 파일 시스템 마운트
mount -t cifs 윈도우_IP/diska /user/disk
  • mount : Disk Mount
[root@manage ~]# cd /
[root@manage /]# mkdir data 
[root@manage /]# mount /dev/DataVG/data /data
[root@manage /]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/xvda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/DataVG-data on /data type ext3 (rw)
  • 리부팅시 자동 마운트 설정
  • vi /etc/fstab
/dev/vg_BigData001/lv_BigData001  /nas  ext4  defaults  1  2
  • vi /etc/fstab : 리부팅시 자동 마운트 설정

[root@manage /]# vi /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
/dev/DataVG/data        /data                   ext3    defaults        1 2

#--- 반드시 fdisk -l로 확인한 /dev/mapper/vg_data-lv_data 를 입력할 것
/dev/mapper/vg_data-lv_data /data               xfs     defaults        0 0

  • 참고 문헌

NTFS Mount

  • 작업 환경
CentOS 6.5가 설치된 노트북에 2개의 디스크가 있고 그 중 하나는 NTFS로 포맷되어 Windows에서 사용 중
  • NTFS 디스크 마운트 하기
  • 우선 마운트를 하기 위해서 EPEL을 설정하고 NTFS 마운트용 패키지를 설치 합니다.
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum install ntfs-3g
  • NTFS로 포맷된 디스크(/dev/sdb1)를 마운트 합니다.
mkdir /ntfs
mount -t ntfs-3g /dev/sdb1 /ntfs
  • Linux를 새로 부팅할 때 자동으로 마운트 되기를 원하면 아래와 같이 설정 합니다.
vi /etc/fstab
/dev/sdb1 /ntfs ntfs-3g defaults 0 0


참고 문헌


Resize disk

resize2fs /dev/mapper/VolGroup-lv_root

File System

File System 상세
Ext
(Extended File System)
ext, ext2, ext3
ext4 (fourth extended filesystem)
JFS
(Journaling File System)
GNU GPL
백업 및 복구 능력이 뛰어난 파일 시스템
ZFS
(Zettabyte File Systems)
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/Storage/NativeZFSOnLinux
XFS GNU GPL
mkfs.xfs
http://xfs.org/index.php/Main_Page
mkfs.xfs -f -b size=512 -l size=32768b -d agcount=1 -n size=16k /dev/sdb1 ;\
mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
ReiserFS
BtrFS
(B-tree File System)

Others FAT FS (File Allocation Table File System)
NTFS (New Technology File System)

참고 문헌

분산 파일 시스템

GlusterFS

Ceph

FreeNAS

Lustre

가상 디스크

  • 이미지 생성
qemu-img create -f qcow2 -o preallocation=metadata test.qcow2 100G
  • 이미지 용량 증가
VBoxManage  modifyhd  ~.vdi  --resize 20480
  • 이미지 용량 감소
qemu-img convert -c -O qcow2 source.qcow2 target.qcow2
VBoxManage  modifyhd ~.vdi  --compact
  • 이미지 복제
VBoxManage clonevdi 원본.vdi  타겟.vdi
VBoxManage clonehd  ~.vmdk ~.vdi --format vdi
  • 이미지 포맷 변환
qemu-img convert -O vdi test.qcow2 test.vdi
  • 이미지 내용 수정
yum install guestfish -y
guestfish –rw -a /cloudimages/disk/CentOS-6.5.qcow2
  run
  list-filesystems
  mount /dev/sda1 /
  edit /etc/fstab
  exit

virt-edit centos-6.5-3 /etc/fstab

용어 정의

용어 상세
ROM Read Only Memory
MROM Mask ROM
메모리 생산시 한번만 write 가능
PROM
FPROM
Programmable ROM, Field Programmable ROM
사용자가 단 1회 write 가능
EPROM
UVEPROM
Erasable Programmable ROM, Ultra-Violet EPROM
자외선을 사용하여 재기록이 가능한 메모리
EEPROM Electrically Erasable Programmable ROM
전기신호를 사용하여 재기록이 가능한 메모리
Flash Memory 바이트 단위가 아닌 블록 단위 (512 Bytes 등)로 기록하는 EEPROM
Flash Memory : USB
NAND Flash Memory : SSD 방식의 하드디스크
RAM Random Access Memory
DRAM Dynamic RAM. 정기적으로 refresh가 필요
일반 PC 메모리로 사용
SRAM Static RAM
CPU의 캐시 메모리로 사용
NVRAM Non-Volatile RAM
전원이 차단 되어도 데이터가 사라지지 않는 RAM
방식 1 : 외부 배터리 방식
방식 2 : EEPROM과 연동 방식

참고 문헌

  • NAS 참고 문헌
  • winnfsd –id $uid $gid –log off $folder