일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- vgcreate
- M365필터
- 리다이렉션
- nmcli
- HTTPD
- lvcreate
- docker network
- pvcreate
- Kubernetes
- chatGPT
- ssh
- permission
- swapon
- yum
- 프로세스
- 같은폴더
- ansible
- journalctl
- chmod
- MSBing
- 날짜변경
- docker
- mount
- 랜카드인식불량
- newbingai
- docker image
- firewalld
- vagrant kubernetes
- tar
- 엑셀파일명변경
- Today
- Total
becool
20210507(금) 본문
P921 SAN(Storage Area Network) iSCSI
SERVER_ filesystem -----(network)-----STORAGE : SAN
→ 별도의 스토리지를 준비하는 것이 일반적 (스토리지의 전체 공간을 활용하는 경우가 많음)
SERVER -----(network)----- filesystem_ STORAGE : NAS
→ 서버가 쓰던 공간 중 일부에 대해 공유 (정해진 공간만큼을 활용)
FC SAN: 광섬유 연결, 비용 ↑ 속도 ↑
IP SAN : IP프로토콜 기반, 비용↓ 속도 ↓ (iSCSI)
TCP/IP를 통해 SCSI 명령어를 LAN 또는 WAN에 위치한 스토리지 장치에 전달
Target : 물리적으로 스토리지와 직접 연결된 iSCSI 서버
Initiator : Target이 TCP/IP를 통해 공급하는 SAN을 이용하는 클라이언트. 최종사용자에겐 서비스를 제공하는 서버가 됨.
P923 패키지 설치
[root@host1 ~]# yum install targetcli -y
[root@host1 ~]# targetcli
/> [TAB] 명령어 리스트
/>
* / backstores/ iscsi/ loopback/
bookmarks cd clearconfig exit get
help ls pwd refresh restoreconfig
saveconfig sessions set status version
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0] : 주로 사용
| o- fileio ............................................. [Storage Objects: 0] : nfs처럼 자신의 디스크를 할당하여 서비스제공
| o- pscsi .............................................. [Storage Objects: 0] :
| o- ramdisk ............................................ [Storage Objects: 0] : ram을 디스크로 사용 (runtime)
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]
/>
/> backstores/block create dev=/dev/sdb name=blk1
Created block storage object blk1 using /dev/sdb.
/> backstores/fileio create file_or_dev=/home/user/iscsi_fileio size=1G name=blk2
Created fileio blk2 with size 1073741824
block : sdb 전체 세팅이므로 용량 세팅 없음
fileio : 서버의 일부 세팅이므로 용량 세팅 필요
/etc/target/saveconfig.json
/> iscsi/ create wwn=iqn.2021-05.net.example:host1
※ 이름설정 중요 : iqn + 날짜 + 도메인(도메인을 역순으로 기재 : target의 서브도메인)
ㄴ initiator에서 인식할 이름
Created target iqn.2021-05.net.example.host1
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 1]
| | o- blk1 ...................... [/dev/sdb (20.0GiB) write-thru deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- fileio ............................................. [Storage Objects: 1]
| | o- blk2 ........ [/home/user/iscsi_fileio (1.0GiB) write-back deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2021-05.net.example:host1................................. [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 0]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
/> iscsi/iqn.2021-05.net.example:host1/tpg1/acls create wwn=iqn.2021-05.net.example:host2
Created Node ACL for iqn.2021-05.net.example:host2
/> iscsi/iqn.2021-05.net.example:host1/tpg1/luns create /backstores/fileio/blk2
/> iscsi/iqn.2021-05.net.example:host1/tpg1/luns create /backstores/block/lvtargettest
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2021-05.net.example:host2
/> iscsi/iqn.2021-05.net.example:host1/tpg1/portals/ create 10.0.2.11
/> iscsi/iqn.2021-05.net.example:host1/tpg1/portals/ create 10.0.2.11 ip_port=0000 [3333을 사용하였음]
Created network portal 10.0.2.11:3333.
→ 위 ls화면에서 모든 인터페이스에 대해 3260를 사용하는것으로 되어있으므로 다르게 써야함.
/> iscsi/iqn.2021-05.net.example:host1/tpg1/portals/ delete 0.0.0.0 ip_port=3260
/> iscsi/iqn.2021-05.net.example:host1/tpg1/portals/ delete 10.0.2.11 ip_port=3333
/> iscsi/iqn.2021-05.net.example:host1/tpg1/portals/ create 10.0.2.11 ip_port=3260
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 1]
| | o- blk1 ...................... [/dev/sdb (20.0GiB) write-thru deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- fileio ............................................. [Storage Objects: 1]
| | o- blk2 .......... [/home/user/iscsi_fileio (1.0GiB) write-back activated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2021-05.net.example:host1 ................................. [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2021-05.net.example:host2 .................... [Mapped LUNs: 1]
| | o- mapped_lun0 ............................. [lun0 fileio/blk2 (rw)]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 ... [fileio/blk2 (/home/user/iscsi_fileio) (default_tg_pt_gp)]
| o- portals ................................................ [Portals: 1]
| o- 10.0.2.11:3260 ............................................... [OK]
o- loopback ..................................................... [Targets: 0]
/>
이상태로 재부팅하면 /etc/target/saveconfig.json 이 초기화됨.
systemctl enable target 이 필요함.
[root@host1 user]# firewall-cmd --add-port=3260/tcp
[root@host1 user]# firewall-cmd --add-port=3260/tcp --permanent
===================================
[root@host1 ~]# fdisk /dev/sdc :(sdc1 +5G, sdc2 +5G)
[root@host1 ~]# partprobe /dev/sdc1 (/dev/sdc2)
[root@host1 ~]# pvcreate /dev/sdc1
[root@host1 ~]# pvcreate /dev/sdc2
[root@host1 ~]# vgcreate vgmain /dev/sdc1 /dev/sdc2
[root@host1 ~]# lvcreate -n lvtest -L 9G vgmain
[root@host1 ~]# ls /dev/vgmain/lvtest
/dev/vgmain/lvtest
[root@host1 ~]# targetcli
/> backstores/block/ create dev=/dev/vgmain/lvtest name=lvtargettest
Created block storage object lvtargettest using /dev/vgmain/lvtest.
/> ls
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- blk1 ...................... [/dev/sdb (20.0GiB) write-thru deactivated]
| | | o- alua ............................................... [ALUA Groups: 1]
| | | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| | o- lvtargettest ..... [/dev/vgmain/lvtest (9.0GiB) write-thru deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
…
| o- iqn.2021-05.net.example:host1................................. [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2021-05.net.example:host2.................... [Mapped LUNs: 2]
| | o- mapped_lun0 ............................. [lun0 fileio/blk2 (rw)]
| | o- mapped_lun1 ...................... [lun1 block/lvtargettest (rw)]
| o- luns ...................................................... [LUNs: 2]
| | o- lun0 ... [fileio/blk2 (/home/user/iscsi_fileio) (default_tg_pt_gp)]
| | o- lun1 . [block/lvtargettest (/dev/vgmain/lvtest) (default_tg_pt_gp)]
| o- portals ................................................ [Portals: 1]
| o- 10.0.2.11:3260 ............................................... [OK]
o- loopback ..................................................... [Targets: 0]
/> exit
[root@host1 ~]# dd if=/dev/zero of=/home/user/fileA count=10 bs=1k
10+0 records in
10+0 records out
10240 bytes (10 kB) copied, 0.000255108 s, 40.1 MB/s
=====================================
P938 클라이언트 (initiator)
[root@host2 ~]# yum install iscsi-initiator-utils
[root@host2 ~]# vim /etc/iscsi/initiatorname.iscsi
- initiatorname = iqn.2021-05.net.example:host2
※ 네임 : targetcli 의 ls 화면에서 acls 아랫줄에 저장된 이름 hots2 이 initiator로 쓸 이름이다.
( iscsi 위에 있는 이름은 host의 이름)
※ 로그인할때 -T 는 iscsi위에 있는 host의 이름 host1 로 사용
[root@host2 ~]# iscsiadm -m discovery -t st -p 10.0.2.11 ① 검색 디스커버리
10.0.2.11:3260,1 iqn.2021-05.net.example:host1
[root@host2 ~]#
[root@host2 ~]# iscsiadm -m node -T iqn.2021-05.net.example:host1 -l ② l옵션 로그인
Logging in to [iface: default, target: iqn.2021-05.net.example:host1, portal : 10.0.2.11,3260] (multiple)
Login to [iface: default, target: iqn.2021-05.net.examplei:host1, portal : 10.0.2.11,3260] successful.
[root@host2 ~]# iscsiadm -m session -P 1
Target : iqn.2021-05.net.example:host1 (non-flash)
Current Portal: 10.0.2.11:3260,1
Persistent Portal: 10.0.2.11:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: iqn.2021-05.net.example:host2
Iface IPaddress: 10.0.2.12
Iface HWaddress: <empty>
Iface Netdev: <empty>
SID: 1
iSCSI Connection State: LOGGED IN
iSCSI Session State: LOGGED_IN
Internal iscsid Session State: NO CHANGE
lsblk - mkfs - /etc/fstab
[root@host2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
…
sdh 8:112 0 9G 0 disk
[root@host2 mnt]# mkfs -t ext4 /dev/sdh
[root@host2 mnt]# vim /etc/fstab
/dev/sdh /mnt ext4 _netdev 0 0
※ mount 시 유의 : ext4, xfs 등을 쓰지만 네트워크 공유 스토리지 이므로 /etc/fstab/에서 defaults 가 아닌 _netdev 로 설정
마운트 순서 iscsiadm -> mkfs -> mount
해제 순서 umount -> iscsiadm
[root@host2 ~]# iscsiadm -m node -T iqn.2021-05.net.example:host1 -u
Logging out of session [sid: 1, target: iqn.2021-05.net.example:host1, portal: 10.0.2.11,3260]
Logout of [sid: 1, target: iqn.2021-05.net.example:host1, portal: 10.0.2.11,3260] successful.
[root@host2 ~]# iscsiadm -m node -T iqn.2021-05.net.example:host1 -o delete
▶ 순서 : ACL에 맞는 이름 변경 후 검색(discovery) → 로그인 에 맞지 않게 진행한경우
검색 후 로그인을 하여도 인증되지 않음.
▶ 이 경우 -o delete 옵션을 통해 남아있는 initiator의 이름을 삭제, systemctl 서비스 재시작 등을 거친후에 다시 로그인을 시도해야한다. (iscsid.socket)
※ systemctl
iscsiadm 명령어를 쓰면 자동으로 start되며, 검색내용 갱신 할려면 로그아웃 뿐만 아니라 아래 두가지를 종료 후 재시작하여야함. (stop, restart, start)
[root@host2 ~]# systemctl status iscsid
[root@host2 ~]# systemctl status iscsid.socket
=================================================
P514 데이터베이스
SQL : 관계형 데이터베이스 : 정형화된 테이블형태의 데이터를 사용할때 주로 사용
Key value = no SQL database : 테이블형태로 정형화하지 않는경우 주로 사용 big data 분야
[root@host1 ~]# yum install mariadb mariadb-server -y
[root@host1 ~]# systemctl start mariadb
[root@host1 ~]# vim /etc/my.cnf
/usr/share/mysql/
/etc/mysql/my.cnf
[root@host1 ~]# firewall-cmd --add-service=mysql
[root@host1 ~]# mysql_secure_installation
-h --host : 원격접속용(로컬접속시 미사용)
-p --password : 패스워드
-u --user=name : 접속용 사용자 이름
[root@host1 ~]# mysql -u root -h localhost -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
…
P555 백업
mysqldump
백업
[root@host1 ~]# mysqldump -u root -p business > business.sql
Enter password:
mysqldump: Got error: 1049: "Unknown database 'business'" when selecting the database
[root@host1 ~]# mysqldump -u root -p -A >mariadb.dump
Enter password:
[root@host1 ~]# mysqldump -u root -p -A -r mariadb.dump (리다이렉션과 같음)
복원
[root@host1 ~]# mysql -u root -p < mariadb.dump
p561 복제/보안 (이중화)
'linux' 카테고리의 다른 글
20210622 (화) webservice (0) | 2021.06.22 |
---|---|
20210616 (수) dns, web서비스 (0) | 2021.06.16 |
20210506 (목) (0) | 2021.05.06 |
20210504(화) (0) | 2021.05.04 |
20210503 (월) (0) | 2021.05.03 |