본문 바로가기

공부

오픈소스) devstack 서비스 관련 명령어 Devstack 시작sudo systemctl start devstack@*Devstack 재시작sudo systemctl restart devstack@*Devstack 중지sudo systemctl stop devstack@*Devstack 상태확인sudo systemctl status devstack@*Devstack Service 데몬 목록 확인sudo systemctl list-timers devstack@*Devstack Service 데몬 목록devstack@c-api.servicedevstack@c-sch.servicedevstack@c-vol.servicedevstack@dstat.servicedevstack@etcd.servicedevstack@g-api.servicedevstack@k.. 더보기
오픈소스) 간단한 사례로 보는 오픈 스택 기여 방법 * 퇴사 이슈로 간단 메모. 추후 자료 보강예정 1. 버그 발견어느날 간단한 버그 하나가 발견 됨. https://bugs.launchpad.net/manila/+bug/2069782 Manila 서비스에서 Share type 을 생성할 때 에러 메시지에 값이 출력되야하는데, (%id) 포맷팅이 그래도 출력됨. 2. git clone오픈스택를 통으로 다 설치하기에는 자원의 한계로 devstack 을 설치 3. dev-stack 설치 및 manila 서비스 추가dev-stack 은 기본 서비스만 설치도며, manila는 이 서비스들에 포함되지 않아 별도 설정 필요 4. 코드 수정 및 테스트코드는 어렵지 않았음msg 변수 값으로 출력됐어야하는 내용이 message 값으로 출력되고 있었음수정 후 테스트를 위해.. 더보기
오픈소스) gerrit을 통한 리뷰 시스템 이전글에서 "git review" 명령어를 사용하면코드는 gerrit 레포지토리에 올라가고코맨트와 함께 투표를 통해 코드를 리뷰(review) & 머지(merge)를 수행한다고 정리했는데 전반적인 기여 프로세스를 보면 다음과 같음  1. 개발자는 수정하고자하는 프로젝트의 코드를 로컬 환경으로 'clone'2. 로컬 환경에서 수정하고자하는 버그에 대해서 브랜치 생성.3. 변경사항을 저장 -> 유닛 테스트 수행 -> git commit 4. git review를 통해 Gerrit 리뷰 시스템에 변경사항을 제출5. 자동 테스트 툴(Zuul)을 통해, 빌드 및 테스트를 진행하고 제출한 코드에 대한 리뷰 진행6. 변경사항을 재수정해야할 경우, 코드를 변경하고 git commit --amend를 통해 다시 변경사항.. 더보기
오픈소스) 오픈스택에 기여하기 - 2 git-review 설치 및 사용법 0. 필요 시 git 설치 mac 의 경우brew install git ubuntu 의 경우sudo apt install git-all 1. git-review 설치 mac 의 경우brew install git-review ubuntu 의 경우sudo apt-get install git-review  2. gitreview 사용자 이름 지정git config --global --add gitreview.username "사용자 이름"git review -s  3. 코드 수정  4. 수정사항 반영git add 5. 수정사항 커밋git commit 또는git commit -s 개인적으로는 아래 선호 6. 리뷰 요청git review 더보기
오픈소스) 오픈스택에 기여하기 - 1 1. Launchpad 로 접속 후 우측 상단의 Login/Register 혹은 Create an account 클릭https://launchpad.net 2. I don't have an Ubuntu One account 클릭 3. 사용자 정보 입력 * Email - 로그인을 위한 email을 입력(인증 시에도 필요하므로 활성화 된 이메일을 입력)* Full name - 사용자의 풀네임을 입력* Username - 사용자의 계정명을 입력* Password - 로그인 시 사용할 패스워드를 입력* 정책 동의 체크 4. 메일 인증회원가입을 완료하면 입력한 메일로 인증 메일이 발송 됨아래 링크를 통해 메일을 인증 5. CLA 동의메일 인증까지 완료되면 코드 기여를 위해 OpenDev에 접속https://rev.. 더보기
uftrace 를 이용한 함수 추적 - 2 지난 글 uftrace 를 이용한 함수 추적 - 1 uftrace 를 이용한 함수 추적 uftrace란 uftrace는 C/C++로 작성된 컴파일된 유저 프로그램의 함수 호출 관계를 추적하는 도구입니다(옵션에따라 커널의 함수도 추적이 가능합니다). 리눅스 커널의 ftrace에서 영감을 받아 만들어진 willow72.tistory.com 지난번에 이어 uftrace에 대해 알아보겠습니다. record/replay uftrace 는 실행 결과를 기록(저장)하고 반복해서 출력 가능하도록 기능을 지원합니다. $ uftrace recorde ./test 기본적인 uftrace 명령어를 실행할 경우 함수 추적 결과가 나오지만 recorde 명령어를 함께 사용할 경우 프로그램 자체의 실행 결과만을 보여줍니다. 대신 .. 더보기
uftrace 를 이용한 함수 추적 uftrace란 uftrace는 C/C++로 작성된 컴파일된 유저 프로그램의 함수 호출 관계를 추적하는 도구입니다(옵션에따라 커널의 함수도 추적이 가능합니다). 리눅스 커널의 ftrace에서 영감을 받아 만들어진 툴이라고하는데 ftrace와는 다르게 사용자 레벨의 프로그램을 지원한다고합니다. 함수 호출 관계를 추적하며 실행 루틴 분석은 물론 함수의 실행 시간까지 확인 가능해 프로그램을 분석 유용한 명령어를 지원해줍니다. 환경 ubuntu 20.04 uftrace 설치 git 저장소로부터 소스코드를 받아옵니다. git clone https://github.com/namhyung/uftrace.git 의존성 패키지를 설치합니다. misc디렉토리 내에 의존성 패키지를 받을 수 있는 쉘스크립트가 있습니다. $ .. 더보기
2. Docker Image Build를 이용한 클러스터링 용 도커 이미지 생성 1. 도커 허브(Docker Hub) 계정이 필요합니다. 아래 링크에서 가입을 할 수 있습니다. https://hub.docker.com/ Docker Hub Docker Certified:Trusted & Supported Products Certified Containers provide ISV apps available as containers. Certified Plugins for networking and volumes in containers. Certified Infrastructure delivers an optimized and validated Docker platform for enterp hub.docker.com 2. 로그인을하고 리포지토리를 생성합니다. 다음과 같은 창에서 저장.. 더보기
1. Docker 를 이용한 RabbitMQ 클러스터링 회사 업무로 도커 스웜(Docker swarm)을 이용해 RabbitMQ 클러스터링을 구성하게 됐습니다. 연구실에서는 커널만 하던 고인물인데 회사에서 새로운 프로젝트에 들어가며 낯선 일들이 늘고 결국 간단하게만 사용해봤던 도커를 다시 건드리게됐습니다. 최종 목표는 앞서 언급한데로 도커 스웜을 이용해 클러스터링을 구성하는 것이지만 공부할 겸 단계별로 포스팅을 해보려합니다. 계획은 3단계로 잡고 있습니다. 1. Docker를 이용한 RabbitMQ 클러스터링 2. Docker Image Build를 이용한 클러스터링 용 도커 이미지 생성 3. Docker Swarm을 이용한 RabbitMQ 클러스터링 Docker를 이용해 RabbitMQ를 클러스터링 할 때는 다음과 같은 3단계를 거치며, 필요에 따라 미러링.. 더보기
qemu + gdb 연동 리눅스 커널 패치와 커널(한빛미디어)를 보고 공부하던 중 버전차이로 인한 문제점이 있어 해결하는 과정을 기록했습니다. (질문에 답해주신 ultract2 님 감사드립니다.)현재 문제가 되는 부분은 qemu와 gdb를 연동시킨 후 gdb에서 break를 걸어도 멈추지 않고 커널 부팅이 진행되는 문제점이 발생하였고, 이 부분만 언급하도록하겠습니다. 나머지는 책을 참고하시면되겠습니다. 날짜 2018-07-11 Ubuntu 16.04커널 : Kernel 4.10개발용 커널 버전 : 4.18 커널 개발 툴 설치$sudo apt-get install build-essential kernel-package libncurses5 libncurses5-dev libssl-dev bison flex libelf-dev Gi.. 더보기