From: Christoph Hellwig Date: Thu, 1 Dec 2016 09:42:45 +0000 (+0100) Subject: nvmetcli: update README X-Git-Tag: v0.3~4 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f4cba8c61605599dc84f81fbb27b314532975e65;p=users%2Fhch%2Fnvmetcli.git nvmetcli: update README Most usage information has moved to the manpage. Also add a blurb that bugs reports should go to the linux-nvme list. Signed-off-by: Christoph Hellwig --- diff --git a/README b/README index 4c44b39..a3d529a 100644 --- a/README +++ b/README @@ -18,136 +18,9 @@ nvmetcli uses the 'python-six' and 'pyparsing' packages (running nvmetcli without these packages may produce hard-to-decipher errors). -Walk-Through Example Usage ---------------------------- -Make sure to run nvmetcli as root, the nvmet module is loaded, -your devices are loaded, and configfs is mounted on /sys/kernel/config -using: - - mount -t configs none /sys/kernel/config - -To get started with the interactive mode and the nvmetcli command prompt, -type (in root): - -./nvmetcli -...> - -The following walks through an example using interactive mode. - -# -# Create a subsystem. If you do not specify a name a NQN will be generated, -# which is probably the best choice, we we don't do it here as the name -# would be random -# - -> cd /subsystems -...> create testnqn - -# -# Add access for a specific NVMe Host by it's NQN: -# - -...> cd /hosts -...> create hostnqn -...> cd /subsystems/testnqn/allowed_hosts/ -...> create hostnqn - -# -# remove access of a subsystem by deleting the Host NQN -# - -...> cd /subsystems/testnqn/allowed_hosts/ -...> delete hostnqn - -# -# Alternatively this allows any host to connect to the subsystsem. Only -# use this in tightly controller environments: -# - -...> cd /subsystems/testnqn/ -...> set attr allow_any_host=1 - -# -# Create a new namespace. If you do not specify a namespace ID the fist -# unused one will be used. -# - -...> cd /subsystems/testnqn/namespaces -...> create 1 -...> cd 1 -...> set device path=/dev/nvme0n1 -...> enable - -# Note that in the above setup the 'device_nguid' attribute -# does not have to be set for correct NVMe Target functionality. - -# -# Create a port through which access is allowed, and enable access to -# a subsystem through it. -# -# This creates a trivial loopback port that can be used with nvme-loop on -# the same machine: -# - -...> cd /ports/ -...> create 1 -...> cd 1/ -...> set addr trtype=loop -...> cd subsystems/ -...> create testnqn - -# -# Or create a RDMA (IB, RoCE, iWarp) port using IPv4 addressing, 4420 is the -# IANA assigned port for NVMe over Fabrics using RDMA: -# - -...> cd /ports/ -...> create 2 -...> cd 2/ -...> set addr trtype=rdma -...> set addr adrfam=ipv4 -...> set addr traddr=192.168.6.68 -...> set addr trsvcid=4420 -...> cd subsystems/ -...> create testnqn - -Discovery ----------- -Each NVMe Target has a discovery controller mechanism that an NVMe -Host can use to determine the NVM subsystems it has access too. -nvmetcli can be used to add a new record to the discovery controller -upon each new subsystem entry and port entry that the newly -created subsystem entry binds too (see the '/port/' and -'/subystem/' nvmetcli walk-through earlier in this README). Each NVMe -Host only gets to see the discovery entries defined in -/subsystems/[NQN NAME]/allowed_hosts and the IP port it is connected -to the NVMe Target. - -A Host can retrieve these discovery logs via the nvme-cli tool -(https://github.com/linux-nvme/nvme-cli). - -Referrals ---------- -TBD - -Saving and restoring the configuration --------------------------------------- -The saveconfig command in the interactive -nvmetcli mode saves the current configuration. For example, - -./nvmetcli -...> saveconfig test.json - -You can also invoke a 'save' command, as well as a 'restore' -and 'clear' command on the Linux command line. For example, - -(to load an NVMe Target configuration): - ./nvmetcli restore test.json - -(to clear a current NVMe Target configuration): - ./nvmetcli clear test.json - -Without an additional file name these operate on /etc/nvmet/config.json. +Usage +----- +Look at Documentation/nvmetcli.txt for details. Example NVMe Target .json files -------------------------------------- @@ -170,4 +43,5 @@ the coverage plugin for it installed and simple run 'make test'. Development ----------------- -Please send to linux-nvme@lists.infradead.org for review and acceptance. +Please send patches and bug reports to linux-nvme@lists.infradead.org for +review and acceptance.