공부?/국비 지원 일기장

46일차 - NFS, Samba, DB

무무요 2024. 9. 9. 17:46


=======

NFS(Network File System)
- 네트워크 상에서 파일시스템을 공유하도록 설계된 파일시스템
- 다른 서버의 파티션을 마치 내 로컬 영역인 것처럼 네트워크를 이용하여 사용할 수 있음
- 원격 마운트
- 공유 개념
- 유닉스 계열의 운영체제 끼리 공유하는 개념
- Samba와의 차이 = Samba는 로그인 계정을 만들어서 접속해야한다.
- 윈도우에선 N/W 드라이브 연결 이라고 한다.
- 리눅스는 마운트, 윈도우는 폴더에 탑재

NFS 실습

NFS Server 구성
1. NFS 패키지 설치
2. /etc/exports에 공유할 디렉터리와 접근을 허가할 컴퓨터 및 접근 권한 지정
3. NFS 실행

NFS-client 구성
1. NFS 패키지 설치
2. showmount 명령을 실행해 NFS 서버에 공유된 디렉터리가 있는지 확인
3. mount 명령을 실행해 NFS 서버에 공유된 디렉터리를 마운트

NFS Server(10.70.160.1)구성

# rpm –qa | grep nfs-utils
# dnf–y install nfs-utils

# vi /etc/exports
 /share *(rw,sync) => 저장 후 종료 * 자리에 특정 IP를 입력하면 그 IP만 허용한다는뜻 *는 모두 허용

# mkdir /share
# chmod 707 /share
# cp /root/anaconda-ks.cfg /share
# systemctl restart nfs-server

NFS Client(10.70.160.3) 구성

# rpm –qa | grep nfs-utils
# dnf–y install nfs-utils

# showmount –e 10.0.0.100 => 공유 정보 확인
# mkdir /r_mount
# mount –t nfs 10.0.0.100:/share /r_mount
# cd /r_mount
# touch test009
# mkdir testdir
# vi /etc/fstab => 자동 마운트 설정
10.0.0.100:/share /r_mount nfs     defaults 0 0

- 최종확인
  NFS 서버 /share 내용과 NFS 클라이언트 /r_mount 내용 동기화 확인

=======

Samba
- 마이크로소프트와 인텔에서 개발한 SMB(Server Message Block) 네트워크 프로토콜을 이용해 윈도우와 유닉스 계열(이기종 OS)간 자원을 공유할 수 있도록 만든 프로그램
- 현재 SMB 프로토콜은 리눅스와 윈도우 환경을 동시에 지원하는 CIFS(Common Internet File System)으로 확장됨
- 리눅스끼리 공유할땐 NFS, 윈도우와 리눅스(유닉스 계열)간의 공유는 Samba 실전에선 NFS계열이 더많이 쓰인다.

- 클라이언트를 대상으로 가져가서 알아서 해라 = FTP
- 파일서버 = 들어와서 수정하거나 일해주세요

UNIX OS
HP-UX = HP-UX
IBM = AIX
SUN = Solaris


Samba 구성
1. Samba 설치
2. 계정 등록
3. 공유 디렉터리 설정 및 Samba 환경 추가 설정
4. Samba 데몬 실행
5. 윈도우 시스템에서 접속

Samba 실습

Samba Server(10.0.0.100) 구성

# dnf - y install samba => samba 설치

# mkdir /smbshare => samba로 공유할 디렉토리
# groupadd sambaGroup => 윈도우에서 접근할 수 있는 그룹 생성
# chgrp sambaGroup /smbshare => 소유그룹 변경
# chmod 770 /smbshare => 허가권 변경
# usermod -G sambaGroup rocky => rocky 사용자를 sambaGroup 그룹에 포함
# smbpasswd -a rocky => rocky 사용자, Samba 전용 패스워드 지정

Samba Server(10.0.0.100) 환경 설정 파일 구성

# vi /etc/samba/smb.conf
11행 수정 : workgroup = WORKGROUP => 윈도우 기본 작업 그룹명으로 변경
11행 하단, 다음 내용 추가
unix charset = UTF-8 => 문자인코딩
map to guest = Bad User => 인증 없이 접속 허용
파일 마지막 부분에 다음 내용 추가
[smbshare]
path = /smbshare => 공유 디렉토리
writable = yes => 쓰기 허용
guest ok = no => 게스트 거부
create mask = 0777 => 파일 전체 접근 허용
directory mask = 0777 => 디렉토리 전체 접근 허용
valid users = @sambaGroup => sambaGroup 소속 사용자만 허용
 # testparm => 설정 내용 이상 없는지확인
# systemctl restart smb nmb => 데몬 재구동

Samba Client(윈도우, 10.0.0.20) 접속
- 네트워크 드라이브 연결 시도
\\10.0.0.100\smbshare 입력 후
- rocky 계정으로 로그인

- 접속된 상황에서 파일 및 디렉토리 생성
- Samba서버(리눅스)로 이동 후
# ls /smbshare
  => 확인 시 윈도우 시스템에서 작성한 파일 및 디렉토리가 보이는지 확인

=======

ACL , NAT , VPN

=======

Database
- 체계화된 데이터의 모임
- 구조적으로 데이터를 저장하는 공간(파일/파일모음)
- 데이터를 효율적으로 처리, 관리하기 위해 도입됨
- 테이블 형태로 데이터를 관리
- DBMS(=DataBase Management System)을 이용하여 DB를 생성하고 제어 함


DBMS(DataBase Management System)
- 다수의컴퓨터, 사용자들이 DB안에 데이터를 기록하거나 사용할 수 있도록 해주는 프로그램
- 사용자들은 실제 데이터의 저장 위치를 몰라도 언제든지 데이터를 사용할 수 있음
- 데이터 처리에 있어 무결성과 보안성을 제공함
 - 관계형 DBMS => Relational DBMS : My-SQL, MariaDB, MS-SQL, ORACLE .....
 - 비관계형 DBMS => Non SQL(No SQL) 또는 Non Relational DBMS : MongoDB, Redis, HBase, Elasticsearch


계층형 데이터베이스
- 트리 구조의 데이터 모델
- 비슷한 유형의 데이터를 분류하여 관리하는 데이터베이스
- Ex. Linux에서 디렉터리를 통해 비슷한 유형의 파일을 분류하고 관리


네트워크 데이터베이스
- 분류된 비슷한 유형의 데이터를 별도의 공간에서 참조하여 데이터를 수정 및 사용할 수 있도록 데이터를 관리하는 데이터베이스.
- Ex. Linux에서 디렉터리를 통해 비슷한 유형의 파일을 분류하고 관리하는 것+ 링크파일
> 링크파일 : 원본파일의 데이터를 가지고 있는 것이 아니라 원본 파일의 데이터를 참조 하여 수정 및 사용할 수 있게 하는 파일


관계형 데이터베이스
- 테이블이라 불리는 최소 단위로 구성된 데이터 모델
- 모든 데이터는 테이블에 저장
- Ex. 쇼핑몰에서 회원정보 및 주문정보, 재고정보/대학교에서 학생 정보 및 교과목 정보, 성적정보 등
- DBMS 종류
- MariaDB, MSSQL, Oracle, MariaDB, DB2, SQLite, Cubrid, 등
- 안정적이고 대규모 환경에선 Oracle 사용


비 관계형 데이터베이스
- 관계형 데이터베이스와 달리 유연한 데이터 모델을 이용한다.
- 데이터를 Document(문서형태의 자료구조) 단위로 json형식(값 이름=값)으로 많은 양의 데이터를 저장하고 관리하는 데이터베이스 Non-Relational Operational Database SQL
- Ex. 빅데이터 분야 => 카카오택시등
    - 빅데이터 : 많은 양의 데이터를 수집하여 특정 목적을 위해 의미있는 데이터를 추출하는 기술
- DBMS 종류
 - Redis, Cassandra, HBase, MongoDB 등


관계형 데이터베이스 구조
Table (= Relation)
- 데이터의 세부 목적에 맞게 구조적 목록으로 묶어놓은 영역
- 테이블의 이름은 고유 해야 함
Columns (= Fields = Attribute = 열)
- 특정한 단순 자료형의 일련의 데이터 값과 테이블에서의 각 열
Rows (= Record = Tuple = 행)
- 테이블에서 한 객체의 대한 전체 정보
Field
- Column 의 대용으로 동일한 의미로 사용되지만 한 행과 한 열의 교차 지점에 있는 단일 값을 특별히 지칭하는 용어

 

table(=relation)

테이블의 이름은 중복x

columns (=fields = Attribute= 열)

Rows(=Record = Tuple =행)

Field Colums의 대용으로 한 행과 한 열의 교차지점에 있는 단일 값



MySQL
- 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)
- 다중스레드, 다중 사용자 형식의 구조 질의어 형식의 데이터베이스 관리 시스템
- 이중라이선스적용
    - GPL(General Public License) - GNU 일반 공중 사용 허가서
>자유 소프트웨어 재단에서 만든 자유 소프트웨어 라이선스
 - GPL 이외의 라이선스로 적용 시키려는 경우 전통적인 지적 재산권 라이선스 적용
- 썬 마이크로 시스템즈에 인수 되었으나, 썬 마이크로 시스템즈가 오라클에 인수되며 같이 넘어감
- 5.x 버전 출시 이후 Oracle사에서 인수하여 개발하고있으며, 상용버전과 무료버전이 존재


SQL(Structured Query Language)
- 구조화된 질의 언어
- DBMS를 관리하고 제어하기 위해 사용하는 인터페이스 또는 언어
- 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어
- DBMS에 따라사용되는 SQL 문법이다름


기본SQL 문법종류
데이터정의어(DDL, Data Definition Language)
- 데이터베이스의 구조를 정의 하거나 변경, 삭제하기 위해 사용하는 언어
- 주로 DB관리자 또는 설계자가 사용
- CREATE(개체 생성), ALTER(개체 수정), DROP(개체 삭제), TRUNCATE(개체 초기화)

데이터조작어(DML, Data Manipulation Language)
- data를 조작하기 위해사용하는언어
- data의 삽입, 수정, 삭제, 조회 등의 동작을 제어
- data를 이용하려는 사용자와 시스템간의 인터페이스를 직접적으로 제공하는 언어
- 가장 많이 사용됨(공격 시에도 가장 많이 사용)
- INSERT(데이터 생성), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 조회)

데이터제어어(DCL, Data Control Language)
- DB에 대한보안, 무결성, 복구등 DBMS를 제어하기 위한 언어
- GRANT(권한할당), REVOKE(권한해제), COMMIT(실행), ROLLBACK(복구)


=======





'공부? > 국비 지원 일기장' 카테고리의 다른 글

48일차 - MariaDB DML  (0) 2024.09.11
47일차 - MariaDB  (1) 2024.09.10
45일차 - FTP, 메일 서비스  (3) 2024.09.07
44일차 - GNS3 맛보기  (0) 2024.09.05
43일차 - 리눅스 SSH, DNS, DHCP  (3) 2024.09.04