iscsi 서비스를 사용한 블록스토리지는 DAS, SAN 스토리지 연결방식에서 사용된다. DAS 연결방식은 Direct Attached Storage 방식이고 스토리지가 시스템에 직접적으로 연결되어 있는 방식이다. SAN 연결방식은 Storage Area Network 방식이며, 네트워크를 이용하는 스토리지 연결 방식이다. SAN 방식 중에서도 FC-SAN, IP-SAN방식이 있는데 그중에서 IP-SAN 방식에 해당하는 것이 iSCSI 블록 스토리지이다. 블록 스토리지를 공유할 서버에서 타겟 설정 하기 우선 targetcli 패키지를 설치한다. yum install targetcli target 서비스를 활성화한다. systemctl start target systemctl enable target ta..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.1. NFS 란 Network File System 으로, 가상화 또는 클라우드 서비스에서 가상머신의 스토리지를 공유할 때 자주 사용된다. NFS서버를 구성하면 로컬에 존재하는 파일을 공유할 수 있다. 또한 파일을 공유할 때 접근가능한 host 목록을 지정할 수 있다. 현재 최신판 리눅스에서는 NFS 4.0 버전인 NFSv4를 주로 사용하고 있다. 2. NFS 서버 구성하기 우선 nfs-utils 패키지를 yum으로 설치한다. yum -y install nfs-utils NFS 는 server-client 구조를 취한다. 우선 server 역할을 하는 곳에서 /etc/exports 파일을 작성해준다. vi /etc/exports /etc/exports 파일에는 디렉토리경로 접근제어리스트(옵션) 이 세가지..
https://www.acmicpc.net/problem/2283 2283번: 구간 자르기 1번째 줄에 정수 N, K(1 ≤ N ≤ 1,000, 1 ≤ K ≤ 1,000,000,000)가 주어진다. 2~N+1번째 줄에 각 구간의 왼쪽 끝점과 오른쪽 끝점의 위치가 주어진다. 양 끝점의 위치는 0 이상 1,000,000 이하의 정수이다. www.acmicpc.net n, k = map(int, input().split()) array = [0] * 1000002 # 1 ~ 100001 까지 저장 for i in range(n): a, b = map(int, input().split()) array[a+1] += 1 array[b+1] -= 1 for i in range(1, 1000002): array[i]..
SELinux 가 필요한 이유 보통 리눅스는 DAC 모델을 기준으로 접근제어를 한다. DAC 모델은 Discretionary Access Control 의 약자로, 이는 '사용자 권한'을 기준으로하여 파일이나 자원에 대한 접근 제어를 하는 것이다. 그러나 취약점이 존재한다면 그 취약점을 통해 시스템 권한 및 시스템 정보가 쉽게 탈취될 수 있다. SELinux 는 리눅스의 보안을 강화해주는 커널 모듈이다. MAC 모델 SELinux 는 MAC 모델을 기반으로 한다. MAC 모델은 각 사용자나 프로세스, 파일에 보안 레이블을 지정한다. 이 보안레이블을 컨텍스트(context)라고 하며, 사용자나 프로세스에 지정된 컨텍스트와 파일에 지정된 컨텍스트가 연관성이 없으면 접근할 수 없다. ls -Z 명령어로 각 파..
ssh 로 원격 접속을 할 때 포트번호를 2222번으로 접속을 해보는 예제이다. 내 컴퓨터에 누군가 원격 접속을 허용하기 위해 다음과 같은 과정을 거칠 수 있다. 먼저 /etc/ssh/sshd_config 파일을 vim 편집기로 열어서, Port 2222 로 수정한다. Port 검색을 할 때는 /Port 라고 입력해주면 된다. 이 파일을 수정해서 2222 포트를 사용하도록 설정하는 것이다. ssh -p 2222 root@192.168.56.102 그리고 sshd 서비스를 재시작한다. systemctl restart sshd semanage 명령어로 포트 레이블을 추가해 준다. 포트 레이블이란 SELinux 가 enforcing 모드일 때 특정 서비스가 사용하는 포트를 설정하는 것이다. semanage p..
Critical Section Problem n개의 프로세스가 공유데이터를 동시에 사용하기를 원하는 경우 발생하는 문제 각 프로세스의에서 공유 데이터를 접근하는 코드를 critical section 이라고 한다. 하나의 프로세스가 critical section 에 있을 때 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다. Critical Section Problem을 해결하기 위한 조건 Mutual exclusion (상호 배타) : 한 프로세스가 critical section 부분을 수행하고 있다면, 다른 프로세스들은 그들의 criitical section 에 들어가지 않는다. 즉, critical section에 꼭 하나의 프로세스만이 진입할 수 있다는 조건이다. Prog..
https://www.acmicpc.net/problem/14925 14925번: 목장 건설하기 랜드 씨는 퇴직금으로 땅을 사서 목장을 지으려 한다. 그가 사려고 소개받은 땅은 직사각형이고 대부분 들판이지만, 여기저기에 베기 어려운 나무와 치울 수 없는 바위가 있다. 그는 목장을 하 www.acmicpc.net 아 어렵다 원래 dfs밖에 기억이 안났는데 문제유형보고 DP란것을 알았다 dfs로 풀면 대각선&상하좌우 8방향을 모두 확인해야하니까 시간초과가 날것 같다 0의 개수를 dp 테이블에 누적하여 저장한다. 단 !! 1 또는 2를 만났을 때는 누적하면 안된다. 이걸 방지하기 위해서 dp[i][j] = min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])+1 대각선방향, 위쪽방향, 아..
·개발일기
1일1커밋.. 언제선가부터 계속 해오고 있었었는데, 어제 repository를 정리하면서 삭제를 했는데, repository를 지우니까 커밋 기록도 같이 날라가서 잔디밭에 구멍이 생기게 되었다 ㅠㅠ 그래서 알아보게 된 깃허브 커밋 조작 방법을 정리해보고자 한다 git log 해당 레포지토리로 들어가서 git 의 log를 살펴본다 시간대를 변경하고 싶은 커밋 기록의 해시값을 복사하자. commit뒤에 있는 값이 해시값이다. git rebase -i 해시값 이렇게 명령어를 입력하면 vi 편집기로 commit 정보를 수정 할 수 있다. pick 이라고 되어있는 부분을 edit으로 바꿔준다 바꿔준 다음 :wq! 입력해서 write작업 한 것을 저장하고 다시 터미널로 돌아간다 git commit --amend -..