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


Storage 종류



{| cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" style="line-height: 20.8px;" |- | width="30%" align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | Storage | width="70%" align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | 상세 |- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | DAS
(Direct Attached Storage)
|
|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | NAS
(Network Attached Storage)
| File Storage
  • 이더넷으로 클라이언트와 통신
  • NFS (Network File System) 지원
  • CIFS (Common Internet File System) 방식 지원

- Windows에서 네트워크 드라이브로 연결
- SMB (Server Message Block)의 확장 프로토콜

|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | 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

- [http://technet.microsoft.com/ko-kr/library/cc754350.aspx](http://technet.microsoft.com/ko-kr/library/cc754350.aspx)
- [http://blog.cuongnv.com/2009/11/windows-7-client-for-nfs-and-user-name.html](http://blog.cuongnv.com/2009/11/windows-7-client-for-nfs-and-user-name.html)
- [http://pic.dhe.ibm.com/infocenter/sonasic/sonas1ic/index.jsp?topic=%2Fcom.ibm.sonas.doc%2Fusgr_cnnctng_via_nfs_frm_wndws.html](http://pic.dhe.ibm.com/infocenter/sonasic/sonas1ic/index.jsp?topic=%2Fcom.ibm.sonas.doc%2Fusgr_cnnctng_via_nfs_frm_wndws.html)
- Windows Service for Unix : [http://www.zosel.net/entry/nfs-client-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95-with-SFUWindows-Service-For-Unix-window](http://www.zosel.net/entry/nfs-client-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95-with-SFUWindows-Service-For-Unix-window)

``` 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)
    {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="20%" align="center" valign="middle" style="background-color:#eee;"|저장 방식 |width="80%" align="center" valign="middle" style="background-color:#eee;"|상세 |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 0 |
  • Striping (스트라이핑)
  • 하나의 데이터를 여러개의 디스크에 분산하여 저장
  • 장점 : 빠른 I/O
  • 단점 : 낮은 안정성
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 1 |
  • Mirroring (미러링)
  • 하나의 데이터를 두개의 디스크에 중복하여 저장
  • 장점 : 데이터의 안전성 보장
  • 단점 : Disk의 저장 용량의 50% 감소
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 3 |
  • Disk 3개와 별도의 패리티 디스크로 구성, 순차적 파일 저장에 유리
  • 장점 : 1개의 디스크 손상을 복구, 서비스 무중단
  • 단점 : 디스크 한개만큼 용량 감소
  • RAID 3 + Spare : Disk 3개 중 하나가 비어 있고 하나의 디스크 장애시 이 빈 디스크를 사용하여 복구
  • 단점 : 디스크 2개만큼 용량 감소
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 4 |
  • Parity
  • N - 1개의 그룹은 데이터를 저장하고 1개의 그룹은 parity 데이터를 저장
  • 장점 : RAID 0 대비 높은 안정성, RAID 1 대비 뛰어난 성능
  • 단점 : 쓰기시 부하가 걸림
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 5 |
  • Distribute Parity
  • RAID 4와 유사하나 Parity disk가 그룹별로 분산 되어 있음
  • 최소 3개 이상의 디스크에서 특정 블록을 패리티 블록으로 사용, 무작위 읽기에 유리
  • 장점 : RAID 4 대비 병목 현상을 줄임
  • 장점 : 1개의 디스크 손상을 복구, 서비스 무중단
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID Level 6 |
  • 두개의 패리티 블록을 사용
  • RAID 5에서 Parity disk를 2개씩 가져감
  • 장점 : RAID 5 대비 안정성 증가 (디스크 2개까지의 손상을 허용)
  • 단점 : RAID 5 대비 비용 증가
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID 0 + 1 |
  • RAID 0를 먼저 적용하고 RAID 1을 적용
    |- |align="center" valign="middle" style="background-color:#eee;"|RAID 10 |
  • RAID 1 + 0
  • 미러링된 세트의 스트라이프
  • RAID 1를 먼저 적용하고 RAID 0을 적용
    |- |align="center" valign="middle" style="background-color:#eee;"|JBOD |
  • Just a Bunch Of Disks
  • 여러개의 디스크를 하나의 논리적인 디스크로 결합
    |- |align="center" valign="middle" style="background-color:#eee;"|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 구조
- [http://ko.wikipedia.org/wiki/고급_호스트_컨트롤러_인터페이스](http://ko.wikipedia.org/wiki/고급_호스트_컨트롤러_인터페이스)
- NCQ(Native Command Queuing) : SATA 장치의 성능을 향상하기 위해 입출력(I/O) 요청을 우선 큐에 보관한 다음, 전체 헤드의 움직임을 최소화할 수 있도록 요청의 순서를 재배열한 다음 실행하는 방식
- [http://ko.wikipedia.org/wiki/NCQ](http://ko.wikipedia.org/wiki/NCQ)

- *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 칩을 회로 기판 위에 탑재한 메모리 모듈
- [http://ko.wikipedia.org/wiki/DIMM](http://ko.wikipedia.org/wiki/DIMM)
- ECC (Error-Correcting Code) : 입력 테이타에 일정한 redundancy를 추가해 error를 검출 및 수정하는 code
- [http://huniv.hongik.ac.kr/~ginnie/datacomm/ecc.htm](http://huniv.hongik.ac.kr/~ginnie/datacomm/ecc.htm)


참고 문헌
- [http://cafe.naver.com/neteg/76087](http://cafe.naver.com/neteg/76087)
- http://it.donga.com/21865/


iSCSI


참고 문헌
- [http://support.serends.com/tiki-browse_freetags.php?tag=iSCSI](http://support.serends.com/tiki-browse_freetags.php?tag=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
{| border="1" cellspacing="0" cellpadding="1" style="width:100%;" |- | style="text-align: center; background-color: rgb(153, 153, 153);" | ID | style="text-align: center; background-color: rgb(153, 153, 153);" | Description |- | style="text-align: center;" | 83 | Linux |- | style="text-align: center;" | 8e | Linux LVM (Logical Volume Manager) |- | style="text-align: center;" | ee | GPT (GUID Partition Table) <--> MBR (Master Boot Record)
2 TB 이상의 Partition 지정 가능
|- | style="text-align: center;" | fd | Linux raid auto
|}


Partition 생성
yum -y install parted

1. --- parted /dev/vdb print
parted /dev/vdb   help [~](~.md)   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

1. --- 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 1. 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
1. 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

~# cd / /# mkdir data /# mount /dev/DataVG/data /data /# 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


- 참고 문헌

- [가상 하드 관리](VirtualBox.md#가상 하드 관리.md)
- [마운트 1 (기본사용법, NTFS마운트, 자동마운트 및 복구), 2010.10](http://ebonny.wordpress.com/2010/10/29/ntfs-%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%98%EA%B8%B0/)
- [http://faq.hostway.co.kr/Linux_ETC/7437](http://faq.hostway.co.kr/Linux_ETC/7437)

### 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




참고 문헌
- [https://www.rndit.net/confluence/display/DEV/CentOS+LVM](https://www.rndit.net/confluence/display/DEV/CentOS+LVM)



### Resize disk
resize2fs /dev/mapper/VolGroup-lv_root
## File System
{| cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- | width="20%" align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | File System | width="80%" align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | 상세 |- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | Ext
(Extended File System)
| ext, ext2, ext3
ext4 (fourth extended filesystem)
|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | JFS
(Journaling File System)
| GNU GPL
백업 및 복구 능력이 뛰어난 파일 시스템 |- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | ZFS
(Zettabyte File Systems)
| [http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/Storage/NativeZFSOnLinux](http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/Storage/NativeZFSOnLinux)
|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | XFS | GNU GPL
mkfs.xfs
[http://xfs.org/index.php/Main_Page
](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


|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | ReiserFS |
|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | BtrFS
(B-tree File System)
|
|- | align="center" valign="middle" style="background-color: rgb(238, 238, 238);" | Others | FAT FS (File Allocation Table File System)
NTFS (New Technology File System) |}

참고 문헌
- [파일 시스템 목록](https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EB%AA%A9%EB%A1%9D)

## 분산 파일 시스템
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

```


용어 정의



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

참고 문헌



- [디스크와 파티션 관리하기, 2012.03](http://m.blog.daum.net/hur38think/17211950)
- [http://www.lacie.com/download/whitepaper/WP_RAID_kr.pdf](http://www.lacie.com/download/whitepaper/WP_RAID_kr.pdf)
- [http://skymeet.tistory.com/43](http://skymeet.tistory.com/43)

- NAS 참고 문헌

- [윈도우 기반 NFS 서버/클라이언트 구축 1](http://www.hanb.co.kr/network/view.html?bi_id=1512)
- [윈도우 기반 NFS 서버/클라이언트 구축 2](http://www.hanb.co.kr/network/view.html?bi_id=1513)
- [윈도우 기반 NFS 서버/클라이언트 구축 3](http://www.hanb.co.kr/network/view.html?bi_id=1514)
- Windows 용 NFS Server : [http://ko.sourceforge.jp/projects/sfnet_winnfsd/](http://ko.sourceforge.jp/projects/sfnet_winnfsd/) (오픈소스)
- winnfsd –id $uid $gid –log off $folder
- [http://technet.microsoft.com/ko-kr/library/dd758767(v=ws.10).aspx](http://technet.microsoft.com/ko-kr/library/dd758767(v=ws.10).aspx)
- [CentOS#NFS_설정](CentOS.md#NFS 설정.md)
- [UCloud#NFS](UCloud.md#NFS.md)
- [http://www.microsoft.com/en-us/download/details.aspx?id=7562](http://www.microsoft.com/en-us/download/details.aspx?id=7562)

- [FreeNAS](http://www.freenas.org/)
- [NAS4FREE](http://www.nas4free.org/)
- [Openmediavault](http://www.openmediavault.org/)
- [OpenFiler](http://www.openfiler.com/)
- [http://www.nexentastor.org/ Nexentastor], [http://nexenta.com/corp/downloads](http://nexenta.com/corp/downloads)
- [OpenMediaVault](http://www.openmediavault.org/)
- [시놀로지 NAS GPL](http://sourceforge.net/projects/dsgpl/)
- [QNAP NAS GPL](http://sourceforge.net/projects/qosgpl/)
- [Collection_of_NAS-Hacking_communities](http://www.nas-central.org/wiki/Collection_of_NAS-Hacking_communities)
[[Category:Storage|Category:Storage]]
분류: [Cloud](분류_Cloud.md)
공유하기